You can set fonts
for label, specifies how to render text

for Window/Row/View/Item-Tags, which will be bequeathed to sub-tags. Use the following attributes:

Optional Font Attributes

Name Value Description
fontsize x Fixed fontsize x.
-x/+x Relative fontsize depending on the fontsize set by enclosing tags.
fontfamily Fontfamily e.g. Tahoma.
You can use custom ttf-fonts as well: Copy the ttf-font to \Windows\Fonts and supply the name in fontfamily-attribute, font will then be used after reboot!

Note that the fontfamily/fontsize is used for any subsequent tags enclosed by, but you can specify a different fontfamily/fontsize for subsequent tags though.

Window
Root of the document

Lets consider the Window-Tag at first. The Window-Tag contains anything which can be shown on clientarea of BattteryStatus-window. The attributes in Window-Tag determines global parameters for each subtag.

Only classes contained in the theme can be shown, that is classes not included in the theme are disabled and can not be enabled even if it is checked in options. e.g. if no calltimes-class is included, then no code for counting calltimes (e.g. sms) will be executed. But almost any class contained in window can be disabled/enabled in options.
Furthermore there are classes (DigitClock, Registrytracker, etc.) and actions (MenuPhone, ToggleA2DP, etc.) which can only be enabled/disabled by including them into the window.

A Window can have several image-tags specifying background-images, which are painted before any contained items are painted. An image-tag can make use of any attributes allowed and described for image-tag.

Required Attributes

Name Description
xmlns This is used as the schema-location for schema-validation. You should always supply this attribute and validate each xml-file.
imagesrc This is the relative path starting from “\Program Files\HomeScreen PlusPlus\” for any image-filename in image-tags. If you create your custom theme, then create a new directory, e.g. “\Program Files\HomeScreen PlusPlus\MyTheme” and set imagesrc=”MyTheme”.
Note: A custom image-directory is recommended, otherwise your images will get lost with an update to a newer version.
version obsolete - will be ignored

Optional Attributes

Name Description
absolute This attribute controls how to position the image/label. The left-attribute (if given) is added to that position. see absolute explanation.
animate Add 100 to the animation-value for dynamically adapting left / right animation, e.g. animate=”101″ means that if the next View is left from the current one, then animation 1 will be used. If the next View is right from the current one, then animation 2 will be used.
The 100-option can be used for any of the animation with the option for left or right.

  • 0 = no animation for switching Views.
  • 1 = (default) left slide in animation.
  • 2 = right slide in animation.
  • 3 = top down slide in animation.
  • 4 = bottom up slide in animation.
  • 5 = left page flip animation
  • 6 = right page flip animation
  • 9 = left in cube
  • 10 = right in cube
  • 14 = zoom in
  • 15 = zoom in with left leave
  • 16 = zoom in with right leave
  • 20 = alpha blend in
  • 21 = alpha blend in with left leave
  • 22 = alpha blend in with right leave
animatebg This attribute allows for a different color for the background, while the animation performs.

  • missing attribute = the theme-background (watermark) is used for drawing the background.
  • 0xFF000000 = use background of default todayscreen for drawing the background.
  • BGR-Color = Filled rectangle with color in BGR-Colorformat

animatebg=”0″ -> black color is used (0×000000): BGR -> Black = 00, Green = 00, Red = 00
animatebg=”0xFFFFFF” -> white color is used: BGR -> Black = FF, Green = FF, Red = FF (whereas 0xFF is hexadecimal and is 255 in decimal).

custombg -1 = use alpha-channel-rendered background for Items only if it has no selection-effect
0 = use system default background for any Items
1 = use alpha-channel-rendered background for any Items
fontsize see fontsize explanation.
fontfamily see fontfamily explanation.
itemselect specifies the granularity of items to select for One-Hand-Navigation.

0: (default) By default each Row is selected en bloc.
1: Each contained Item can be selected using navigation-keys.
2: Keep selected state even if Row is not visible.
3: Execute Action as soon as Item gets selected.


Use negative values for preventing the action of rightmost item to be executed if dpad-right is pressed, e.g. itemselect=”-1″

gesture 1 (default) = allow left/right/top/down-gesture for switching Views

0 = disable gestures
mode 0 = coordinates are qvga, 1 = coordinates are vga, 2 = no adaption to resolution
selmode specifies how the contained Items are transformed/moved if selected.

-x: Item will be moved to lower-right by x-pixel.
0: (default) No selection-effect but drawing background.
x: Item will be streched by x-pixels.

Sample

1
2
3
4
5
6
7
8
9
10
11
<Window
    xmlns="http://www.chi-tai.info/HomeScreen"
    imagesrc="default"
    version="1"
    vga="0"
    fontsize="+2"
    fontfamily="Tahoma">
    .
    <image src="background.png" />
    .
</Window>

Row
Container for Views

A Window must contain one or more Rows and the sequence of the Rows are the same as on clientarea. A Row can have the attributes fontsize and fontfamily.

A Row can have several image-tags specifying background-images, which are painted before any other contained items are painted. A image-tag can make use of any attributes allowed and described for image-tag.

