[WM6.X] [Programs] JMLMenuSense - Sense UI Look 'n Feel XML-Menu v1.65 (20-Mar-2011)

Search This thread

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux

New JMLMenu program : Create your own Sense UI Look 'n Feel menu via an XML file.
Used in JMLPanex v3.00 and JMLToday v6.00

Based on the excellent -> [win32] SDK - New Sense interface Look 'n Feel <- from @petititi

JMLMenuSense.png


Version 1.75
@petititi Sense SDK V1.6.4 used
[add] <edit> : 'title' attribute (left label)
[new] parameters allowed in .xmu call -> you can use parameters as variables in menu
[new] multiple values/formatted-text for label
[add] <submenu> : 'condition' attribute to show/hide submenu
[add] items : 'condition' attribute to show/hide items
[new] <condition> : add condition to show/hide a group of items
[add] <selector> : 'showvalues' attribute to display different texts in the choices dropdown instead of real values.
[mod] <text> : improved color management
[add] <text> : fontname and fontsize attributes (also for comment)
[add] <picture> : horizontal scroll if width > 100%
[new] ini file management support (@michoob)
[new] <inilist> : show a list of values stored in a .ini key
[add] <explorer> : pick folder functionality
Installation instructions :
1- Uninstall previous version of JMLMenuSense if necessary
2- Install JMLMenuSense cab file

-> For examples, see Examples.xmu or v1.75.xmu files in ...\JMLMenuSense\Examples folder. (others examples in JMLPanex V3.00 and future JMLToday V6.00)
-> Clic on .xmu file to execute it.
JMLMenuSenseSamples.png

-> Read post#2 and post#3

Version 1.65
[fix] minor bug with JMLToday
[mod] convert '<<' '>>' '&' to '<<' '>>' '&' before parsing xml
[mod] convert '&' '<' '>' to '&' '<' '>' after parsing xml
[add] <menu> : 'background' attribute (picture), 'backcolor' attribute and 'rgb' attribute (default menu text color)
[add] <menu> : 'interline' attribute
Version 1.60
[new] <registryfolderlist> : list registry subkeys (@Freezy1982)
[new] <registryvaluelist> : list all values in a registry subkey (@Freezy1982)
[add] regstring: regdword: regdelete: regfolder: regdeletefolder: actions
[fix] selector bug
[fix] registry bug
[add] Exemples.xmu from @mkucuksari
[add] save some registry key with only one 'run' (@poyensa)
Version 1.50
Sense SDK V1.6.4
[new] <picture> : picture item
[new] <datafile> : list of data (one item per line of text file)
[new] <explorer> : 'choose a file' item
[new] <selector> : selector item
[new] <space> : add spaces beetween 2 items
[new] <icons> : item with up to 3 icons
[add] <submenu> : icon attribute
[add] <text> : comment attribute (and 'commentstyle', 'commentrgb', 'commentalign' attributes)
Version 1.30
Sense SDK V1.6
[add] id attribute to combine 2 controls (ex. <checkbox> + <button> which run a program with checkbox-value as parameter)
[add] <text> : icon attribute
[new] HKLM\Software\Microsoft\Shell\Rai\:JMLMENUSENSE
[new] .xmu file association with :JMLMENUSENSE
[remove] all .mscr scripts
[add] <separator> : interline attribute
[add] <submenu> : interline attribute
[new] AppToDate compatible
Version 1.20
Sense SDK V1.5.1
[add] <checkbox> : run attribute
[add] <text> : align attribute
[add] <text> : style attribute
[new] <switch> : 2 states switch
[new] <edit> : show a edit control
[new] <registrykeylist> : show a list of values stored in a registry key
Version 1.00
- <menu> : main menu
- <submenu> : describe a submenu
- <text> : show a text
- <button> : show a button
- <separator> : label separator
- <checkbox> : 2 states checkbox
- <files> : files list


This program is provided without Warranty or Guarantee. Just because it worked on my phone doesn’t mean it will on yours. Like anything before using, backup all relevant data before proceeding. I take no responsibility for loss or damage to your phone.

Have Fun!

NO MIRRORS, thanks.
 

Attachments

  • JMLMenuSenseV1.50.cab
    987.8 KB · Views: 697
  • JMLMenuSenseV1.60.cab
    1,010.8 KB · Views: 1,341
  • JMLMenuSenseV1.65.cab
    1,012.1 KB · Views: 4,444
  • JMLMenuSenseV1.75.cab
    1,023.3 KB · Views: 2,715
Last edited:

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux
XML menu file description

- menu and submenu structure :
Code:
<menu title='Configuration'>
  <submenu name='SMS' label='SMS'>
    ...
  </submenu>
  <submenu name='Clock' label='Clock'>
    ...
  </submenu>
 ...
</menu>
---------------------------------------------------------------------------------------------------------
<menu> menu
It's the main menu

attributes
title : menu title
background : background picture
backcolor : background color
rgb : default menu text color
quitlabel : label of left softkey
forcequit : still in memory for fast ('no' per default), clean close ('yes')

Code:
<menu title='My title'>
...OR...
<menu quitlabel='Back' title="Tasks" backcolor='0,128,0' rgb='192,192,192' >
... OR...
<menu quitlabel='Back' title="Tasks" background='%APPDIR%\Examples\Bg.png' >
---------------------------------------------------------------------------------------------------------
<submenu> menu
To describe a submenu

attributes
name : unique identifier of submenu
label : submenu title
comment : submenu subtitle
interline : show ('yes' per default) or hide ('no') items interline
icon : path of .png/.jpg picture
Code:
  <submenu name='SMS' label='SMS'>
... 
</submenu>
---------------------------------------------------------------------------------------------------------
<text> item
Show a text

attributes
label : text content
rgb : color of text (r,g,b)
align : text alignment ('center' by default, 'left')
style : 'italic' for italic font, 'small' for smaller font
left : left coordinates (15 pixels per default)
comment : comment show in 2nd line
commentrgb : color of comment (r,g,b)
commentalign : comment alignment ('center' by default, 'left')
commentstyle : 'italic' for italic font, 'small' for smaller font
run : action to execute when clic on text
icon : path of .png/.jpg picture
fontname : font of text (Tahoma per default)
fontsize : size of text (9 per default)
commentfontname : font of comment (fontname per default)
commentfontsize : size of comment (fontsize per default)

Code:
 <text rgb='128,0,0' label='text example' left='100'/>
[color=red]	<text quit='no' commentfontsize='10' commentrgb='0,0,128' commentfontname='courier new' comment='comment-courier new 10pt' fontsize='16' label='Text-tahoma 16pt' rgb='128,0,0' />
[/color]
---------------------------------------------------------------------------------------------------------
<button> item
Show a button

attributes
label : button label
run : action to execute when clic on text
Code:
 <button label='button example' run='program.exe'/>
---------------------------------------------------------------------------------------------------------
<separator> item
Déclare a items separator

attributes
label : text of separator
interline : show ('yes' per default) or hide ('no') items interline
Code:
   <submenu name='Weather' label='Weather'>
 ...
    <separator label='MSN' />
 ...
    <separator label='AccuWeather' />
 ..
<separator label='Google' />
  </submenu>
---------------------------------------------------------------------------------------------------------
<files> item
Create a list of files

attributes
filter : files mask to scan (you can use '*' in the filter))
show : display substring of file name '[start,len]' -> full file name per default
run : action to execute when clic on one item
%FILE% macro in run attribute : use the full file name
%SHOW% macro in run attribute : use the substring file name defined with show attribute
Code:
 <menu title='Skins'>
  [b]<files[/b] filter='%JMLTODAY%\skins\*.*' run='%JMLTODAY%\JMLTools.exe;-skinfile:%FILE%'  />
</menu>
Code:
<menu title='Language'>
  [b]<files[/b] filter='%JMLTODAY%\lang\JMLLang_*.ini' show='[8,2]' run='%JMLTODAY%\JMLWinToday.exe;-lang:%SHOW%'  />
 </menu>
---------------------------------------------------------------------------------------------------------
<checkbox> item
Create a 2 states checkbox

attributes
label : text of item
registry : registry key to test according with value0 and value1 attributes
format : registry key format ('STRING' per default, 'DWORD' for integer)
value0 : value which defines unchecked box
value1: value which defines checked box
run : action to execute when clic on text
Code:
    [b]<checkbox[/b] label='Show 0-24 hours' registry='HKLM\\Software\\Microsoft\\CHome\\JMLToday\\Param\\time' value1='HH:mm' value0='hh:mm'   />
    [b]<checkbox[/b] label='Show AM/PM' registry='HKLM\\Software\\Microsoft\\CHome\\JMLToday\\Param\\hour' value1='12' value0='24'  />
---------------------------------------------------------------------------------------------------------
<switch> item
Create a 2 states switch -> same as <checbox>

---------------------------------------------------------------------------------------------------------
<edit> item
show an edit control

attributes
label : initial content
title : left label
width : width of edit field (50% per default if title present)

id : unique identifier (you can use this in a run attribute of <button> control for example)
Code:
[b]<edit[/b] id='[color=blue]%MYOFFSET%[/color]' label='reg:HKLM\\Software\\Microsoft\\CHome\\JMLPanex\\offset' />
	<button label='Save' run='%JMLPANEX%\JMLPanex.exe;-offset:[color=blue]%MYOFFSET%[/color]' />
---------------------------------------------------------------------------------------------------------
<registrykeylist> item
list items contained in a registry key (ex. 'Page1;Page2;Page3' contains 3 items)

attributes
registry : registry key that contains items
separator : items separator character (';' per default)
run : action to execute when clic on one item
%VALUE% macro in run attribute : use the item value
Code:
<text center='yes' style='italic' rgb='0,128,0' label='choose a plugin to clear his cache' />
    [b]<registrykeylist[/b] registry='HKLM\\Software\\Microsoft\\CHome\\Plugins' run='%JMLPANEX%\JMLPanex.exe;-clearcache:%VALUE%' />
---------------------------------------------------------------------------------------------------------
<explorer> item
Create a file explorer button item

attributes
startdir : start folder to scan
filter : files mask to scan (you can use '*' in the filter, , to pick a folder, use '.')
updateid : id of item to update with selected file
Code:
<edit id='%EDIT%' />
 <explorer label='choose a file'  startdir='%APPDIR%' updateid='%EDIT%' />
---------------------------------------------------------------------------------------------------------
<picture> item
Create a picture item

attributes
icon : picture to show
Code:
   <picture icon='%APPDIR%\map.jpg' left='0' top='0' width='100%' />
---------------------------------------------------------------------------------------------------------
<icons> item
Create a item with up to 3 icons

attributes
iconleft : picture to show
runleft : action to execute
iconcenter : picture to show
runcenter : action to execute
iconright : picture to show
runright : action to execute
Code:
     <icons left='30' iconleft='%APPDIR%\contact.png' runleft='%APPDIR%\IconLeft.xmu' iconcenter='%APPDIR%\contact.png' runcenter='%APPDIR%\IconCenter.xmu' iconright='%APPDIR%\contact.png' runright='%APPDIR%\IconRight.xmu'/>
---------------------------------------------------------------------------------------------------------
<space> item
Add spaces beetween 2 items

attributes
height : height of space
Code:
	<space height='5%' />
---------------------------------------------------------------------------------------------------------
<selector> item
Add a selector item

attributes
updateid : id of item to update with selected file
values : list of values using a separator character
select : value to select per default
separator : character separator in values (';' per default)
showvalues : display different texts in the choices dropdown instead of real values
run : action to execute

Code:
  <edit id='%EDIT%' />
  <selector label='choose a value' updateid='%EDIT%' values='choix1;choix2;choix3' select='choix3'/>
  [color=red]<selector run='ini:%SCRIPTPATH%\MyIni.ini[MySection]MySelector:%VALUE%' label='choose a value' updateid='%COMBO2%' values='0;1;2' showvalues='value0;value1;value2' /> [/color]
---------------------------------------------------------------------------------------------------------
<datafile> item
List of contains of text file

attributes
file : text file name
separator : character separator in value
show : display substring of text '[start,len]' or part of text if separator exist (use %0...%n to select substring)
run : action to execute when clic on one item
%VALUE% macro in run attribute : use the full text line
%SHOW% macro in run attribute : use a substring
defined with show attribute
%0...%n macro in run attribute : use part of text line if separator exist
Code:
       <datafile file='%APPDIR%\CitiesMSN.txt' separator=',' show='%1' run='%JMLTODAY%\JMLMeteo.exe;-setcity:%0 -msn -map:%2' />
---------------------------------------------------------------------------------------------------------
<inilist> item
list items contained in a key in section of ini-file

example of ini-file : MyIni.ini
Code:
[MySection]
MyList=val1;val2;val3
MyChoose=...

attributes
ini: key that contains items
separator : items separator character (';' per default)
run : action to execute when clic on one item
%VALUE% macro in run attribute : use the item value
Code:
        <inilist updateid='%KEYLIST%' ini='%SCRIPTPATH%\MyIni.ini[MySection]MyList' run='ini:%SCRIPTPATH%\MyIni.ini[MySection]MyChoose:%VALUE%' quit='no' />
        <text comment='selected value' id='%KEYLIST%' align='left' left='30' label='ini:%SCRIPTPATH%\MyIni.ini[MySection]MyChoose' />
 
Last edited:

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux
Informations - FAQ

----------------------------------------------------------------------------------------
Constantes File-Path
You can use these constantes in your file-path name :

%PROGRAMFILES% -> \Program Files.
%WINDOWS% -> \Windows
%MYVIDEO% -> \My Documents\My Video
%MYPICTURES% -> \My Documents\My Pictures
%MYMUSIC% -> \My Documents\My Music
%STARTMENU% -> \Windows\Start Menu
%PROGRAMS% -> \Windows\Start Menu\Programs
%STORAGECARD% -> \Storage Card

%APPDIR% -> Running program directory (for .exe)
%SCRIPTPATH% -> Running file directory, for file with associated program (.xmu file by example)

If you have JMLToday/JMLPanex installed :

%JMLTODAY% -> \Program Files\JMLToday
%JMLPANEX% -> \Program Files\JMLPanex
%SKIN% -> \Program Files\JMLToday\skins\skin_name
%LANG% -> \Program Files\JMLToday\lang
----------------------------------------------------------------------------------------
%Variables%

- You can identify an item with his 'id' attribute and use it in another item
Code:
<checkbox id='%VIBRATE%' quit='no' label='Vibrate' format='DWORD' registry='HKLM\Software\Microsoft\CHome\JMLPanex\vibrate' value0='0' value1='10' />
<button label='Save'  run='Program.exe %VIBRATE%'/>
-> launch program with '0' or '10' parameter value

- Predefined variables :
%VALUE% : value of item
%FILE%, %SHOW% : for <files> tag
----------------------------------------------------------------------------------------
Quit program

- When you clic on item that have a 'run' attribute the program is closed
- When you clic on checkbox item the program is closed
-> Unless you put [quit='no'] on each item that you do not want the program closes

- you can change the text of left-softkey ('Quit' per default) : add quitlabel='...' in <menu...> tag
----------------------------------------------------------------------------------------
Debug mode
Add debug='yes' in <menu...> tag

-> The 'run' action is not executed, just display a message
-> Checkbox is run with a diplayed message

2 files are created : debug.txt (list of items) ant run.txt (command line to execute when 'run' attribute exist).
----------------------------------------------------------------------------------------
Command in labels
You can prefix some labels with a command :
reg: -> the label is the content of registry key ( same as regstring: )
regstring: -> the label is the content of registry key (format : STRING)
regdword: -> the label is the content of registry key (format : DWORD)
ini: -> the label is the content of key in section of ini-file

lang: -> the label is tranlated (if JMLToday intalled : use JMLLang... files !) MUST BE BEFORE reg: or ini:

-> possibilities :
lang:reg:
lang:ini:
reg:
ini:
regstring:
regdword:


list of attributes using this feature :
label, comment, title, quitlabel, select, values, icon, iconleft, iconcenter, iconright,...
----------------------------------------------------------------------------------------
Multiple values/formatted-text for label
You can create complex/multiple/values/formatted-text for label with using '||' as separator
example in .xmu :
Code:
<text icon='%SKIN%\||reg:HKCU\software\JML\Meteo\origin||\||reg:HKCU\software\JML\Meteo\Day1\icon' ... />

with for JMLTODAY :
%SKIN% = you skin path
reg:HKCU\software\JML\Meteo\origin = accu for example
reg:HKCU\software\JML\Meteo\Day1\icon -> picture of Day1 (32.png as example)
....

-> text computed : %SKIN%\accu\32.png

----------------------------------------------------------------------------------------
Parameters in JMLMenuSense command-line
Parameters are allowed in .xmu call -> you can use these parameters as variables in menu

Example for showing weather of first day :
If you create a .lnk with :...\JMLMenuSense\JMLMenuSense.exe;-xmu:%JMLTODAY%\JMLMeteoX.xmu -day:1
-> you can use %-day% variables in your .xmu file
Code:
<text icon='%SKIN%\sys\Wind.png' label="reg:HKCU\software\JML\Meteo\Day[color=red]%-day%[/color]\windspeed|| ||reg:HKCU\software\JML\Meteo\unit_speed" align='left' />
with for JMLTODAY :
reg:HKCU\software\JML\Meteo\Day1\winspeed -> 50 as example
reg:HKCU\software\JML\Meteo\unit_speed -> km/h as example

-> text computed : 50 km/h

[/color]
----------------------------------------------------------------------------------------
Conditions
You can add condition to show/hide a group of items : <condition> tag
You can add condition to show/hide a submenu : 'condition' attribute in <submenu> tag
You can add condition to show/hide a item : 'condition' attribute in item tag

List of test-conditions :
regempty:
iniempty:
regequal:
iniequal:
regfind:
inifind:
fileexist:
paramexist:

for inverse condition, add not: before.

Example :
Code:
<condition condition='not:regempty:HKCU\software\JML\Meteo\Night1\icon'/>
<separator interline='no' label="lang:NIGHT" />
<text scale='yes' icon=.../>
<text icon='%SKIN%\sys\Wind.png' label="reg:HKCU\software\JML\Meteo\Night1\windspeed|| ||reg:HKCU\software\JML\Meteo\unit_speed" align='left' />
<condition />
 
Last edited:
  • Like
Reactions: poyensa

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux
@petititi, @all : YES, you can create menu via an XML file. It's a first release, i can add some others features.....
 

santod040

Recognized Developer / Recognized Contributor
Nov 7, 2008
12,569
23,612
NorCal
Thanks JMHL, this should prove quite useful!!
Very nice work as always. ;)
 

