CG clients

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 :slightly_frowning_face:

5 Likes