Optional Attributes

Name Description
fontsize see fontsize explanation.
animate see animate explanation.
fontfamily see fontfamily explanation.
gesture see gesture explanation.
itemselect specifies the granularity of items to select for One-Hand-Navigation.
For details see Itemselect Details
itemrepos Controls repositioning of Items in case an Item is disabled by options. Consider the temperature-reading (of battery). If the temperature-reading is disabled, then the Item of next View is placed there instead. For this function, the Items sizes (image and label) must be almost the same.

0: (default) No repositioning
1: Reposition the containing Views if required.

name Supply a name for this row in context-menu (Show Rows).
seperator draws a seperator/line at bottom of the row
0 = no seperator
1 = draw a seperator
absolute This attribute controls how to position the image/label. The left-attribute (if given) is added to that position. see absolute explanation.
rowtoggle this attributes determines whether the visibility of next row shall be toggled
0 = no toggle
1 = toggle next row (default)
selmode specifies how the contained Items are transformed/moved if selected.

-x: Item will be moved to lower-right by x-pixel.
0: (default) No selection-effect but drawing background.
x: Item will be streched by x-pixels.

Sample

1
2
3
4
5
6
7
8
9
10
11
12
<Row fontsize="12" fontfamily="Tahoma">
		.
    <image src="bg.png" top="2" left="10" />
		.
    <View>
        .
        .
    </View>
      .
      .
      .
</Row>

View
Container for Items

Each Row must contain one or more Views. Consider the calltimes-row which have three views for incoming, outgoing and both summed up.

Each Views can have several image-tags specifying background-images, which are painted before any other contained items are painted. A image-tag can make use of any attributes allowed and described for image-tag.

Optional Attributes

Name Description
animate see animate explanation.
extend This attribute allows for extending “Reach”/”UpdateRegion” of a View, e.g. extend=”6″ for 6 pixels.
This is particularly for sliding Views that have Items which are oversized if selected (or unselected),
that is they overlap with adjacent Views. You can render such Views correctly by extending the Update-Region of that particular View.

Note: Don’t extend a View if it’s not needed, because it could reduce render performance.

height 1. If no height is given, then the system default (device-dependend) will be used for each View.

2. If a height is given, then it will be used for the current View.
2.1 Furthermore it will be used for any subsequent View of the enclosing Row too (unless a new height is given).

fontsize see fontsize explanation.
fontfamily see fontfamily explanation.
gesture see gesture explanation.
absolute This attribute controls how to position the image/label. The left-attribute (if given) is added to that position. see absolute explanation.
itemselect specifies the granularity of items to select for One-Hand-Navigation.
For details see Itemselect Details
multi specifies if the contained items are placed as multiple lines.

0: (default) View shall be handled as 1 line.
1: Contained Items shall be handled as multiple lines

adaptwidth If the screen-width changes, then the last Items text-box-width of each View will be adapted to fit the new width (by default).

0: dont adpat the View to width.
1: (default) adapt width of last item to fit new width

selmode specifies how the contained Items are transformed/moved if selected.

-x: Item will be moved to lower-right by x-pixel.
0: (default) No selection-effect but drawing background.
x: Item will be streched by x-pixels.

slide Supports only Application-Launcher-Views. Allows to slide the View by stylus or left/right finger gesture. You can place a lot of Items in one View and slide the View similar to a ring.

0: (default) no sliding of that View.
1: slide the View

Sample

1
2
3
4
5
6
7
8
9
10
11
12
13
<View height="16" fontsize="12" >
		.
    <image src="bg.gif" resize="50"
		   transparent="ffffff" />
		.
    <Item >
        .
        .
    <Item class=... />
      .
      .
      .
</View>

Item
Container for image/label, specifies what to draw and how to render it

Most of the attributes are designated for the Item-Tag. Each Item can have a label-tag and an image-tag depending on the class and type. The sequence of Item-Tags are the same as shown from left to right. The width of each item is calculated dynamically depending on the bitmap-size and the attributes given in the subtags.

Sample

1
2
3
4
<Item class="mobile_operator_homezone" >
    <image src="home.bmp" />
    <label valign="top" format="wordbreak" />
</Item>
1
<Item class="mobile_operator_homezone" />

Required Attributes

Name Value Description
class Each Item-Tag must have a class, which determines the text to show or the function it provides. If there is only a classname given, then any other values for an instance of this class (on today-screen) will get the default.
battery_ac_icons Leftmost icons for battery/ac in first row.
battery_meter Batterylevel, which will be drawn and percentage as text, e.g.

100%
mobile_operator_homezone Mobile operator with homezone-icon.
mobile_operator Mobile operator, where you can provide your network provider logo.
cell_broadcast_message Cell broadcast messages limited to 160 characters.
cpuspeed e.g.

195 MHz
cpu_utilization Cpu-utilization, which will be drawn and percentage as text, e.g.

1%
memory_program Free program memory, e.g.

25 MB
memory_data Free data memory, e.g.

25 MB
memory_sdcard Free memory on sd-card, e.g.

4.0 GB
temperature Battery-temperature, e.g.

30 C
powerdrain e.g.

64 mA
500 mW
phone_signal e.g.

90%
calltimes_out_sms Outgoing calltimes with outgoing sms (monthly/daily), e.g.

T: 00:00:00, M: 00:00:00, SMS 200
calltimes_in_sms Incoming calltimes with incoming sms (monthly/daily), e.g.

T: 00:00:00, M: 00:00:00, SMS 200
calltimes_inout_sms Incoming + outgoing calltimes with incoming + outgoing sms (monthly/daily), e.g.

T: 00:00:00, M: 00:00:00, SMS 200
calltimes_out Outgoing calltimes (monthly/daily), e.g.

T: 00:00:00, M: 00:00:00
calltimes_in Incoming calltimes (monthly/daily), e.g.

T: 00:00:00, M: 00:00:00
calltimes_inout Incoming + outgoing calltimes (monthly/daily), e.g.

T: 00:00:00, M: 00:00:00
calltimes_out_day Daily outgoing calltimes, e.g.

T: 00:00:00
calltimes_in_day Daily incoming calltimes, e.g.

T: 00:00:00
calltimes_inout_day Daily incoming+outgoing calltimes, e.g.

T: 00:00:00
calltimes_out_month Monthly outgoing calltimes, e.g.

T: 00:00:00
calltimes_in_month Monthly incoming calltimes, e.g.

T: 00:00:00
calltimes_inout_month Monthly incoming+outgoing calltimes, e.g.

T: 00:00:00
data_summed_up Summary of data-traffic (monthly + daily traffic, monthly online duration), e.g.

D: 200MB, M: 800MB, T:64:23.12

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_month Monthly traffic, e.g.

M: 800MB

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_month_sent Monthly traffic sent, e.g.

M: 800MB

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_month_received Monthly traffic received, e.g.

M: 800MB

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_day Daily traffic, e.g.

D: 100MB

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_day_sent Daily traffic sent, e.g.

D: 100MB

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_day_received Daily traffic received, e.g.

D: 100MB

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_traffic_remain Remaining traffic from limit, e.g.

Remain: 10MB, 2%

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_conn Number of monthly established connections, e.g.

C: 198

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_duration_month Online duration (month), e.g.

M: 34:23.12

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

data_duration_day Online duration (day), e.g.

D: 01:23.12

Note: This class needs at least one of the calltimes-class active, as it is structued in the options!!

sms_out Monthly outgoing SMS, e.g.

SMS 450
sms_in Monthly incoming SMS, e.g.

SMS 450
sms_inout Monthly incoming+outgoing SMS, e.g.

SMS 450
wifi_state WiFi-States, AP, +WPA2, connecting MyNetwork
wifi_networks if version=”0″ or no version given for Window, then the given height for the enclosing View will not be adopted to the row-number set in options.

if version=”1″ then the height supplied for (in enclosing View) is used for 5 available WiFi-Networks. If you change in options to show e.g. only 2 networks, then the new height will be calculated in the following manner: (givenHeight/5)*2.

if version=”1″ and no height (in eclosing View) is given, then anything will be handled automatically (recommended).

-90 dBm, 6 ch, WEP, MyNetwork
-90 dBm, 6 ch, WEP, MyNetwork1
-90 dBm, 6 ch, WEP, MyNetwork2
---
---
registry_tracker This class allows to track registry values (DWORD/String) by means of Notification Broker. Supply a registry-path in the key_value-attribute of registry-Tag and each time the registry-value changes, it will be refreshed on todayscreen.
You can supply the registry-Tag either within label-Tag or within the Item-Tag, depending on the type you want to show on todayscreen. If you want a label to have a customizeable text, then the label-tag must have a text-attribute as follows:

<label text="%d missed" >
  <registry keyvalue=
    "HKCU\System\State\Phone\Missed Call Count"
     mask="0xFF" />
</label>

If you want an images-only indicator then supply as follows:

<Item class="registry_tracker" >
  <image src="image%d" />
  <registry keyvalue=
    "HKCU\System\State\Phone\Missed Call Count"
     mask="0xFF" />
</Item>

where:

text must be a pattern to render the registry value. You must use %d for DWORDs and %s for Strings.
btw. you can also use c/c++ formatstrings like “0x%.8x” for hexvalue-rendering.

key_value must be a valid path in the registry where you can use both formats, that is HKLM as well as HKEY_LOCAL_MACHINE.

You can also supply a mask-attribute within registry-Tag to apply to the value before displaying. The mask is applied as an binary and-operator to the value, e.g. regsitry-value & mask. Search wikipedia for binary and-operator.

You can also supply a formatted path to the path of image (in src-attribute) to show an image depending on registry-value,
e.g. <image src=”filename%d.ext” …> for dword-value or <image src=”filename%s.ext” …> for a string-value.
if there is no image correlated to the registry-value, then filename-1.ext (dword) or filename_empty.ext (string) will be used, that is such an image MUST exist.

