What Features Do You Look for in a Gallery App?

With so many different options to choose from, finding the right Gallery app may be a … more

Google Photos ‘Unlimited’ Storage Reportedly Being Capped

When Google Photos was announced, many of us thought very highly … more

Sprint Moves to Lift Video Streaming Limit for All-In

Yesterday, Sprint announced a new unlimited scheme that offered customers an … more

Xiaomi Releases Kernel Source Code For Mi4i

If you’ve been following the XDA News Portal lately, you might have noticed an … more

[WM6.5] [Titanium program] JMLPanex v3.00 (18-Jan-2011)

650 posts
Thanks Meter: 83
By JMHL, Retired Recognized Developer on 25th August 2009, 08:53 PM
Post Reply Subscribe to Thread Email Thread
Developed on HTC Diamond (VGA 480 640) with standard Titanium (no WM7.. Project, etc....)

Post#2 : Configuration/Parameter Informations

JMLPanex program (JML Panel Execute) allows multiple hotspots on a plugin (-> Association picture/program).

Changelog Version 3.00 : see Post#2 Thank you for offering me a beer. All donations (3€, 5$, +) are appreciated !
- Required for JMLToday v6.00
- all parameters in registry (JMLPanex.ini deleted)
- configuration with JMLMenuSense program (Sense UI interface)
- vibration when long clic (if 'vibrate' parameter enabled and JMLToday v6.00 required)
- remove all .mscr scripts
- sound clic (@Freezy1982 idea's)
- expand zone-area picture from A-Z (26 maxi, 5x5 or 2x13...) to A-Z,a-z (52 maxi, 7x7 or 5x10....)

Installation instructions :
1- Install JMLMenuSense v1.30 -> *JMLMenuSense thread*
2- Install JMLPanex cab file

-> In Windows Start Menu, -> in JMHL folder, -> you have a JMLPanexSense link to configure JMLPanex.

Changelog Version 2.70 :
- #ITEM command : allows a area-zone (A, B. ..) to behave as an ID (execute program, conditional action.....)
- #PAGEITEM command = #GOTO + #ITEM
- make a vibration on click
- manages long click to provide 2 actions on a picture
- apptodate compatible
Changelog Version 2.60 :
- Deplacement optimisation (little faster)
- Zone-area depending of the picture (-> see @HC_72 Post#228)
- Add more effects when clic.
Changelog Version 2.50 :
- It write the name of PNX file used -> in ...CHome\JMLPanex\PnxFile register key
- It scan the tag < button > in .CPR file.
- #FOLDER command : open folder with ":MSFEXPLORE"
- Conditionnal action based on the content of the registry key (see post#2)
Changelog Version 2.30 :
- dim=RxC (ROWSxCOLS), ex : dim=4x1, dim=2x4 ..... with a single restriction : MAX of 26 positions.
Changelog Version 2.10:
- Bug : Cache works on Portrait AND Landscape mode
- Compatible BronzeListView CPR (to tested. thanks)
Changelog Version 2.00 :
- caching the cpr-part of each Panel for faster reaction (another MichelDiamond's idea)
- reverse search for <Images> (because a big Image must be in First position in CPR, but must be scanned in Last position by JMLPanex)
- #GOTO command to interact with others Pages of a Plugin or another Plugin without manual sliding
- add %JMLTODAY% and %JMLPANEX% for path-file

Have Fun!

NO MIRRORS, thanks.
Attached Files
File Type: cab - [Click for QR Code] (27.1 KB, 1418 views)
File Type: cab - [Click for QR Code] (29.2 KB, 6325 views)
File Type: cab - [Click for QR Code] (34.0 KB, 5975 views)
File Type: cab - [Click for QR Code] (35.6 KB, 2697 views)
File Type: cab - [Click for QR Code] (34.5 KB, 2909 views)
File Type: cab - [Click for QR Code] (43.2 KB, 1522 views)
File Type: cab - [Click for QR Code] (108.4 KB, 3025 views)
Last edited by JMHL; 19th January 2011 at 12:32 PM.
25th August 2009, 08:53 PM |#2  
OP Retired Recognized Developer
Flag Bordeaux
Thanks Meter: 83
Donate to Me
Configuration/Parameter Informations

AppToDate ready for JMLToday >= 6.00
- install AppToDate application
- run AppToDate application, check updates and download the new version.


A=#ITEM SmsNotify
C=%JMLTODAY%JMLMenu.exe;JMLEmails.mnu -execute

.jpg=#PAGEITEM Page4 Infos
unknown.png=#GOTO Page4
sms_e.png=#GOTO Page4
sms_d.png=%WINDOWS%tmail.exe;-service "SMS"
#ITEM SmsNotify -> Execute action of SmsNotify (in same page)
#PAGEITEM Page4 Infos-> #GOTO Page4 and execute action of Infos ITEM

Long clic action
You can use || to separate actions in .pnx file.

Example : ...=%JMLTODAY%\JMLComm.exe;-flight||%JMLTODAY%\CommManager.lnk

single clic : switch flight-mode/phone-on
long clic : launch CommManager program.

Effects when clic


Zone-area depending of the picture
(-> see @HC_72 Post#228)
You can define different areas of actions in function of the image displayed.



Conditionnal action

Example of .pnx file for icon IconA on Page5 (IconA = contact or private event -> and we want a different action !)


-> if registry key IconA contains "jpg" or "unknow.png" -> it's a contact -> Reply action
-> if registry key IconA contains "Private.png" -> it's a private event -> other action

Be careful :
- use { and } to define condition, after '=' (in place of action)
- use [ and ] for section name (page_name or area_name or condition_name)

Scanning <button> tag

Some titanium/skin use this tag : i think the applauncher plugin use it (to verify).
With this, in JMLPanex, you can specify static pictures avalaible for all pages. when you slide from page to another page, these pictures not slide, there are static.

JMLTodayV6.00 skin exemple (see JMLToday thread #post2) :
- There is one static picture : Bkg
- The path of pictures are hard-coded in .CPR file, not in registry
- You can also put actions with .PNX file (it's because JMLPanex scan <button> tag ! as <image> tag)

<Layer ID="JMLTodayExpanded" nil="False" Width="480" Height="164" Clip="False">
   <Keypad ID="Buttons" Width="480" Height="336" Clip="False">
   <Button ID="Bkg" Left="-2" Top="-200" Width="484" Height="348" Clip="False">
   <Layer ID="ButtonUpLayer" Clip="False">
   <Image ID="ButtonUp" Width="484" Height="348" Visible="True" ScalingAlgorithm="Fast" Source="\JML\JMLToday_Bkg.png" />
   <Layer ID="Page" Clip="False">		
   <Image ID="BG" Left="230" Top="-172" Width="240" Height="115" ScalingAlgorithm="TriLinear" Opacity="1.0"/>
   <Image ID="H1" Left="243" Top="-146" Width="42" Height="66" ScalingAlgorithm="TriLinear" Opacity="1.0"/>

... same page description as before
Syntax : #FOLDER folder_path

Parameter file .pnx
----------------------- for SEARCH in PNX :
- One File in plugin folder (file-name=skin-name.pnx)
- One File in plugin folder (file-name=plugin-name.pnx)
- One File in JMLPanex folder (file-name=plugin-name.pnx)
- One section per page of plugin or per area description
- One line per association picture=program

Example JMLToday.pnx for JMLToday plugin :
EmailPNG=%WINDOWS%\tmail.exe;-service "ActiveSync"
SmsPNG=%WINDOWS%\tmail.exe;-service "SMS"

NB. : default is the default program when you click out of a picture.

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


Program/parameters separator
You can use ; in your file-path name to separate parameter to program-name :

Example : ...=%WINDOWS%\ctlpnl.exe;cplmain.cpl,3

When you associate JMLPanex to a plugin, JMLPanexForPlugin.mscr store the old ACTIONURL value in ACTIONURLPNX

1 - During a click, the plugin launches JMLPanex.exe in passing in parameter the name of the plugin (eg. JMLToday) and the concerned page (eg. Page1)
2 - JMLPanex gets back the coordinates of the click
3 - JMLPanex looks for in the file active .cpr, and in Layer of the plugin (eg. JMLTodayExpanded), the element the positions / dimensions of which correspond in coordinates of the click
4 - JMLPanex gets back ID of the concerned element and search in a file parameters, the associated program and executes it.

Area Button (MichelDiamond's idea)

- The image is cut in zones representing a matrix
- Every zone can be associated with a program
- Max squared matrice dim = 5 (5x5 zones)
- New dim=RxC (ROWSxCOLS) -> ex : dim=4x1, dim=2x4 ..... 26 zones

Example :

Syntax : #GOTO page/direction plugin-destination

- page = Page1, Page2... PageN
- direction = Left...LeftN (Left occurs N), Right... RightN, None
- plugin-destination = name of plugin to go (if different)

If you have a vertical offset due to :
- ROM build > 23xxx
- BronzeListView in place of TitaniumListView

-> Run JMLPanexSense to fix it

- One .dat file cache per Plugin and per Resolution
- The cache is rebuild when the .CPR file is modified or .dat inexistent
- The cache only work with .CPR file, NOT with .pnx (icon coordinates recorded only, NOT associate action).

-> Run JMLPanexSense to force the recompilation of cache for one plugin

For the developpers :
- Delete the appropriates .dat files in your script to clear cache.
Last edited by JMHL; 18th January 2011 at 08:04 PM.
25th August 2009, 09:50 PM |#3  
Jumba's Avatar
Senior Member
Flag Johannesburg
Thanks Meter: 514
Donate to Me
Excellent! Updated skins on the way.
25th August 2009, 10:42 PM |#4  
jug6ernaut's Avatar
Retired Moderator / Recognized Developer
Flag San Antonio, Tx
Thanks Meter: 473
wow nice/exciting!
26th August 2009, 12:14 AM |#5  
MichelDiamond's Avatar
Retired Recognized Developer
Thanks Meter: 272
Donate to Me
Short Info: will work on each Resolution in TitaniumListView-Skins

You can have Buttons without any new running background-process.

Try it with JMLToday - and you will get working SMS, Phone,.... - Buttons It's great!
26th August 2009, 07:00 AM |#6  
Jumba's Avatar
Senior Member
Flag Johannesburg
Thanks Meter: 514
Donate to Me
Heya, can we now use buttons that are out of the focus bar area? This wasn't the case in the beta.
26th August 2009, 08:15 AM |#7  
mysterd's Avatar
Senior Member
Thanks Meter: 0
Sorry to be a little off topic or if I didn't search enough... But I haven't changed my ROM to a 6.5 one yet, so I don't really understand the titanium behaviour. Can you give me pointers to some information about that ?

From what I read here, in the normal titanium plugins, you can't have multiple clicking areas ? Is that true ? From the screenshots of software like JMLToday, I had understood that it was possible to have real buttons on a titanium panel (for example to enable / disable bluetooth and so on...). Am I wrong ?

Mods, if I'm way too off topic, please delete this post...

Thanks in advance for your help.

26th August 2009, 08:56 AM |#8  
OP Retired Recognized Developer
Flag Bordeaux
Thanks Meter: 83
Donate to Me
@MysterD : French s&#238;te -> http://htc-touch-diamond.forumactif....out-t14134.htm

26th August 2009, 09:03 AM |#9  
mysterd's Avatar
Senior Member
Thanks Meter: 0
Thanks for your answer... I'm already a member of this forum, too

I'll try and read everything over there too...
26th August 2009, 11:45 AM |#10  
MichelDiamond's Avatar
Retired Recognized Developer
Thanks Meter: 272
Donate to Me
Yes - Titanium itself has no workable buttons by default - but if you once use it - I already was a Fan of TF3D2 - I changed to Titanium. It's integrated in system - no third party - and uses much less RAM and Battery than TF3D2.
And it's easy to configure - not like the Manila-Files (please read the other Threads about "Titanium" as Search Tag - then you will see, how nice it is)

But - with JMLPanex - everybody can easily switch his Plugin to a Plugin with working Buttons (and WITHOUT 24/7-Script to do this!!!) - everybody can do this now - I don't know, if the users (and especially the Plugin-Developers) already mentioned it, what a Killer app is JMLPanex.

I will make an example as How-To tomorrow (with JMLToday - but you can use this in the same way for EACH TITANIUM-PLUGIN, that it gets workable Buttons in an easy an light way)

Post Reply Subscribe to Thread

jmlpanex, titanium, titaniumrss, wm6.5
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes