[Windows Mobile Development and Hacking General] APBilbo:
Hi!!!

Here you have a little tutorial on how to create Themes for throttlelauncher. I still have to work on it but almost all is here. With this, theorically you can create almost any interface (still there's some work to do to achieve this :P).

Any help, sugestions or requests are appreciated.

To read this tutorial is recomended to know XML file format.

First of all the file structure of a setup for throttlelauncher must be this.

- throttlelauncher instalation

|- Setups

|- MyTheme

|- Skins

|- Skin1

|- skin.xml

|- ...pictures of the skin​

|- Skin2

|- skin.xml

|- ...pictures of the skin​

|- Skin3​

|- config.xml

|- ....imported xml files

|- icons

|- ....my icons... any dir estructure​

can be placed inside

To configure the app there are several tags. All the xml must be inside the root tag.

configuration: this tag contains the configuration parameters for the app (especified by the tag param). The allowed params names are:

- appear: Boolean value. Defines if the animation from down to top when the app got focus is activated (only valid for the standalon app).

- skin: defines the path of the folder of the skin to use. Relative to the app folder. See some post's below how to create the skin files.

- speeddecreaserate: factor that multiplies the value of your finger speed when starting kinetic scrolling.

- speedinitmultiply: factor that sets how fast the speed will be decreased in kinetic scrolling. IMPORTANT: set a value greatter than 1.

- status: two possible values. 0: normal (will show title bar and button bar of the app). 1: Maximized (will show the app fullscreen).

- osdenabled: It true, the OSD top bar will be shown when element is selected.

- imagecontactnophoto: Relative path to the image to be used it there's no contact photo.

- minclicktime: Min lapse time in miliseconds between the mouse down and up events to perform a click over the pressed element.

- .... there are some more... I will add them latter.

Example:

<configuration>
<param name="screenshot" value="True" />
<param name="appear" value="True" />
<param name="skin" value="Setups\Touchflo3D\skins\general" />
<param name="speeddecreaserate" value="1.2" />
<param name="speedinitmultiply" value="1.4" />
<param name="status" value="1" />
</configuration>

page: wich represent a page inside the app. Must be placed inside the root tag and the first one in the file is going to be the first one been showed by default. Page can have 2 attributes:

- name: contains the name of the page. This is going to be used when whe create a link to this page.

- loadonstartup: Boolean value, the default is "true". I recomend to set it to "false" in any page that be do not use frecuently to reduce memory usage.

- autounload: Indicates if the page will be unloaded automatically (and all it's resources will be freed).

- autounloadtime: time a unused page will remain loaded until autounload event starts. This param will be only used it autounload is true.

- import: will import the target xml as content of the page.

Example:

<page name="Home" loadonstartup="True" autounload="false">

row: Must be placed inside a page tag. They are specified in order from top to bottom. The following attributes are allowed:

- name

- marginX / marginY : margin bettwen the elements contained in the row.

- rows: number of rows of elements. If you set it up to -1 the number of rows is infinite.

- minheight: minimum height of the row (use recomended with dinamically sized rows due to contents like all contactswith photo or runningapps or recent)

- mincolwidth:

- scrollingmode: one of [Paged, WheelOfFortune, Direct, Kinetic, Auto, None]

- alignment: one of [left,right,center]

Example:

<row name="Programs" marginX="5" marginY="1" rows="3" scrolling="Paged">

footer: Must be placed inside the root tag. It parametters are exactly the same as the row. The footer is common for all the pages. Only one footer can be especified.

icon: Must be used inside the row tag or the footer tag. Used to display an icon. The allowed attributes are:

- name: Will be shown in the OSD when the icon is selected.

- path: path of the icon file. Recomended to use png. Can be absolute or relative to the app path. If the path is not specified, then the file on exec (if it's exe or lnk) will be used to obtain the icon image. No zooming efect will be applied in this case.

- exec: file to execute when the icon is clicked (deprecated, use event click instead).

- params: params for the file execution (deprecated, use event click instead).

- width: override the icons width.

- height: override the icons height.

- rowspan: indicates that the icon fills that number of rows intead of 1.

- showtext: will display the name of the icon as footer text.

Example:

<icon name="New Contact" exec="\windows\poutlook.exe" params="contacts -new" path="icons\contact.png" />

separator: must be especified inside a row or a footer. Allowed attributes are:

- name: if especified will show a vertical oriented text. If not especified the separator will show a vertical line.

Example:

<separator name="Personal" />