Note: The images have to be of same type, e.g. same bitcount.
Invalid-Characters like \,& and so on in filenames for the images will be replaced with “_”.

see sample for registry_tracker.

Head over to rotlaus.com for a list of useful registry-values.

date shows the date formated according to a formststring given in text-attribute. The formatstring must fit msdn.
e.g. text=” MMMM dd/yyyy “
clock shows the time formated according to a formststring given in text-attribute. The formatstring must fit msdn.
e.g. text=” hh’:'mm’:’ss tt”
clock_digit To customize a digit-clock you must have
four Item-tags with clock_digit
one Item-tag with clock_seperator
one Item-tag with clock_alarm
one Item-tag with clock_apm

There must be png-files for any digits, seperator, alarm and am/pm under theme-folder with following filename:
empty.png, 0.png, 1.png, 2.png, 3.png, 4.png, 5.png, 6.png, 7.png, 8.png, 9.png, alarmon.png, alarmoff.png, am.png, pm.png, seperator.png

Notice: Each of the digits 0,1,2,3,4,5,6,7,8,9,empty MUST be of same size!
Any image for digit-clock must be of same type, e.g. any image must be 32bpp for using alpha-channel!!!
Otherwise they will not be drawn !!!

You can have only one digit-clock in a view, and only one clock can be painted for a window, that is you can have several views with a digit-clock, but only one should be visible at any time.

see sample for digit-clock.

clock_seconds To customize a digit-clock with seconds you must have a basic-digit clock specified! In addition to that you need:
two Item-tags with clock_seconds
optional one Item-tag with clock_seconds_sep

If no images for seconds-digits are given, then the images from digit-clock will be used. For this case it is a good idea to make them smaller by resize them. This can be done by adding a resize-attribute to the first seconds-class.

If you want to supply images for second-digits, they must be png-files for any digits, seperator under theme-folder with following filename:
emptys.png, 0s.png, 1s.png, 2s.png, 3s.png, 4s.png, 5s.png, 6s.png, 7s.png, 8s.png, 9s.png, seperators.png

Notice: Each of the digits 0,1,2,3,4,5,6,7,8,9,empty MUST be of same size !!! Otherwise the will not be drawn !!!

see sample for digit-clock with seconds.

clock_seperator places the seperator-png for clock_digits, e.g. 01:00
clock_alarm places the alarmon/alarmoff-pngs
clock_apm places the am/pm-pngs
start_app This class shows the application-icon of the program given in path-attribute and starts the program on tap.
Note: path is mandatory for the class start_app!

A second program can be specified with path1-attribute which opens on hold (tap and hold) on the icon.

Relative or Absolute: The path-attribute can have either an absolute path with the full pathname to the program or a relative pathname.

Absolute pathnames begin with the character ‘\’, e.g.

  • \Windows\Calc.exe
  • \Program Files\HomeScreen PlusPlus\tinybatch.exe

Relative pathnames are anchored to the theme-folder and addresses files within the theme-folder. Given that the name of your theme is “MyTheme” and the theme-folder is “\Program Files\HomeScreen PlusPlus\MyTheme”:

  • “Calc.exe” - points to the file “\Program Files\HomeScreen PlusPlus\MyTheme\Calc.exe”
  • “tinybatch.exe” - points to the file “\Program Files\HomeScreen PlusPlus\MyTheme\tinybatch.exe”
  • “..\tinybatch.exe” - points to the file “\Program Files\HomeScreen PlusPlus\tinybatch.exe”
  • “..\..\totalcmd\cecmd.exe” - points to the file “\Program Files\totalcmd\cecmd.exe”

A title to render for the icon can be specified with title-attribute.
A title to be displayed can be given in title-attribute.

You can add arguments for the programs to start by seperate them with double-colon, e.g.
\Program Files\MemMaid\MemMaid.exe ::-Free

see sample for start_app!

space implements a placeholder, which can be customized with an image, label and actions. The default-type of a space is type=”icon”!

A space supports the text-attribute as follows, e.g. drawing a custom text:

<Item class="space" type="value" >
      <label text="Hello World!" width="60" />
</Item>
tPlug set a regular today-plugin.

  • The name of the plugin must be given in title-attribute.
  • (Optional) Position can be specified with label-tag (left/top/height/width), if height-attribute or width-attribute is 0 then they will be handled automatically
  • (Optional) using left/right-gesture for view-switching can be specified with gesture-attribute in Item-tag.
  • (Optional) unload plugin if the surrounding View is not visible: Use unload-attribute in Item-tag.
    unload=”1″ (unload plugin), unload=”0″ (default, don’t unload plugin )
  • (Optional) caching of background-image / watermark for plugin: Use cachebg-attribute in Item-tag. Use cachebg-attribute in Item-tag.
    cachebg=”1″ (default, cache background-image for plugins / reduces system load for drawing background-image), cachebg=”0″ (don’t cache background-image)

    e.g. placing PocketMSN-Plugin in one Row:

    <Row>
      <View>
        <Item class="tPlug" title="Pocket MSN" >
          <label left="-28" />
        </Item>
      </View>
    </Row>

    e.g. placing PocketMSN and Messaging-Plugin in one Row:

    <Row>
      <View>
        <Item class="tPlug" title="Pocket MSN" gesture="1" >
          <label top="0" left="-28" width="120" />
        </Item>
        <Item class="tPlug" title="&quot;Messaging&quot;"
                 gesture="1" unload="1">
          <label height="32" width="120" />
        </Item>
      </View>
    </Row>

Sample clock_digit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Row seperator="1">
  <View height="76">
    <Item class="clock_digit" >
      <image left="-18" />
    </Item>
    <Item class="clock_digit" />
    <Item class="clock_seperator" >
      <image top="16" />
    </Item>
    <Item class="clock_digit" />
    <Item class="clock_digit" />
 
    <Item class="clock_alarm" >
      <image left="0" top="14" />
    </Item>
    <Item class="clock_apm" >
      <image left="-22" top="40" />
    </Item>
  </View>
</Row>

Sample clock_digit with seconds

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<Row seperator="1">
  <View height="58">
	<Item class="clock_digit" >
	  <image left="-18" resize="85" />
	</Item>
 
	<Item class="clock_digit" />
	<Item class="clock_seperator" >
	  <image top="8" />
	</Item>
 
	<Item class="clock_digit" />
	<Item class="clock_digit" />
 
	<Item class="clock_seconds_sep" >
	  <image left="25" resize="50" />
	</Item>
 
	<Item class="clock_seconds" >
	  <image left="22" />
	</Item>
 
	<Item class="clock_seconds" >
	  <image left="22" />
	</Item>
 
	<Item class="clock_alarm" ontap="CtlPnl" index="16" subindex="2" >
	  <image left="-43" top="4" />
	</Item>
 
	<Item class="clock_apm" >
	  <image left="4" top="2" />
	</Item>
  </View>
</Row>

Sample start_app

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<Row seperator="1">
 
  <View height="112" absolute="1" itemselect="1" multi="1" >
	<Item class="space" >
	  <image src="rotate.bmp" transparent="020202" />
	</Item>
 
	<Item class="start_app" title="   Calculator"
			path="\Windows\Calc.exe" >
	  <image left="25" top="1" />
	  <label width="180" bold="1" valign="top" top="10"
	        height="32" />
	</Item>
 
	<Item class="start_app" title="   File Explorer"
			path="\Windows\fexplore.exe" >
	  <image left="25" top="38" />
	  <label width="180" bold="1" valign="top" top="46"
	        height="32" />
	</Item>
 
	<Item class="start_app" title="   Internet Explorer"
			path="\Windows\iexplore.exe" >
	  <image left="25" top="76" />
	  <label width="180" bold="1" valign="top" top="84"
	        height="32" />
	</Item>
  </View>
 
  <View height="20" itemselect="1" >
	<Item class="space" >
	  <image left="-25" src="rotate.bmp" transparent="020202" />
	</Item>
 
	<Item class="start_app" onhold="StartApp" path="\Windows\fexplore.exe"
			path1="\Windows\solitare.exe" />
 
	<Item class="start_app" path="\Windows\BubbleBreaker.exe" />
 
	<Item class="start_app" path="\Windows\solitare.exe" />
 
	<Item class="start_app" path="\Windows\pword.exe" />
 
	<Item class="start_app" path="\Windows\iexplore.exe" />
 
	<Item class="start_app" path="\Windows\Calc.exe" />
  </View>
 
  <View height="38" itemselect="1" selmode="8" >
	<Item class="space" >
	  <image left="-25" src="rotate.bmp" transparent="020202" />
	</Item>
 
	<Item class="start_app" onhold="StartApp" path="\Windows\fexplore.exe"
			path1="\Windows\solitare.exe" />
 
	<Item class="start_app" path="\Windows\BubbleBreaker.exe" />
 
	<Item class="start_app" path="\Windows\solitare.exe" />
 
	<Item class="start_app" path="\Windows\pword.exe" />
 
	<Item class="start_app" path="\Windows\iexplore.exe" >
	  <image smallicon="1" />
	</Item>
 
	<Item class="start_app" path="\Windows\Calc.exe" />
  </View>
 
  <View height="62" absolute="2" itemselect="1" selmode="8" >
	<Item class="space" absolute="0" >
	  <image left="-25" src="rotate.bmp" transparent="020202" />
	</Item>
 
	<Item class="start_app" title="Calc"
			path="\Windows\Calc.exe" >
	  <image left="25" top="1" />
	  <label left="9" width="40" fontsize="-3" valign="top" top="36" />
	</Item>
 
	<Item class="start_app" title="File Explore"
			path="\Windows\fexplore.exe" >
	  <image left="65" top="1" />
	  <label left="-4" width="40" fontsize="-3" align="center" valign="top" top="34" format="wordbreak" />
	</Item>
 
	<Item class="start_app" title="Internet Explore"
			path="\Windows\iexplore.exe" >
	  <image left="105" top="1" />
	  <label left="-2" width="40" fontsize="-3" align="center" valign="top" top="36" format="wordbreak" />
	</Item>
 
	<Item class="start_app" title="Power Point"
			path="\Windows\ppt.exe" >
	  <image left="145" top="1" />
	  <label left="-2" width="40" fontsize="-3" align="center" valign="top" top="36" format="wordbreak" />
	</Item>
 
	<Item class="start_app" title="Solitare"
			path="\Windows\solitare.exe" >
	  <image left="185" top="1" />
	  <label left="5" width="40" fontsize="-3" valign="top" top="36" />
	</Item>
 
  </View>
 
</Row>

Sample registry_tracker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<Row seperator="1">
  <View>
    <Item class="row_status" />
    <Item class="registry_tracker" ontap="InboxSms" >
      <image src="home%d.bmp" />
      <label text="%d unread" >
        <registry mask="0xFF"
                 keyvalue="HKCU\System\State\Messages\sms\Unread\Count" />
      </label>
    </Item>
 
    <Item class="registry_tracker" ontap="PhoneMissed" >
      <label text="%d missed" >
        <registry keyvalue="HKCU\System\State\Phone\Missed Call Count" />
      </label>
    </Item>
 
    <Item class="registry_tracker" ontap="PhoneMissed" >
      <image src="missed%d" />
      <registry keyvalue="HKCU\System\State\Phone\Missed Call Count" />
    </Item>
 
    <Item class="registry_tracker" ontap="PhoneMissed" >
      <label text="%s" >
        <registry keyvalue="HKLM\System\State\Phone\Last Incoming Caller Number" />
      </label>
    </Item>
  </View>
</Row>

Optional Attributes

.

Name Value Description
vga 0 Coordinates are qvga.
1 Coordinates are vga.
left -x Item-Tag will be shifted left by x pixel.
x/+x Item-Tag will be shifted right by x pixel.
fontsize see fontsize explanation.
fontfamily see fontfamily explanation.
type The type attribute specifies what to render, that is e.g. if an image should be rendered or not.
lefticon This type has only an icon and is intended for the leftmost icon which should not cover more than 28pixel in width. You can add an image-tag for this type. e.g. the ac/battery-icon
icon This type has only an icon (image-tag)
iconvalue This type has an icon (image-tag) and a text (label). e.g. memory-reading
value This type has only a text (label). e.g. CpuSpeed-reading
lefticonvalue This type has an leftmost icon (image-tag) and a text (label). e.g. calltimes-row
iconbattery This is a special type having an icon (image-tag) and a text (label). The batterylevel will be drawn to the bitmap, thus the image must be in form of batterymeter-bitmap.
iconcpuutil This type has an icon (image-tag) and a text (label). The cpu-utilization will be drawn to the bitmap, thus the image must be in form of cpu-bitmap.
ontap / onhold You can set actions for tap or tap and hold for Item-Tags and use of attributes ontap (for tap) and onhold (for tap and hold).
DoN Do nothing. No Action.
DoNothing Do nothing. No Action.
SoftReset Invokes a softreset.
ToggleBold Toggle bold/normal fontweight
ToggleView Toggle View
CommMgrApp Start comm-manager application
ToggleCpuSpeed Toggle cpu-speed (original/overclocked)
TogglePowerMode Toggle powerdrain between mA/mW
ToggleTemperature Toggle battery temperature between degree celsius and degree fahrenheit
OpenOptions Open context-menu with options
ToggleCpuWakeup Toggle overclocking on device wakeup option
TerminateCommMgrApp Terminates comm-manager application
ToggleNextRow Toggle visibility of next row
MenuDataConnections Open the contextmenu for data-connections
Phone Open phone application
PhoneMissed Open the phones callhistory for missed calls.
InboxSms Open messaging application for sms
InboxMms Open messaging application for mms
InboxMail Open messaging application for ActiveSync-Email
StartApp starts the program given in path/path1-attribute (see class start_app)

Relative or Absolute: The path-attribute can have either an absolute path with the full pathname to the program or a relative pathname.

Absolute pathnames begin with the character ‘\’, e.g.

  • \Windows\Calc.exe
  • \Program Files\HomeScreen PlusPlus\tinybatch.exe

Relative pathnames are anchored to the theme-folder and addresses files within the theme-folder. Given that the name of your theme is “MyTheme” and the theme-folder is “\Program Files\HomeScreen PlusPlus\MyTheme”:

  • “Calc.exe” - points to the file “\Program Files\HomeScreen PlusPlus\MyTheme\Calc.exe”
  • “tinybatch.exe” - points to the file “\Program Files\HomeScreen PlusPlus\MyTheme\tinybatch.exe”
  • “..\tinybatch.exe” - points to the file “\Program Files\HomeScreen PlusPlus\tinybatch.exe”
  • “..\..\totalcmd\cecmd.exe” - points to the file “\Program Files\totalcmd\cecmd.exe”

e.g. if you want to open the inbox of a particular email-account use
ontap=”StartApp”

and
path=”\Windows\tmail.exe ::-service Name_of_Email_Account -open inbox”

e.g. if you want make a call to 123456 use
path=”\Windows\cprog.exe ::-url tel: 123456″

e.g. if you want to open tasks use
path=”\Windows\tasks.exe”

Note: you must use xml-entities within quotes, e.g. use ” instead of ” !!!

CtlPnl For this action you must specify attributes index/subindex (ontap) respectively index1/subindex1 (onhold).

These indexes specify which tab of system-settings-panel to open. The action opens ctlpnl.cpl with the given indexes.
e.g. to open time-settings ontap=”CtlPnl” index=”16″

Search for ctlpnl.cpl or cplmain.exe for lists of available tabs.
e.g. pocketpcdn.com, xs4all.nl, asusmobile.ru

DeviceLock Invokes DeviceLock of windows mobile (if it is enabled in options)
DisplayOff Turn off Display. Keep in mind, that the device is NOT in standby, just display is off!
MenuBlueTooth Opens context menu for BlueTooth
MenuPhone Opens context menu for Phone
MenuWiFi Opens context menu for WiFi
Message Send a message (by means of PostMessage()) to a Window.

  • param: path-attribute (the windows’ class name)
  • param: title-attribute (the windows’ title (Optional))
  • param: msg-attribute (the numeric window message)
  • param: index-attribute (the numeric wParam)
  • param: subindex-attribute (the numeric lParam (Optional))

e.g.

  • ontap=”Message” path=”HHTaskBar” msg=”1156″ index=”2″ (Send msg=1156 to Taskbar-Window with wParam=2 - Set Vibra Mode)
  • ontap=”Message” path=”HHTaskBar” msg=”1156″ index=”0″ (Set Normal Sound Mode)
  • ontap=”Message” path=”HHTaskBar” msg=”1156″ index=”3″ (Set Silent Mode)
TaskList Opens TaskList (if TaskManager is enabled in options)
ToggleA2DP Toggles A2DP (Wireless Stereo Audio BlueTooth) connection.
ToggleBluetooth Toggles BlueTooth status, that is disable/enable.
TogglePhone Toggles Phone status, that is disable/enable.
ToggleWiFi Toggles WiFi status, that is disable/enable.
View Show a specific View, whereas for the Item-Attributes: index=”RowNumber” (Row) specifies the Row-number starting at 0..n and subindex=”ViewNumber” (View) is the View-number starting at 0..m
You can switch up to five Views simultaneously by using

  • index/subindex for the first Row/View
  • index_1/subindex_1 for the second Row/View
  • index_2/subindex_2 for the third Row/View
  • index_3/subindex_3 for the third Row/View
  • index_4/subindex_4 for the third Row/View

If switching several Views, then the Row-number for index to index_2 must be ascending order.

1
2
3
4
5
<Item ... ontap="View" index="0" subindex="1"
 index_1="2" subindex_1="1"
 index_2="3" subindex_2="1" >
   ...
<Item />
text depends on class

class date: formatstring for date according to msdn

itemselect specifies the granularity of items to select for One-Hand-Navigation.
For details see Itemselect Details
index index of CtlPnl for ontap
subindex subindex of CtlPnl for ontap
index1 index of CtlPnl for onhold
subindex1 subindex of CtlPnl for onhold
absolute This attribute controls how to position the image/label. The left-attribute (if given) is added to that position.
0 (default) Place image after the previous item. Place label after image. This is a so called relative positioning where the position depends on the previous entity.
1 Use 0 as start-position for image and add left-attribute, that is left-attribute is a fixed distance. Place label relative to previous image.
–> Place image absolute, place label relative
2 Use 0 as start-position for image and add left-attribute. Use the new position as start-position for label.
–> Place image absolute, use image-left for label too
3 Use 0 as start-position for image/label and add left-attribute, that is use absolute values for both.
–> Place image abslute, place label absolute
multi 0 (default) next item is placed same line.
1 next items are placed as multiple lines.
path Used for start_app to specify a program to start ontap.
path1 Used for start_app to specify a program to start onhold.
title Used for start_app to specify a title to render for the icon.
selmode specifies how the contained Items are transformed/moved if selected.
-x Item will be moved to lower-right by x-pixel.
0 (default) No selection-effect but drawing background.
x Item will be streched by x-pixels.

image / imagealt
specifies how to render images (bmp/png/gif/jpeg)

The image-tag gives you the chance to modify attributes of the instance of class given in Item-Tag. Most of the times, you will provide a filename for the image (bmp/png/gif/jpeg) to be used.

By means of the imagealt-tag you can specify an alternate image for showing in case the Item is selected. In principle any not-class-specific attributes of image-tag are allowed for the imagealt-tag.

Required Attributes

Name Description
src Filename of the image in bmp/png/gif/jpeg-format. The image must be located in the directory specified in src-attribute by Window-Tag.
bmp/gif supports transparent-color by transparent-attribute and png supports alpha-channels!

Optional Attributes