Freezy1982

Senior Member
Nov 3, 2007
98
10
First: Congratulations for your new release! Very nice one!
Second: Nice to hear about updating your JMLPanex & JMLToday! Can't wait for it :)

I think I will wait for JMLToday6.00 to implement this new Menu to my new skin ;)

Big thanks to you and petititi for your work!!!

GreeZ!
Freezy1982
 

egoist6

Senior Member
Sep 4, 2007
703
4
Munich
great tool.
i have started with a simple one but got already stuck. what's wrong with:


Code:
<menu title='myMenu'>
  <separator label='Tools' />
  <text rgb='128,0,0' label='Task Manager' left='20' run='t.mscr' />
  <text rgb='128,0,0' label='Dial' left='20' run='\Program Files\iPhone\_dial.mscr'/>
  <text rgb='128,0,0' label='Rotate' run='\Program Files\Rotation.exe'/>
</menu>

labels are centered regardless of the "left" command and if i hit one menu item it does not run the app. the menu item stays hughlighted and nothing happens.

thanks
 

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux
@egoist6 :

first : text is centered by default (see post#2, align attribute), center start from left attribute to right screen. -> use : align='left'
second : for running app -> oups -> small bug

Give me (via PM) your email. I'll send v1.25 version to test before release it.

thanks.
 
Last edited:

egoist6

Senior Member
Sep 4, 2007
703
4
Munich
very great tool.

some feedback:
  • new attribute "size" to change the font size would be great
  • could you add rgb, align, left right attributes to the registrykeylist item?
  • could you speed up your tool? currently it takes 2,5sec to launch a simple menu
  • change the size of the menu (define coordinates and size so that it can be used as a context-sensitive popup menu)
  • maybe to include "image" as a new attribute to items such as text or edit in order to have an icon included in menu items
Code:
<menu title='myMenu'>
  <separator label='Tools' />
  <text rgb='200,200,200' label='Task Manager' align="left" left='30' run='\Program Files\taskmgr.exe' />
  <text rgb='200,200,200' label='Tap&&Dial' align="left" left='30' run='\Program Files\iPhone\_dial.mscr'/>
  <text rgb='200,200,200' label='Rotate' align="left" left='30' run='\Program Files\Rotation.exe'/>
  <separator label='Phone' />

  <text rgb='200,200,200' label='Call Back?' align="left" left='30' run='\Program Files\iPhone\makecall.exe;' />
  <registrykeylist registry='HKLM\\System\\State\\Phone\\Last Incoming Caller Number' run='\Program Files\iPhone\makecall.exe;%VALUE%' />
  <registrykeylist registry='HKLM\\System\\State\\Phone\\Last Incoming Caller Name' run='\Program Files\iPhone\makecall.exe;%VALUE%' />
  <text rgb='200,200,200' label='Call History' align="left" left='30' run='\Program Files\LaunchMSItem.exe;CALLHISTORY_MISSED' />
  <text rgb='200,200,200' label='Call Mailbox' align="left" left='30' run='\Program Files\iPhone\_callvmail.mscr' />
</menu>
 
Last edited:

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux
@egoist6 :

- size font and menu : not possible for this version of sdk sense
- rgb, align for all tag : OK.
- speed : works well on my HD2. I regard....
- icon : later, i must finish next JMLPanex/JMLToday before....

I send you a new version.

Tips : use <text> tag with new registrylabel attribute instead of <registeykeylist> tag -> see egoist6.xmu in the new version. (see your email)

A++
 
Last edited:
  • Like
Reactions: egoist6

egoist6

Senior Member
Sep 4, 2007
703
4
Munich
@egoist6 :

Tips : use <text> tag with new registrylabel attribute instead of <registeykeylist> tag -> see egoist6.xmu in the new version. (see your email)

maybe i cannot see the forest for the trees, but is this attribute missing in your documentation (post #1)? or is this a new feature in v1.26?
will try new version and post results.
 

egoist6

Senior Member
Sep 4, 2007
703
4
Munich
works like a charm.

even launch time for my menu increased by replacing registrykeylist by registrylabel attribute.

question: is it possible to combine two menu items? what i mean is the following:
menuitem #1 is a tick box and menuitem #2 is a button.
if i press the button, i need script1 to be launched if tickbox is unticked and scripts to be launched if tickbox is ticked.
 

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
60
Bordeaux
@egoist6 :

1 - execute a program depending of content of other item : in progress ....
example :
Code:
   <checkbox id='%VIBRATE%' quit='no' label='Vibrate' format='DWORD' registry='HKLM\Software\Microsoft\CHome\JMLPanex\vibrate' value0='0' value1='10' />
   <button label='Save'  run='Program.exe %VIBRATE%'/>
-> add item-identifier 'id'
-> execute Program.exe with value0/value1 of checkbox as parameter. It's OK ?


2- Add icon : perhaps, if it's not difficult....

3- Try to increase speed more ....

A++
 

Top Liked Posts

  • There are no posts matching your filters.
  • 20

    New JMLMenu program : Create your own Sense UI Look 'n Feel menu via an XML file.
    Used in JMLPanex v3.00 and JMLToday v6.00

    Based on the excellent -> [win32] SDK - New Sense interface Look 'n Feel <- from @petititi

    JMLMenuSense.png


    Version 1.75
    @petititi Sense SDK V1.6.4 used
    [add] <edit> : 'title' attribute (left label)
    [new] parameters allowed in .xmu call -> you can use parameters as variables in menu
    [new] multiple values/formatted-text for label
    [add] <submenu> : 'condition' attribute to show/hide submenu
    [add] items : 'condition' attribute to show/hide items
    [new] <condition> : add condition to show/hide a group of items
    [add] <selector> : 'showvalues' attribute to display different texts in the choices dropdown instead of real values.
    [mod] <text> : improved color management
    [add] <text> : fontname and fontsize attributes (also for comment)
    [add] <picture> : horizontal scroll if width > 100%
    [new] ini file management support (@michoob)
    [new] <inilist> : show a list of values stored in a .ini key
    [add] <explorer> : pick folder functionality
    Installation instructions :
    1- Uninstall previous version of JMLMenuSense if necessary
    2- Install JMLMenuSense cab file

    -> For examples, see Examples.xmu or v1.75.xmu files in ...\JMLMenuSense\Examples folder. (others examples in JMLPanex V3.00 and future JMLToday V6.00)
    -> Clic on .xmu file to execute it.
    JMLMenuSenseSamples.png

    -> Read post#2 and post#3

    Version 1.65
    [fix] minor bug with JMLToday
    [mod] convert '<<' '>>' '&' to '<<' '>>' '&' before parsing xml
    [mod] convert '&' '<' '>' to '&' '<' '>' after parsing xml
    [add] <menu> : 'background' attribute (picture), 'backcolor' attribute and 'rgb' attribute (default menu text color)
    [add] <menu> : 'interline' attribute
    Version 1.60
    [new] <registryfolderlist> : list registry subkeys (@Freezy1982)
    [new] <registryvaluelist> : list all values in a registry subkey (@Freezy1982)
    [add] regstring: regdword: regdelete: regfolder: regdeletefolder: actions
    [fix] selector bug
    [fix] registry bug
    [add] Exemples.xmu from @mkucuksari
    [add] save some registry key with only one 'run' (@poyensa)
    Version 1.50
    Sense SDK V1.6.4
    [new] <picture> : picture item
    [new] <datafile> : list of data (one item per line of text file)
    [new] <explorer> : 'choose a file' item
    [new] <selector> : selector item
    [new] <space> : add spaces beetween 2 items
    [new] <icons> : item with up to 3 icons
    [add] <submenu> : icon attribute
    [add] <text> : comment attribute (and 'commentstyle', 'commentrgb', 'commentalign' attributes)
    Version 1.30
    Sense SDK V1.6
    [add] id attribute to combine 2 controls (ex. <checkbox> + <button> which run a program with checkbox-value as parameter)
    [add] <text> : icon attribute
    [new] HKLM\Software\Microsoft\Shell\Rai\:JMLMENUSENSE
    [new] .xmu file association with :JMLMENUSENSE
    [remove] all .mscr scripts
    [add] <separator> : interline attribute
    [add] <submenu> : interline attribute
    [new] AppToDate compatible
    Version 1.20
    Sense SDK V1.5.1
    [add] <checkbox> : run attribute
    [add] <text> : align attribute
    [add] <text> : style attribute
    [new] <switch> : 2 states switch
    [new] <edit> : show a edit control
    [new] <registrykeylist> : show a list of values stored in a registry key
    Version 1.00
    - <menu> : main menu
    - <submenu> : describe a submenu
    - <text> : show a text
    - <button> : show a button
    - <separator> : label separator
    - <checkbox> : 2 states checkbox
    - <files> : files list


    This program is provided without Warranty or Guarantee. Just because it worked on my phone doesn’t mean it will on yours. Like anything before using, backup all relevant data before proceeding. I take no responsibility for loss or damage to your phone.

    Have Fun!

    NO MIRRORS, thanks.
    4
    @all :

    [new] ini file management support (@michoob)
    [new] <inilist> : show a list of values stored in a .ini key


    To do before release : .xmu example + beta test + documentation

    A++
    3
    XML menu file description

    - menu and submenu structure :
    Code:
    <menu title='Configuration'>
      <submenu name='SMS' label='SMS'>
        ...
      </submenu>
      <submenu name='Clock' label='Clock'>
        ...
      </submenu>
     ...
    </menu>
    ---------------------------------------------------------------------------------------------------------
    <menu> menu
    It's the main menu

    attributes
    title : menu title
    background : background picture
    backcolor : background color
    rgb : default menu text color
    quitlabel : label of left softkey
    forcequit : still in memory for fast ('no' per default), clean close ('yes')

    Code:
    <menu title='My title'>
    ...OR...
    <menu quitlabel='Back' title="Tasks" backcolor='0,128,0' rgb='192,192,192' >
    ... OR...
    <menu quitlabel='Back' title="Tasks" background='%APPDIR%\Examples\Bg.png' >
    ---------------------------------------------------------------------------------------------------------
    <submenu> menu
    To describe a submenu

    attributes
    name : unique identifier of submenu
    label : submenu title
    comment : submenu subtitle
    interline : show ('yes' per default) or hide ('no') items interline
    icon : path of .png/.jpg picture
    Code:
      <submenu name='SMS' label='SMS'>
    ... 
    </submenu>
    ---------------------------------------------------------------------------------------------------------
    <text> item
    Show a text

    attributes
    label : text content
    rgb : color of text (r,g,b)
    align : text alignment ('center' by default, 'left')
    style : 'italic' for italic font, 'small' for smaller font
    left : left coordinates (15 pixels per default)
    comment : comment show in 2nd line
    commentrgb : color of comment (r,g,b)
    commentalign : comment alignment ('center' by default, 'left')
    commentstyle : 'italic' for italic font, 'small' for smaller font
    run : action to execute when clic on text
    icon : path of .png/.jpg picture
    fontname : font of text (Tahoma per default)
    fontsize : size of text (9 per default)
    commentfontname : font of comment (fontname per default)
    commentfontsize : size of comment (fontsize per default)

    Code:
     <text rgb='128,0,0' label='text example' left='100'/>
    [color=red]	<text quit='no' commentfontsize='10' commentrgb='0,0,128' commentfontname='courier new' comment='comment-courier new 10pt' fontsize='16' label='Text-tahoma 16pt' rgb='128,0,0' />
    [/color]
    ---------------------------------------------------------------------------------------------------------
    <button> item
    Show a button

    attributes
    label : button label
    run : action to execute when clic on text
    Code:
     <button label='button example' run='program.exe'/>
    ---------------------------------------------------------------------------------------------------------
    <separator> item
    Déclare a items separator

    attributes
    label : text of separator
    interline : show ('yes' per default) or hide ('no') items interline
    Code:
       <submenu name='Weather' label='Weather'>
     ...
        <separator label='MSN' />
     ...
        <separator label='AccuWeather' />
     ..
    <separator label='Google' />
      </submenu>
    ---------------------------------------------------------------------------------------------------------
    <files> item
    Create a list of files

    attributes
    filter : files mask to scan (you can use '*' in the filter))
    show : display substring of file name '[start,len]' -> full file name per default
    run : action to execute when clic on one item
    %FILE% macro in run attribute : use the full file name
    %SHOW% macro in run attribute : use the substring file name defined with show attribute
    Code:
     <menu title='Skins'>
      [b]<files[/b] filter='%JMLTODAY%\skins\*.*' run='%JMLTODAY%\JMLTools.exe;-skinfile:%FILE%'  />
    </menu>
    Code:
    <menu title='Language'>
      [b]<files[/b] filter='%JMLTODAY%\lang\JMLLang_*.ini' show='[8,2]' run='%JMLTODAY%\JMLWinToday.exe;-lang:%SHOW%'  />
     </menu>
    ---------------------------------------------------------------------------------------------------------
    <checkbox> item
    Create a 2 states checkbox

    attributes
    label : text of item
    registry : registry key to test according with value0 and value1 attributes
    format : registry key format ('STRING' per default, 'DWORD' for integer)
    value0 : value which defines unchecked box
    value1: value which defines checked box
    run : action to execute when clic on text
    Code:
        [b]<checkbox[/b] label='Show 0-24 hours' registry='HKLM\\Software\\Microsoft\\CHome\\JMLToday\\Param\\time' value1='HH:mm' value0='hh:mm'   />
        [b]<checkbox[/b] label='Show AM/PM' registry='HKLM\\Software\\Microsoft\\CHome\\JMLToday\\Param\\hour' value1='12' value0='24'  />
    ---------------------------------------------------------------------------------------------------------
    <switch> item
    Create a 2 states switch -> same as <checbox>

    ---------------------------------------------------------------------------------------------------------
    <edit> item
    show an edit control

    attributes
    label : initial content
    title : left label
    width : width of edit field (50% per default if title present)

    id : unique identifier (you can use this in a run attribute of <button> control for example)
    Code:
    [b]<edit[/b] id='[color=blue]%MYOFFSET%[/color]' label='reg:HKLM\\Software\\Microsoft\\CHome\\JMLPanex\\offset' />
    	<button label='Save' run='%JMLPANEX%\JMLPanex.exe;-offset:[color=blue]%MYOFFSET%[/color]' />
    ---------------------------------------------------------------------------------------------------------
    <registrykeylist> item
    list items contained in a registry key (ex. 'Page1;Page2;Page3' contains 3 items)

    attributes
    registry : registry key that contains items
    separator : items separator character (';' per default)
    run : action to execute when clic on one item
    %VALUE% macro in run attribute : use the item value
    Code:
    <text center='yes' style='italic' rgb='0,128,0' label='choose a plugin to clear his cache' />
        [b]<registrykeylist[/b] registry='HKLM\\Software\\Microsoft\\CHome\\Plugins' run='%JMLPANEX%\JMLPanex.exe;-clearcache:%VALUE%' />
    ---------------------------------------------------------------------------------------------------------
    <explorer> item
    Create a file explorer button item

    attributes
    startdir : start folder to scan
    filter : files mask to scan (you can use '*' in the filter, , to pick a folder, use '.')
    updateid : id of item to update with selected file
    Code:
    <edit id='%EDIT%' />
     <explorer label='choose a file'  startdir='%APPDIR%' updateid='%EDIT%' />
    ---------------------------------------------------------------------------------------------------------
    <picture> item
    Create a picture item

    attributes
    icon : picture to show
    Code:
       <picture icon='%APPDIR%\map.jpg' left='0' top='0' width='100%' />
    ---------------------------------------------------------------------------------------------------------
    <icons> item
    Create a item with up to 3 icons

    attributes
    iconleft : picture to show
    runleft : action to execute
    iconcenter : picture to show
    runcenter : action to execute
    iconright : picture to show
    runright : action to execute
    Code:
         <icons left='30' iconleft='%APPDIR%\contact.png' runleft='%APPDIR%\IconLeft.xmu' iconcenter='%APPDIR%\contact.png' runcenter='%APPDIR%\IconCenter.xmu' iconright='%APPDIR%\contact.png' runright='%APPDIR%\IconRight.xmu'/>
    ---------------------------------------------------------------------------------------------------------
    <space> item
    Add spaces beetween 2 items

    attributes
    height : height of space
    Code:
    	<space height='5%' />
    ---------------------------------------------------------------------------------------------------------
    <selector> item
    Add a selector item

    attributes
    updateid : id of item to update with selected file
    values : list of values using a separator character
    select : value to select per default
    separator : character separator in values (';' per default)
    showvalues : display different texts in the choices dropdown instead of real values
    run : action to execute

    Code:
      <edit id='%EDIT%' />
      <selector label='choose a value' updateid='%EDIT%' values='choix1;choix2;choix3' select='choix3'/>
      [color=red]<selector run='ini:%SCRIPTPATH%\MyIni.ini[MySection]MySelector:%VALUE%' label='choose a value' updateid='%COMBO2%' values='0;1;2' showvalues='value0;value1;value2' /> [/color]
    ---------------------------------------------------------------------------------------------------------
    <datafile> item
    List of contains of text file

    attributes
    file : text file name
    separator : character separator in value
    show : display substring of text '[start,len]' or part of text if separator exist (use %0...%n to select substring)
    run : action to execute when clic on one item
    %VALUE% macro in run attribute : use the full text line
    %SHOW% macro in run attribute : use a substring
    defined with show attribute
    %0...%n macro in run attribute : use part of text line if separator exist
    Code:
           <datafile file='%APPDIR%\CitiesMSN.txt' separator=',' show='%1' run='%JMLTODAY%\JMLMeteo.exe;-setcity:%0 -msn -map:%2' />
    ---------------------------------------------------------------------------------------------------------
    <inilist> item
    list items contained in a key in section of ini-file

    example of ini-file : MyIni.ini
    Code:
    [MySection]
    MyList=val1;val2;val3
    MyChoose=...

    attributes
    ini: key that contains items
    separator : items separator character (';' per default)
    run : action to execute when clic on one item
    %VALUE% macro in run attribute : use the item value
    Code:
            <inilist updateid='%KEYLIST%' ini='%SCRIPTPATH%\MyIni.ini[MySection]MyList' run='ini:%SCRIPTPATH%\MyIni.ini[MySection]MyChoose:%VALUE%' quit='no' />
            <text comment='selected value' id='%KEYLIST%' align='left' left='30' label='ini:%SCRIPTPATH%\MyIni.ini[MySection]MyChoose' />
    3
    perhaps an intermediate release next week.
    2
    @all :

    Add background (picture), backcolor and rgb (default menu text color) in <menu> tag

    See below.

    A++