Nekr Blog

Registry Editor를 연 다음

HKEY_LOCAL_MACHINE\Software\Microsoft\Today

키 폴더에 가서
[메뉴] -> [NEW] -> [항목 추가]
로 나오는 메뉴에

키 이름은
HidePluginSeparators (키이름 대소문자 주의하세요!)
값은 DWORD 십진수(DEC)로
1
을 넣어 주시고 소프트 리셋.


3.3. Customization
needs 1.04.202 and higher versions


With advanced version you can customize the position, size, font, trayicons and images by means of an xml-file. The xsd-schema (http://www.chi-tai.info/HomeScreen.xsd) can tell you exactly what is allowed and whats not (preconditioned you know a bit about xsd).


Recommended steps for customization :

  • Download an editor, e.g. Komodo Edit (Freeware/Open Source)
  • Download mytheme.xml to your desktop-computer or copy the default.xml deployed with installation.
    \\Program Files\\HomeScreen PlusPlus\\default.xml
  • open mytheme.xml e.g. with Wordpad, better use a validating xml-editor like XMLSpy
  • modify the content
  • upload your mytheme.xml to http://www.w3.org/2001/03/webdata/xsv in order to validate against the schema ( http://www.chi-tai.info/HomeScreen )
  • in case its valid and 100% okay, then copy your mytheme.xml back to your device, e.g.
    \\Program Files\\HomeScreen PlusPlus\\mytheme.xml
  • select your mytheme.xml in “Tools”-Tab (Options)


If mytheme.xml is not well-formed or valid against the schema, then the inbuild default will be used !!!


The xml-parser is some kind of tolerant and uses default values for error cases, but your xml-customization will work 100% perfectly only if it passes the schema-validator successfuly.


You can define:

  • A HomeScreen PlusPlus-Window contains 1..x Rows and can have 0..x images
  • each Row contains 1..x Views and can have 0..x images
  • each View contains 1..x Items and can have 0..x images
  • each Item contains 0..1 image and/or 0..1 label
  • an Item must contain 1 class, which refers to the reading-content
  • an image can have a path to a bmp/png/gif/jpeg, so you can build your own vga-theme
  • there are much more things you can define and the best is to have a look at the examples and into the XML-Schema !!!


How does it work?

The concept behind customization is similar to the object-orientation paradigm:
If you use a class for an Item
-> then the Item is an instance of that class.

The instance (Item) has default-values for all attributes
-> and you can change almost any of these attributes.

 

 

A Short Introduction to the Syntax of Xml
the most important things for customization
  • Xml is case sensitive, that is <Window> and <window> does NOT mean the same!!!
  • An xml-document is build and structured hierarchicaly like a tree using Markups which marks nodes, that is a node can have child-nodes and so on, but there is only one root-node. In our case the root-node is marked as <Window>.
  • Each node must be closed, that is in case the node contains child-nodes:
    <Window> …. </Window>
    In case the node does not contain child-nodes you can use the short form:
    <Window … />
  • Nodes can have attributes whereas its value MUST be enclosed with quotes, e.g. <Window version=”1″>

 

 

A Short Description of Concept
short intro

In the following sketch, you can see an outline of the default.xml (Click on the picture to enlarge).

There is one Row which contains one View. The View consists of 4 Items. As you may guess the order of Rows from top to bottom is the same as in the plugin and the order of Items from top to bottom is directly connected to left-right in the plugin.


An Item needs at least a class
, which specifies the reading and a function.

Actually the Item contains an image and lable with height, width, left and all the attributes, but they all get default-values, so you don’t have to specify them. If you’re building your own theme and e.g. want a smaller width or another font, then you have to specify what you want with the attributes. Lets consider the next sketch.

Here you can see two Rows, which are ordered top to bottom as in the plugin.

Here you can see a Row which contains three Views as with the calltimes-row. You can toggle between the Views and specify the Items you want for any View.

Here you can see where the Item in the first View is placed into the plugin.

In this sketch you can see that some attributes for the Item was adapted. The image correlates to the image of the calltimes-view and the label correclates to the label. Each Item consists of an image and/or a label by default. The image was resized to 100% in the sketch, which actually does nothing because 100% is the normal size of the image. The width of the label is limited to 180px by specifying the width-attribute.

Each Item is of a specific type, e.g. lefticon, lefticonvalue, icon, iconvalue and so on. The type controls how the painting machine works and what it draws. If the type is icon, then only an image and no label will be drawn. If the type is value, then only a labe will be drawn.
In the sketch you can see in the upper section an Item of type lefticonvalue, which is special. A lefticon will draw an image starting at the leftmost-position. In the lower section you can see the class battery_ac_icons which has only an image to draw at the leftmost position. There is also a the class battery_meter, which is of type iconvalue means that is consists of an image and label.


 

Examples
some examples how to use the classes
Download: Simple text/label - 1,933 Hits
Version: 0.1
Updated: May 12, 2008
Size: 606 bytes
Download: Application Launcher - 2,110 Hits
Version: 0.1
Updated: May 12, 2008
Size: 1.35 KB
Download: Sliding Application Launcher - 2,590 Hits
Version: 0.1
Updated: May 12, 2008
Size: 733 bytes
Download: Integrate Background Images - 1,483 Hits
Version: 0.1
Updated: May 12, 2008
Size: 14.11 KB
Download: Simple Digit Clock - 2,034 Hits
Version: 0.1
Updated: May 12, 2008
Size: 32.43 KB
Download: Digit Clock with Seconds - 1,738 Hits
Version: 0.1
Updated: May 12, 2008
Size: 32.8 KB
Download: Digit Clock with extra Images for Seconds - 1,873 Hits
Version: 0.1
Updated: May 12, 2008
Size: 60.71 KB
Download: Using alternate images - 1,300 Hits
Version: 0.1
Updated: May 12, 2008
Size: 15.18 KB
Download: Registry Tracker - 1,280 Hits
Version: 0.1
Updated: May 12, 2008
Size: 794 bytes
Download: Selection Mode (selmode) - 1,163 Hits
Version: 0.1
Updated: May 12, 2008
Size: 994 bytes
Download: Switching Views - 1,461 Hits
Version: 0.1
Updated: May 12, 2008
Size: 15.19 KB
Download: Switching two Views with TinyBatch - 1,330 Hits
Version: 0.1
Updated: May 21, 2008
Size: 21.15 KB

 

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

<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

<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

<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

<Item class="mobile_operator_homezone" >
    <image src="home.bmp" />
    <label valign="top" format="wordbreak" />
</Item>
<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=""Messaging""
                 gesture="1" unload="1">
          <label height="32" width="120" />
        </Item>
      </View>
    </Row>
    

 

Sample clock_digit

<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

<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

<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

<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.
  ToggleFlight Toggles Flight mode, 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.

<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

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

<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

<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

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

'기타' 카테고리의 다른 글

다양한 아이콘을 다운로드 받을수 있는 사이트  (0) 2009.10.30
영문 이름 표기법  (0) 2009.09.28