[Windows Mobile Development and Hacking General] APBilbo:
Little tutorial for config.xml

Ok, lets start with a little tutorial. As the functionallity is still changing a lot, the personalizing app is still under development. There's currently a version of ConfigApp included but it buggy and there are many thing's that can't be done through it. So, at this step of development, I recomend editing config.xml file to personalize the app. To read this tutorial is recomended to know XML file format.

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:

- screenshot: Boolean value. Defines if by pressing any button of the dpad the app will generate an screenshot to the root folder of the device called "captura.jpg". This is usefull if you want to share your setup with the comunity.

- appear: Boolean value. Defines if the animation from down to top when the app got focus is activated.

- skin: defines the path of the folder of the skin to use. Relative to the app folder.

- 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).

Example:

<configuration>
<param name="screenshot" value="True" />
<param name="appear" value="True" />
<param name="skin" value="skins\gullum" />
<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.

Example:

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

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.

Example:

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

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.

- exec: file to execute when the icon is clicked.

- params: params for the file execution.

- width: override the icons width.

- height: override the icons height.

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

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" />

text: Must be especified inside a row or a footer. Used to show text. Inherits all the atributes of the icon (so background icon can be displayed) plus:

- text: contains the text to be shown. The ~ symbol can be used for "new line", and two especial sentences:

* date: #$date,format#. Will be replaced by the date in the format especified. Will be updated automatically every second.

* reg: #$reg,key#. Will de replaced by the value of the desired key. Will be updated every second.

- fonttype: font type specified by "fontname,size,bold" or "size,bold".

- fontcolor: RGB value.

- leftmargin: margin left of the text.

- topmargin: margin top of the text.

- spacing: interline spacing.

Example:

<text text="#$date,HH:mm:ss#~#$date,dd/MM/yy#~#$date,ddd#" fonttype="12,true" fontcolor="255,255,255" leftmargin="10" topmargin="10" spacing="-10" rowspan="3" width="100"/>

clock: must be inside a row or a footer. Inherits all the attributes of the icon. Can contain the following tags:

- hours

- minutes

- seconds

Each of those tags can contain a color attribute with the color in RGB for the line. If some of those tags is not especified, the respective line will not be shown.

Example:

<clock name="clock" path="clock.png" rowspan="3">
<hours color="0,0,100"/>
<minutes color="100,100,200"/>
<seconds color="160,160,255"/>
</clock>

allcontactswithphoto: must be inside a row or a footer. Will display all contact with photo matching the criteria in the attributes:

- name: name of the tag element.

- categoryfilter: comma separated list of contact categories to be included on the filter.

- showcategories: If true will automatically show a separator for each category containing contacts.

- max: max number of contacts to display.

- width/height: define the diaplay size of the contact photos.

Example:

<allcontactswithphoto categoryfilter="Personal" showcategories="true" max="20" height="60" width="44"/>

lastapps: must be included inside a row or a footer. Will display the last 12 apps executed (same shown in the start menu). Can include the following attributes:

- name.

- zoom: will zoom the icons if different than 1.

Example:

<lastapps zoom="1" name="Group unnamed" />

runningapps: will display the running apps icons. The following attributes can be included:

- name.

- zoom: will zoom the icons if different than 1.

Inside you can especify the app's to exclude from the list by using the exclude tag as shown in the example.

Example:

<runningapps zoom="1" name="Group unnamed">
<exclude name="\Windows\shell32.exe" />
<exclude name="\Windows\cprog.exe" />
<exclude name="\Windows\repllog.exe" />
<exclude name="\Windows\gwes.exe" />
<exclude name="\Windows\filesys.exe" />
<exclude name="\Program Files\ThrottleLauncher\ThrottleLauncher.exe" />
</runningapps>