This is what I’ve been trying to build:
the app looks for xmls in a ‘packages’ folder with all the templates declaration, for example:
XML
<?xml version="1.0" encoding="UTF-8" ?>
<package>
<name>Rectangular</name>
<type>dynamic</type>
<author>Mauro Rebuffo</author>
<version>0.5.0</version>
<templates>
<template>
<friendlyname>Zócalo</friendlyname>
<filename>Rectangular/Zocalo</filename>
<index>1</index>
<thumbnail>Rectangular/zocalo.png</thumbnail>
<transitions>
<transition name="Agrandar" type="grow">
<property name="Dirección" type="combo" var="transition_data" default="left" styletarget="transition_direction">
<option name="Desde la izquierda" data="left"/>
<option name="Desde el centro" data="center"/>
<option name="Desde la derecha" data="right"/>
<option name="Desde arriba" data="top"/>
<option name="Desde abajo" data="bottom"/>
</property>
</transition>
<transition name="Fundir" type="fade">
<property name="Duración" type="milliseconds" var="transition_data" default="1000"/>
</transition>
</transitions>
<properties>
<property name="Transición" var="transition_type" default="fade" type="transition" styletarget="transition_type"/>
<property name="Alto" var="height" default="150" type="number"/>
<property name="Margen Izquierdo" var="offset_left" default="92" type="number" styletarget="offset_left"/>
<property name="Margen Derecho" var="offset_right" default="92" type="number" styletarget="offset_right"/>
<property name="Margen Inferior" var="offset_bottom" default="50" type="number" styletarget="offset_bottom"/>
<property name="Separación" var="offset" default="0" type="number"/>
</properties>
<objects>
<object id="bg" name="Fondo" type="rectangle" required="true">
<properties>
<property name="Color" type="gradient" var="bg_gradient" default="0xFFFFFF|0xFFFFFF" styletarget="bg1_gradient"/>
<property name="Opacidad" type="slider" var="bg_alpha" default="1" min="0" max="1" styletarget="bg_alpha"/>
<property name="Radio" type="int" var="bg_radius" default="0" styletarget="bg_radius"/>
<property name="Borde" type="int" var="bg_border" default="0" styletarget="bg_border"/>
<property name="Sombra" type="int" var="bg_shadow" default="0" styletarget="bg_shadow"/>
</properties>
</object>
<object id="text" name="Texto" type="text" parent="bg">
<properties>
<property name="Texto" type="text" var="text" default="" content="true"/>
<property name="Color" type="color" var="text_color" default="0x000000" styletarget="text1_color"/>
<property name="Sombra" type="slider" var="text_shadow" default="0" min="0" max="20" styletarget="text1_shadow"/>
<property name="Tamaño" type="slider" var="text_size" default="96" min="8" max="250"/>
<property name="Margen" type="slider" var="text_margin" default="20" min="0" max="50" styletarget="text_margin"/>
<property name="Fuente" type="font" var="font" default="Anteb Bold@anteb.swf" styletarget="text1_font"/>
<property name="Alinear" type="combo" var="text_align" default="left" styletarget="text_align">
<option name="Izquierda" value="left"/>
<option name="Centro" value="center"/>
<option name="Derecha" value="right"/>
</property>
<property name="Efecto" type="combo" var="text_effect" default="" styletarget="text_effect">
<option name="Ninguno" value=""/>
<option name="Zoom" value="zoom"/>
</property>
</properties>
</object>
</objects>
</template>
<template>
<friendlyname>Encabezado</friendlyname>
<filename>Rectangular/Encabezado</filename>
<index>2</index>
<thumbnail>Rectangular/Encabezado.png</thumbnail>
<transitions>
<transition name="Agrandar" type="grow">
<property name="Dirección" type="combo" var="transition_data">
<option name="Desde la izquierda" data="left"/>
<option name="Desde el centro" data="center"/>
<option name="Desde la derecha" data="right"/>
<option name="Desde arriba" data="top"/>
<option name="Desde abajo" data="bottom"/>
</property>
</transition>
<transition name="Fundir" type="fade">
<property name="Duración" type="milliseconds" var="transition_data" default="1000"/>
</transition>
</transitions>
<properties>
<property name="Margen Izquierdo" var="offset_left" default="92" type="number" styletarget="offset_left"/>
<property name="Margen Derecho" var="offset_right" default="92" type="number" styletarget="offset_right"/>
<property name="Margen Inferior" var="offset_bottom" default="50" type="number" styletarget="offset_bottom"/>
<property name="Margen entre elementos" var="margin" default="10" type="number" styletarget="margin"/>
<property name="Separación" var="offset" default="150" type="number"/>
</properties>
<objects>
<object id="bg" name="Fondo" type="rectangle" required="true">
<properties>
<property name="Color" type="gradient" var="bg_gradient" default="0xFFFFFF|0xFFFFFF" styletarget="bg2_gradient"/>
<property name="Opacidad" type="slider" var="bg_alpha" default="1" min="0" max="1" styletarget="bg_alpha"/>
<property name="Radio" type="int" var="bg_radius" default="0" styletarget="bg_radius"/>
<property name="Borde" type="int" var="bg_border" default="0" styletarget="bg_border"/>
<property name="Sombra" type="int" var="bg_shadow" default="0" styletarget="bg_shadow"/>
</properties>
</object>
<object id="text" name="Texto" type="text" parent="bg">
<properties>
<property name="Texto" type="text" var="text" default="" content="true"/>
<property name="Color" type="color" var="text_color" default="0x000000" styletarget="text2_color"/>
<property name="Sombra" type="slider" var="text_shadow" default="5" min="0" max="20" styletarget="text2_shadow"/>
<property name="Tamaño" type="slider" var="text_size" default="32" min="8" max="250"/>
<property name="Margen" type="slider" var="text_margin" default="0" min="0" max="50"/>
<property name="Fuente" type="font" var="font" default="Anteb Bold@anteb.swf" styletarget="text1_font"/>
<property name="Alinear" type="alignment" var="text_align" default="left">
<option name="Izquierda" value="left"/>
<option name="Centro" value="center"/>
<option name="Derecha" value="right"/>
</property>
<property name="Efecto" type="combo" var="text_effect" default="">
<option name="Ninguno" value=""/>
<option name="Zoom" value="zoom"/>
</property>
</properties>
</object>
</objects>
</template>
<template>
<friendlyname>Etiqueta</friendlyname>
<filename>Rectangular/EtiquetaPlana</filename>
<index>3</index>
<thumbnail>Rectangular/Etiqueta.png</thumbnail>
<transitions>
<transition name="Agrandar" type="grow">
<property name="Dirección" type="combo" var="transition_data">
<option name="Desde la izquierda" data="left"/>
<option name="Desde el centro" data="center"/>
<option name="Desde la derecha" data="right"/>
<option name="Desde arriba" data="top"/>
<option name="Desde abajo" data="bottom"/>
</property>
</transition>
<transition name="Fundir" type="fade">
<property name="Duración" type="milliseconds" var="transition_data" default="1000"/>
</transition>
</transitions>
<properties>
<property name="Margen Izquierdo" var="offset_left" default="92" type="number" styletarget="offset_left"/>
<property name="Margen Derecho" var="offset_right" default="92" type="number" styletarget="offset_right"/>
<property name="Margen Inferior" var="offset_bottom" default="50" type="number" styletarget="offset_bottom"/>
<property name="Margen entre elementos" var="offset" default="10" type="number"/>
<property name="Separación" var="offset" default="0" type="number"/>
</properties>
<objects>
<object id="bg1" name="Fondo A" type="rectangle" required="true">
<properties>
<property name="Color" type="gradient" var="bg1_gradient" default="0xFFFFFF|0xFFFFFF" styletarget="bg1_gradient"/>
<property name="Opacidad" type="slider" var="bg_alpha" default="1" min="0" max="1" styletarget="bg_alpha"/>
<property name="Radio" type="int" var="bg_radius" default="0" styletarget="bg_radius"/>
<property name="Borde" type="int" var="bg_border" default="0" styletarget="bg_border"/>
<property name="Sombra" type="int" var="bg_shadow" default="0" styletarget="bg_shadow"/>
</properties>
</object>
<object id="text1" name="Texto A" type="text" parent="bg1">
<properties>
<property name="Texto" type="text" var="text_1" default="" content="true"/>
<property name="Color" type="color" var="text1_color" default="0x000000" styletarget="text2_color"/>
<property name="Sombra" type="slider" var="text1_shadow" default="5" min="0" max="20" styletarget="text1_shadow"/>
<property name="Tamaño" type="slider" var="text_size" default="32" min="8" max="250"/>
<property name="Margen" type="slider" var="text_margin" default="20" min="0" max="50"/>
<property name="Fuente" type="font" var="text1_font" default="Anteb Bold@anteb.swf" styletarget="font"/>
<property name="Alinear" type="combo" var="text1_align" default="left">
<option name="Izquierda" value="left"/>
<option name="Centro" value="center"/>
<option name="Derecha" value="right"/>
</property>
</properties>
</object>
<object id="bg2" name="Fondo B" type="rectangle">
<properties>
<property name="Color" type="gradient" var="bg2_gradient" default="0x000000|0x000000" styletarget="bg2_gradient"/>
</properties>
</object>
<object id="text2" name="Texto B" type="text" parent="bg2">
<properties>
<property name="Texto" type="text" var="text_2" default="" content="true"/>
<property name="Color" type="color" var="text2_color" default="0xFFFFFF" styletarget="text2_color"/>
<property name="Sombra" type="slider" var="text2_shadow" default="5" min="0" max="20" styletarget="text2_shadow"/>
<property name="Fuente" type="font" var="text2_font" default="Anteb Bold@anteb.swf" styletarget="text2_font"/>
<property name="Alinear" type="combo" var="text2_align" default="left">
<option name="Izquierda" value="left"/>
<option name="Centro" value="center"/>
<option name="Derecha" value="right"/>
</property>
</properties>
</object>
</objects>
</template>
<template>
<friendlyname>Crawl</friendlyname>
<filename>Rectangular/Crawl</filename>
<index>0</index>
<thumbnail>Rectangular/Crawl.png</thumbnail>
<transitions>
<transition name="Agrandar" type="grow">
<property name="Dirección" type="combo" var="transition_data">
<option name="Desde la izquierda" data="left"/>
<option name="Desde el centro" data="center"/>
<option name="Desde la derecha" data="right"/>
<option name="Desde arriba" data="top"/>
<option name="Desde abajo" data="bottom"/>
</property>
</transition>
<transition name="Fundir" type="fade">
<property name="Duración" type="milliseconds" var="transition_data" default="1000"/>
</transition>
</transitions>
<properties>
<property name="Alto" var="height" default="30" type="number"/>
<property name="Margen Izquierdo" var="offset_left" default="92" type="number" styletarget="offset_left"/>
<property name="Margen Derecho" var="offset_right" default="92" type="number" styletarget="offset_right"/>
<property name="Margen Inferior" var="offset_bottom" default="50" type="number" styletarget="offset_bottom"/>
<property name="Separación" var="offset" default="0" type="number"/>
</properties>
<objects>
<object id="bg" name="Fondo" type="rectangle" required="true">
<properties>
<property name="Color" type="gradient" var="bg_gradient" default="0x000000|0x000000" styletarget="bg2_gradient"/>
<property name="Opacidad" type="slider" var="bg_alpha" default="1" min="0" max="1" styletarget="bg_alpha"/>
<property name="Radio" type="int" var="bg_radius" default="0" styletarget="radius1"/>
</properties>
</object>
<object id="text" name="Texto" type="text" parent="bg">
<properties>
<property name="Texto" type="text" var="text" default="" content="true"/>
<property name="Color" type="color" var="text_color" default="0xFFFFFF" styletarget="text2_color"/>
<property name="Sombra" type="slider" var="text_shadow" default="0" min="0" max="20" styletarget="text2_shadow"/>
<property name="Tamaño" type="slider" var="text_size" default="24" min="8" max="250"/>
<property name="Margen" type="slider" var="text_margin" default="20" min="0" max="50"/>
<property name="Fuente" type="font" var="font" default="Anteb Bold@anteb.swf" styletarget="font"/>
<property name="Alinear" type="alignment" var="text_align" default="left">
<option name="Izquierda" value="left"/>
<option name="Centro" value="center"/>
<option name="Derecha" value="right"/>
</property>
<property name="Efecto" type="combo" var="text_effect" default="">
<option name="Ninguno" value=""/>
<option name="Zoom" value="zoom"/>
</property>
</properties>
</object>
</objects>
</template>
</templates>
<stylers>
<styler name="Margen Izquierdo" type="number" key="offset_left" default="50"/>
<styler name="Margen Derecho" type="number" key="offset_right" default="50"/>
<styler name="Margen Superior" type="number" key="offset_top" default="50"/>
<styler name="Margen Inferior" type="number" key="offset_bottom" default="50"/>
<styler name="Margen entre elementos" type="number" key="margin" default="10"/>
<styler name="Transición" type="string" key="transition_type" default="grow"/>
<styler name="Dirección de la transición" type="string" key="transition_direction" default="left"/>
<styler name="Radio Fondo" type="slider" key="bg_radius" min="0" max="200" default="0"/>
<styler name="Borde Fondo" type="slider" key="bg_border" min="0" max="10" default="0"/>
<styler name="Sombra Fondo" type="slider" key="bg_shadow" min="0" max="20" default="0"/>
<styler name="Opacidad Fondo" type="slider" key="bg_alpha" min="0" max="1" default="0"/>
<styler name="Sombra Fondo" type="slider" key="bg_shadow" min="0" max="20" default="0"/>
<styler name="Brillos" type="boolean" key="bg_effects" default="true"/>
<styler name="Color Texto Principal" type="color" key="text1_color" default="0x000000"/>
<styler name="Sombra Texto Principal" type="slider" key="text1_shadow" min="0" max="20" default="5"/>
<styler name="Fuente Texto Principal" type="font" key="text1_font" default="Anteb Bold@anteb.swf"/>
<styler name="Color Fondo Principal" type="gradient" key="bg1_gradient" default="0xFFFFFF|0xFFFFFF"/>
<styler name="Color Texto Alternativo" type="color" key="text2_color" default="0xFFFFFF"/>
<styler name="Sombra Texto Alternativo" type="slider" key="text2_shadow" min="0" max="20" default="5"/>
<styler name="Fuente Texto Alternativo" type="font" key="text2_font" default="Anteb Bold@anteb.swf"/>
<styler name="Color Fondo Alternativo" type="gradient" key="bg2_gradient" default="0x000000|0x000000"/>
</stylers>
<styles>
<style name="Redondeado" description="" default="true">
<variant name="Atardecer" description="">
<value key="offset_left" value="92"/>
<value key="offset_right" value="92"/>
<value key="offset_botom" value="50"/>
<value key="offset_top" value="50"/>
<value key="margin" value="10"/>
<value key="bg_alpha" value="1"/>
<value key="bg_radius" value="20"/>
<value key="bg_border" value="2"/>
<value key="bg_shadow" value="5"/>
<value key="bg_effects" value="true"/>
<value key="transition_type" value="grow"/>
<value key="transition_direction" value="left"/>
<value key="text1_color" value="0xFFFFFF"/>
<value key="text1_shadow" value="5"/>
<value key="text1_font" value="Anteb Bold@anteb.swf"/>
<value key="bg1_gradient" value="0x330066|0xAA0066"/>
<value key="text2_color" value="0x000000"/>
<value key="text2_shadow" value="0"/>
<value key="text2_font" value="Anteb Bold@anteb.swf"/>
<value key="bg2_gradient" value="0x9999DD|0xFFFFFF"/>
</variant>
<variant name="Selva" description="" default="true">
<value key="offset_left" value="92"/>
<value key="offset_right" value="92"/>
<value key="offset_botom" value="50"/>
<value key="offset_top" value="50"/>
<value key="margin" value="10"/>
<value key="bg_alpha" value=".8"/>
<value key="bg_radius" value="20"/>
<value key="bg_border" value="2"/>
<value key="bg_shadow" value="5"/>
<value key="bg_effects" value="true"/>
<value key="transition_type" value="grow"/>
<value key="transition_direction" value="left"/>
<value key="text1_color" value="0xFFFFFF"/>
<value key="text1_shadow" value="5"/>
<value key="text1_font" value="Anteb Bold@anteb.swf"/>
<value key="bg1_gradient" value="0x003163|0x015b4b"/>
<value key="text2_color" value="0x000000"/>
<value key="text2_shadow" value="0"/>
<value key="text2_font" value="Anteb Bold@anteb.swf"/>
<value key="bg2_gradient" value="0x9999DD|0xFFFFFF"/>
</variant>
<variant name="Ambar" description="">
<value key="offset_left" value="92"/>
<value key="offset_right" value="92"/>
<value key="offset_botom" value="50"/>
<value key="offset_top" value="50"/>
<value key="margin" value="10"/>
<value key="bg_alpha" value="1"/>
<value key="bg_radius" value="20"/>
<value key="bg_border" value="2"/>
<value key="bg_shadow" value="5"/>
<value key="bg_effects" value="true"/>
<value key="transition_type" value="grow"/>
<value key="transition_direction" value="left"/>
<value key="text1_color" value="0xFFFFFF"/>
<value key="text1_shadow" value="5"/>
<value key="text1_font" value="Anteb Bold@anteb.swf"/>
<value key="bg1_gradient" value="0x883300|0xFF8811"/>
<value key="text2_color" value="0x000000"/>
<value key="text2_shadow" value="0"/>
<value key="text2_font" value="Anteb Bold@anteb.swf"/>
<value key="bg2_gradient" value="0xFFCCAA|0xFFFFFF"/>
</variant>
<variant name="Selva 4:3" description="" default="true">
<value key="offset_left" value="300"/>
<value key="offset_right" value="300"/>
<value key="offset_botom" value="50"/>
<value key="offset_top" value="50"/>
<value key="margin" value="10"/>
<value key="bg_alpha" value=".8"/>
<value key="bg_radius" value="20"/>
<value key="bg_border" value="2"/>
<value key="bg_shadow" value="5"/>
<value key="bg_effects" value="true"/>
<value key="transition_type" value="grow"/>
<value key="transition_direction" value="left"/>
<value key="text1_color" value="0xFFFFFF"/>
<value key="text1_shadow" value="5"/>
<value key="text1_font" value="Anteb Bold@anteb.swf"/>
<value key="bg1_gradient" value="0x003163|0x015b4b"/>
<value key="text2_color" value="0x000000"/>
<value key="text2_shadow" value="0"/>
<value key="text2_font" value="Anteb Bold@anteb.swf"/>
<value key="bg2_gradient" value="0x9999DD|0xFFFFFF"/>
</variant>
</style>
</styles>
<fonts>
<font name="Anteb" file="anteb.swf">
<variant name="Anteb Light"/>
<variant name="Anteb Light Italic" Italic="true"/>
<variant name="Anteb Regular"/>
<variant name="Anteb Regular Italic" Italic="true"/>
<variant name="Anteb Medium"/>
<variant name="Anteb Medium Italic" Italic="true"/>
<variant name="Anteb Bold" bold="true"/>
<variant name="Anteb Bold Italic" Italic="true" bold="true"/>
</font>
<font name="Gotham" file="gotham.swf">
<variant name="Gotham Bold" bold="true"/>
<variant name="Gotham Regular"/>
<variant name="Gotham Bold Italic" bold="true" italic="true"/>
<variant name="Gotham Regular Italic" italic="true"/>
</font>
</fonts>
</package>
That’s what bothers me the most, really, and this is leaving it very easy for them