Name Value Description
vga 0 Bitmap is a qvga-bitmap and will be stretched for vga-themes.
1 Bitmap is a vga-bitmap and will be downscaled for qvga-themes.
transparent bbggrr defines the color in bitmap, which is drawn transparent.
The format is as follows: bbggrr, where r=red, g=gree, b=blue
left A relative value to be added to the right-position of the previous item.
top A relative value to be added to the top-position of the item.
width Resizes the image and sets width of resulting image to given value.
height Resizes the image and sets height of resulting image to given value.
resize Resizes the image, that is 50 means 50 percentage and results in half the size. 200 means 200 percentage and results in double the size.
smallicon Used for start_app and forces to load a smallicon if set to 1.
color A color for filling of classes battery_meter and cpu_utilization. Formated as hexvalues for BBGGRR (where R=Red, G=Green, B=Blue and range is 0..F)

When using this attribute, the given image should be a png/jpeg/gif.
If you are using a bmp, then the color will be used for transparent-color as well.

Sample

1
2
3
4
5
6
7
8
9
10
11
12
13
<Item class="mobile_operator_homezone" >
    <image src="home.bmp"
              vga="0"
              transparent="ffffff"
              left="-2"
              top="5" />
 
    <imagealt src="home_selected.bmp"
              vga="0"
              transparent="ffffff"
              left="-2"
              top="5" />
<Item />

For the class battery_ac_icons you must provide two image-tags, where the first image-tag modifies the ac-icon and the second one modifies the battery-icon.

1
2
3
4
<Item class="battery_ac_icons" >
    <image src="Icon_AC.bmp" />
    <image src="Icon_Battery.bmp" />
<Item />

label
specifies how to render text

The label-tag gives you the chance to modify attributes of the instance of class given in Item-Tag.

Optional Attributes

Name Value Description
align Aligns the text horizontally
left Aligns text to the left.
center Centers text.
right Aligns text to the right.
bold Render text using bold-font.
valign Aligns the text vertically
top Topaligns text.
middle Aligns text to the middle.
bottom Bottomaligns.
format singleline Default, No workbreak, render to single line
wordbreak Breaks words, can use more than one line. This needs the label to vertical align to top, i.e. valign=”top” (required for wordbreak)
left A relative value to be added to the right-position of the previous item or bitmap.
top A relative value to be added to the top-position of the item.
height A height for the text-label.

If the multi-attribute of the surrounding View is 1 (multi=”1″), then the default height of a label is 16. If your label is larger than 16 pixel, then you must adapt this attribute to the desired height in pixel.

If the multi-attribute of the surrounding View is 0 (multi=”0″), then the height of the label is the same as the height of the surrounding View.

width A width for the text-label.
fontsize See fontsize explanation.
fontfamily See fontfamily explanation.
color A color for the text. Formated as hexvalues for BBGGRR (where R=Red, G=Green, B=Blue and range is 0..F)
toggleSmallFont 0 Do NOT use the small-font if it is checked in the options.
1 Use the small-font if it is checked in the options.
toggleBoldFont 0 Don NOT use the bold-font if it is checked in the options.
1 Use the bold-font if it is checked in the options.
prefixed 0 (default) affects underscores
prefixed 1 affects underscores
mask 0xFFFFFFFF (only registry_tracker) provides a mask to apply to the dword-registry-value for registry-tracker
shift 0 (default) (only registry_tracker) no shift of value
- x binary left-shift of value by x bits
x binary right-shift of value by x bits
suppress0 0 (default) (only registry_tracker) dont supporess showing of zero value
1 registry-tracker: supporess showing of value if dword is zero

Sample

1
2
3
4
5
6
7
8
9
10
11
12
<label
  align="left"
  valign="middle"
  format="wordbreak"
  left="0"
  top="0"
  width="60"
  fontsize="-2"
  fontfamily="Tahoma"
  toggleSmallFont="1"
  toggleBoldFont="1"
  />

TrayIcons / Icon
specifies icons for TrayIcons

The TrayIcons-tag gives you the chance to supply a custom icon (.ico) for the inbuild tray-functions. The TrayIcons-tag must have at least one Icon-Tag which has following attributes.

Required Attributes

Name Value Description
name icon.ico Filename of the icon (in .ico-format), which must be located in the directory specified by Window-Tag.
id phone_on Icon for phone turned on.
phone_off Icon for phone turned off.
wifi_on Icon for wifi turned on.
wifi_off Icon for wifi turned off.
bluetooth_on Icon for bluetooth turned on.
bluetooth_off Icon for bluetooth turned off.
devicelock Icon for devicelock.
display_off Icon for turn off display.
context_menu Icon for HomeScreen PlusPlus context menu.

Sample

1
2
3
4
5
6
7
8
9
10
11
<Window
  xmlns="http://www.chi-tai.info/HomeScreen"
  imagesrc="default"
  version="1" >
    .
    .
  <TrayIcons>
    <Icon id="phone_on" name="phone_on.ico" />
    <Icon id="phone_off" name="phone_off.ico" />
  </TrayIcons>
</Window>

+ Recent posts