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

Search This thread

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
57
Bordeaux
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).



JMLPanexInfo.png



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.
 

Attachments

  • JMLPanexV2.00.cab
    27.1 KB · Views: 1,427
  • JMLPanexV2.10.cab
    29.2 KB · Views: 6,332
  • JMLPanexV2.30.cab
    34 KB · Views: 5,976
  • JMLPanexV2.50.cab
    35.6 KB · Views: 2,702
  • JMLPanexV2.60.cab
    34.5 KB · Views: 2,918
  • JMLPanexV2.70.cab
    43.2 KB · Views: 1,529
  • JMLPanexV3.00.cab
    108.4 KB · Views: 3,064
Last edited:

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
57
Bordeaux
Configuration/Parameter Informations


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

#ITEM, #PAGEITEM
ex.:
Code:
[Page1]
...
XMLTOTAL=[Page1_XMLTOTAL_Action]
[color=red]SmsNotify[/color]={Page1_SmsPNG_Action}

[Page1_XMLTOTAL_Action]
dim=4x1
A=[color=red]#ITEM SmsNotify[/color]
B=%JMLTODAY%CallHistory.exe
C=%JMLTODAY%JMLMenu.exe;JMLEmails.mnu -execute
D=%WINDOWS%voicemail.exe

[Page1_SmsPNG_Action]
.jpg=[color=green]#PAGEITEM Page4 Infos[/color]
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


JMLPanex_Button.png


[/color]

Zone-area depending of the picture

(-> see @HC_72 Post#228)
You can define different areas of actions in function of the image displayed.
Code:
[Page1]
IconA={Page1_IconA_Action}

[Page1_IconA_Action]
PictureFor6Zones.png=[Area6Zones]
PictureFor4Zones.png=[Area4Zones]

[Area6Zones]
dim=1x6
A=...
B=...
C=...
D=...
E=...
F=...

[Area4Zones]
dim=1x4
A=...
B=...
C=...
D=...

Conditionnal action

Example of .pnx file for icon IconA on Page5 (IconA = contact or private event -> and we want a different action !)
Code:
[Page5]
IconA={Page5_IconA_Action}
PagesPNG=[PagesPNG]

[Page5_IconA_Action]
jpg=%PROGRAMFILES%\JMLToday\JMLSms.exe;-reply:1
unknow.png=%PROGRAMFILES%\JMLToday\JMLSms.exe;-reply:1
Private.png=#FOLDER %PROGRAMFILES%

[PagesPNG]
...
-> 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)

Code:
<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>
   </Button>
   </Keypad>				
 
   <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"/>

... [i][b]same page description as before[/b][/i]
----------------------------------------------------------------------------------------
#FOLDER
Syntax : #FOLDER folder_path


----------------------------------------------------------------------------------------
Parameter file .pnx
----------------------- for SEARCH in PNX :
- One File in plugin folder (file-name=skin-name.pnx)
or/and
- One File in plugin folder (file-name=plugin-name.pnx)
or/and
- 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 :
Code:
[Page1]
default=%PROGRAMFILES%\JMLToday\JMLAction.exe
AlarmPNG=%WINDOWS%\ctlpnl.exe;cplmain.cpl,16,1
BG=%WINDOWS%\ctlpnl.exe;cplmain.cpl,16,0
EmailPNG=%WINDOWS%\tmail.exe;-service "ActiveSync"
SmsPNG=%WINDOWS%\tmail.exe;-service "SMS"
TelPNG=%PROGRAMFILES%\JMLToday\CallHistory.exe
BattPNG=%WINDOWS%\ctlpnl.exe;cplmain.cpl,3

[Page2]
default=%PROGRAMFILES%\JMLToday\JMLMeteo.mscr

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 :

%PROGRAMFILES%
%WINDOWS%
%MYVIDEO%
%MYPICTURES%
%MYMUSIC%
%JMLTODAY%
%JMLPANEX%


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

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

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

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


JMLPanexPNX.png


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



Area-Buttons.png


Example :


Area-Examples.png


----------------------------------------------------------------------------------------
#GOTO
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)

JMLGOTO.png


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

-> Run JMLPanexSense to fix it

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

MichelDiamond

Retired Recognized Developer
Jul 6, 2009
2,222
272
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!
 

mysterd

Senior Member
Feb 21, 2008
164
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.

Cheers
 

MichelDiamond

Retired Recognized Developer
Jul 6, 2009
2,222
272
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)

:)
 

Jumba

Senior Member
Nov 16, 2008
1,155
704
Johannesburg
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!

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)

:)

Hi Micha, looking forward to the guide. :)

Can you answer my earlier question: Is the placement of buttons restricted to the focus bar, like in the beta? Or can we use the whole display area?
 

adwinp

Senior Member
Jun 22, 2008
2,011
309
urandom
Doesn't work for me.

Assigning an action for clicking on the clock (default in .pnx) works, but doesn't work on the off-focus icons like email, sms, call history etc.


1z3nu5i.png
 
Last edited:

Jumba

Senior Member
Nov 16, 2008
1,155
704
Johannesburg
http://www.mediafire.com/?ie4jckqzjmn
There you go.
;]

I also tried moving every icon (iconPNG) from the top bar to below the clocks, which didn't work either.

Heya, I am going to convert the dual analog and digital skins to work with Panex when I get back from vacation, but maybe try the slanted skin which works fine here and has all the buttons on the focus bar, or the default one to see if it works then.
 

JMHL

Retired Recognized Developer
Apr 23, 2006
650
83
57
Bordeaux
New version 0.98 -> Post#1

@adwinp : in your CPR, height = 200 :
<Layer ID="Focus" Width="480" Height="200" Clip="False">
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Has anyone figured out a fix to get buttons outside the focus area? I know that
    drkfngthdragnlrd has kind of hinted towards it but I've been playing around with it and for some reason the clickable area is a good 50 pixels above my buttons. Great app btw, once you get the hang of it there's a ton that you can do. Great job!!
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone