[Windows Mobile Software Development] programatix:
Hi,

The main reason I wrote this small app is to modify the Xml layout files used in more recent HTC applications. HTC however defined different format of Xml layout files.

Currently, this is what it can do:

Change objects' location (attributes involved "x", "y", "loc")

Change objects' size (attributes involved "w", "h", "width", "height")

Perform object transformation using a multiplicand value

Handle sub objects declared in parent object's attribute when parent object is tranformed ("IconImgPos", TextPos")

Handle "BgImgBlock" attribute by animating the object

Handle "BgImgGrid" attribute by drawing the object correctly

Draw object with "IconImgMask" and "IconImage" attributes correctly

When changing the position of a parent object, the children object (can be seen in the TreeView) will also be moved. It does not however resize the object control when the parent object is resized. This is by design.

I'll be adding more format to this app when I have some free time.

History:

0.0.1

This app currently only support Xml layout files which defined the position attributes as "x", "y", "w", "h". This format is used in Album 3 and Connection Setup.

0.0.2

Added support for layout which contain attributes "img", "icon", "pic". This layout is used in FullScreenPlayer.

You can now drag and drop a xml file onto it to open.

If the "icon" contain different states, it will be animated, each will be displayed for 1 second before rotating to another state.

0.0.3b

Added support for layout which contain attributes "Pos", "bgimg", and some I can't remember.

Fix a bug in 0.0.3 where it handle the "Pos" attribute incorrectly.

Quick fix loading EzInput layout *New*

0.0.4f

Recoded most of the code.

XmlGui now only draws objects which are marked (checked). If the object is selected, a red border will be drawn on the selected object.

Text area will be drawn as blue hatched area.

Object with sub object will be resized correctly based on the object.

Added ability to move all marked objects.

Added ability to resize all marked objects. (see attached thumbnails)

Correctly interpret "BgImgGrid" attribute. (0.0.4a)

When adjusted single object's height and width, children object now do not resize. (0.0.4a)

Animate button "BgImgBlock" attribute. (0.0.4a)

Fix drawing text position in "Edit" object. (0.0.4b)

Fix moving inner object when object is moved (0.0.4b)

Fix drawing object with "BgImgGrid" attribute. (0.0.4c)

Fix issue resizing object without the "x" and "y" attributes. (0.0.4d)

Fix issue with Pos attribute where each point is not seperated by ",". (0.0.4e)

Seperate multiplicand for width and height. (0.0.4f)

Fix divide by zero bug. (0.0.4f)

0.0.4g (2 Nov 2009)

Fixed loading attributes with space in its value crashing XmlGui.

Fixed loading Pos and TextPos attributes with no value crashing XmlGui.

0.0.5 (5 Feb 2010)

Fixed saving problem when the attribute of the file is marked "read-only" and/or "system".

Selection of selected item in TreeView stays after TreeView lost focus.

Added new feature to automatic relocate objects.

In "Single-Object Properties" section, clicking on the green left arrow will apply the suggested value for that field. Clicking the "Apply" button applies all the suggested values.

In "Multi-Object Move" section, clicking the "Auto Relocate" button will apply the above feature to all selected objects.

Bug: If clicking "Auto Relocate" mess things up, try highlighting "root" before clicking it.

0.0.5.1 (6 Feb 2010)

Added 1 level "Undo" feature. This is a rough implementation, so after pressing undo button, the TreeView would lost its selection.

0.0.5.2 (15 June 2010)

Fixed crash caused by negative value.

Note:

XmlGui requires .NET Framework 3.5.

If XmlGui can't open the xml file, edit it with any text editor and remove the first line. Save and reopen in XmlGui.

Please be aware that HTC does not resize all images according to the size stated in the xml file. Take for example the HTCFramework package. The htccalendar_bg_green.png is resized in the calendar, but is not resize when you select a day. The background and the buttons (Set and Cancel) are also not resized. So, the only way around this is also to resize (or crop) the images yourself.

Contribution:

I'm very grateful for the donation given. Thank you very much. It would encourage me to add more new automate features to it too.

Noonski

francarl