[CHome aka Titanium Hack] Adding TalkURL Hotkey to Plugins - Windows Mobile Development and Hacking General

I just found out that if you add a TalkURL Registry String with a link to an app shortcut to any CHome Directory with ACTIONURL/SK2URL in it. It will launch the linked value when pressing the Green Send Button aka the "Call Button" instead of opening the Phone App.
Example:
Code:
HKLM:Software\Microsoft\CHome\TitaniumWeather\Page1
String
TalkURL = \Windows\Powerexe.exe
NOTE: CHome must be Refreshed after adding/editing this value.
EDIT: Added the Text file I made from extracting all the text out of the cmhome.dll. This is how I've been able to make buttons & found this hack. This text is the root to hacking CHome.
Donators to Date:
Code:
[COLOR="Blue"]generalmills $200 CAD[/COLOR]

great find! thank you again

grate pound
I can change the tools of my plugin now

Hi drkfngthdragnlrd, I think you are, very good for programming "Titanium" Plugins. We have many progs like SPB Weather or Traveller or whatever with a *.dll plugin for the today screen. Do you think it is possible, to create a Titianium Plugin there we can integrate such a *.dll plugin ?

NEO130 said:
Hi drkfngthdragnlrd, I think you are, very good for programming "Titanium" Plugins. We have many progs like SPB Weather or Traveller or whatever with a *.dll plugin for the today screen. Do you think it is possible, to create a Titianium Plugin there we can integrate such a *.dll plugin ?
Click to expand...
Click to collapse
It could be possible I guess. There is mention of SourceType="DLL" in the CHome DLL.
For example in Images;
Code:
<Image ID="ButtonUp" Width="195" Height="186" Opacity="0.0" ScalingAlgorithm="TriLinear" [COLOR="#0000ff"]SourceType="[COLOR="Red"]ImageSourceType[/COLOR]"[/COLOR] [COLOR="Blue"]Source="[COLOR="#ff0000"]ImageSource[/COLOR]"[/COLOR] />
SourceType = NONE/FILE/BUFFER/BITMAP/ICON/DLL
Source = location of the source. If it's a DLL, it should be followed by a comma and the DLL Resource # (You'd have to open the DLL in question to get the resource number).
NOTE: I believe BITMAP/ICON refers to EXE's/DLL's type BITMAPs/ICONs as some have that in a seperate directory inside the EXE/DLL.
Same goes for Text, but SourceType = InnerTextType & Source = Text
InnerTextType = Resource
Text = "Static Text" or "DLL,(Comma) Resource #)
EDIT/NOTE: The Custom Plugin GUID does not accept HARD CODED layouts in the cpr's with Source="what ever" in the line. It always wants to read a registry value. The only work around I found is if you are only using 1 page. Put the code outside of the <Layer ID="Page"></Layer> part of the expanded & condensed layouts.
Example;
Code:
[COLOR="Red"] <Layer ID="TitaniumWeatherCondensed" Visible="False" Width="45" Height="39">[/COLOR]
<!--Icon Image-->
[COLOR="Blue"] <Image ID="Icon" Left="2" Top="4" Width="31" Height="31" ScaleStyle="Stretch" Source="\Neo\Neo_Weather.png" />[/COLOR]
[COLOR="#ff0000"] <Layer ID="Page">
</Layer>
</Layer>[/COLOR]

??????????????? thanks, but this is the look like for me. What I or we need is a normal Titanium Plugin cab, in this we have a menu that we told them where the *.dll Plugin from the program is. I hope you understand my lazy wish.

This could be interesting for another purpose, drgn.. I should make a little investigation.
Another question - have you ever seen a possibility to change the angle or the opacity of an image by a registry value instead of hardcoded in a .plg?
Micha

MichelDiamond said:
This could be interesting for another purpose, drgn.. I should make a little investigation.
Another question - have you ever seen a possibility to change the angle or the opacity of an image by a registry value instead of hardcoded in a .plg?
Micha
Click to expand...
Click to collapse
I have not figured that out yet. If possible, I'll see if I can figure it out.

Cool - you know what it would mean, if that would be work - in combination with the buttons - I don't think that then anybody would use TouchFlo anymore...

Related

ThrottleLauncher Skining tutorial

Hi!!!
Here you have a little tutorial on how to create Themes for throttlelauncher. I still have to work on it but almost all is here. With this, theorically you can create almost any interface (still there's some work to do to achieve this ).
Any help, sugestions or requests are appreciated.
To read this tutorial is recomended to know XML file format.
First of all the file structure of a setup for throttlelauncher must be this.
- throttlelauncher instalation
|- Setups
|- MyTheme
|- Skins
|- Skin1
|- skin.xml
|- ...pictures of the skin​ |- Skin2
|- skin.xml
|- ...pictures of the skin​ |- Skin3​ |- config.xml
|- ....imported xml files
|- icons
|- ....my icons... any dir estructure​can be placed inside
To configure the app there are several tags. All the xml must be inside the root tag.
configuration: this tag contains the configuration parameters for the app (especified by the tag param). The allowed params names are:
- appear: Boolean value. Defines if the animation from down to top when the app got focus is activated (only valid for the standalon app).
- skin: defines the path of the folder of the skin to use. Relative to the app folder. See some post's below how to create the skin files.
- speeddecreaserate: factor that multiplies the value of your finger speed when starting kinetic scrolling.
- speedinitmultiply: factor that sets how fast the speed will be decreased in kinetic scrolling. IMPORTANT: set a value greatter than 1.
- status: two possible values. 0: normal (will show title bar and button bar of the app). 1: Maximized (will show the app fullscreen).
- osdenabled: It true, the OSD top bar will be shown when element is selected.
- imagecontactnophoto: Relative path to the image to be used it there's no contact photo.
- minclicktime: Min lapse time in miliseconds between the mouse down and up events to perform a click over the pressed element.
- .... there are some more... I will add them latter.
Example:
Code:
<configuration>
<param name="screenshot" value="True" />
<param name="appear" value="True" />
<param name="skin" value="Setups\Touchflo3D\skins\general" />
<param name="speeddecreaserate" value="1.2" />
<param name="speedinitmultiply" value="1.4" />
<param name="status" value="1" />
</configuration>
page: wich represent a page inside the app. Must be placed inside the root tag and the first one in the file is going to be the first one been showed by default. Page can have 2 attributes:
- name: contains the name of the page. This is going to be used when whe create a link to this page.
- loadonstartup: Boolean value, the default is "true". I recomend to set it to "false" in any page that be do not use frecuently to reduce memory usage.
- autounload: Indicates if the page will be unloaded automatically (and all it's resources will be freed).
- autounloadtime: time a unused page will remain loaded until autounload event starts. This param will be only used it autounload is true.
- import: will import the target xml as content of the page.
Example:
Code:
<page name="Home" loadonstartup="True" autounload="false">
row: Must be placed inside a page tag. They are specified in order from top to bottom. The following attributes are allowed:
- name
- marginX / marginY : margin bettwen the elements contained in the row.
- rows: number of rows of elements. If you set it up to -1 the number of rows is infinite.
- minheight: minimum height of the row (use recomended with dinamically sized rows due to contents like all contactswith photo or runningapps or recent)
- mincolwidth:
- scrollingmode: one of [Paged, WheelOfFortune, Direct, Kinetic, Auto, None]
- alignment: one of [left,right,center]
Example:
Code:
<row name="Programs" marginX="5" marginY="1" rows="3" scrolling="Paged">
footer: Must be placed inside the root tag. It parametters are exactly the same as the row. The footer is common for all the pages. Only one footer can be especified.
icon: Must be used inside the row tag or the footer tag. Used to display an icon. The allowed attributes are:
- name: Will be shown in the OSD when the icon is selected.
- path: path of the icon file. Recomended to use png. Can be absolute or relative to the app path. If the path is not specified, then the file on exec (if it's exe or lnk) will be used to obtain the icon image. No zooming efect will be applied in this case.
- exec: file to execute when the icon is clicked (deprecated, use event click instead).
- params: params for the file execution (deprecated, use event click instead).
- width: override the icons width.
- height: override the icons height.
- rowspan: indicates that the icon fills that number of rows intead of 1.
- showtext: will display the name of the icon as footer text.
Example:
Code:
<icon name="New Contact" exec="\windows\poutlook.exe" params="contacts -new" path="icons\contact.png" />
separator: must be especified inside a row or a footer. Allowed attributes are:
- name: if especified will show a vertical oriented text. If not especified the separator will show a vertical line.
Example:
Code:
<separator name="Personal" />
continues
text: Must be especified inside a row or a footer. Used to show text. Inherits all the atributes of the icon (so background icon can be displayed) plus:
- text: contains the text to be shown. The ~ symbol can be used for "new line", and two especial sentences:
* date: #$date,format#. Will be replaced by the date in the format especified. Will be updated automatically every second.
* reg: #$reg,key#. Will de replaced by the value of the desired key. Will be updated every second. When regkey is especified you can also use this format to parse date registry values: #$reg,key,date,dateformat
Example, start date for next apointment: #$reg,HKEY_CURRENT_USER\System\State\Appointments\Next\Start Time,date,MMM/dd/yyyy hh:mm#
- fonttype: font type specified by "fontname,size,bold" or "size,bold".
- fontcolor: RGB value.
- leftmargin: margin left of the text.
- topmargin: margin top of the text.
- spacing: interline spacing.
- textwidth: defines the width of the area filled by the text
- textheight: defines the height of area filled by the text
- textimages: defines a path where you can place images for each caracter on the text. Example: textimages="setups\Touchflo3d\icons\tf3d\numbers\#$char#.png" where #$char# will be replaced on the path for the character.
Example:
Code:
<text text="#$date,HH:mm:ss#~#$date,dd/MM/yy#~#$date,ddd#" fonttype="12,true" fontcolor="255,255,255" leftmargin="10" topmargin="10" spacing="-10" rowspan="3" width="100"/>
clock: must be inside a row or a footer. Inherits all the attributes of the icon. Can contain the following tags:
- hours
- minutes
- seconds
Each of those tags can contain a color attribute with the color in RGB for the line. If some of those tags is not especified, the respective line will not be shown.
Example:
Code:
<clock name="clock" path="clock.png" rowspan="3">
<hours color="0,0,100"/>
<minutes color="100,100,200"/>
<seconds color="160,160,255"/>
</clock>
allcontactswithphoto: must be inside a row or a footer. Will display all contact with photo matching the criteria in the attributes and assigned to the category "ThrottlePhotoDial".
- name: name of the tag element.
- categoryfilter: comma separated list of contact categories to be included on the filter.
- showcategories: If true will automatically show a separator for each category containing contacts.
- max: max number of contacts to display.
- width/height: define the diaplay size of the contact photos.
- All contacts with photo tag may contain two special icons with this two exec values: ":addcontact",":removecontact". This icons will open a contact selecting dialog allowing to choose a contact to asign or remove the "ThrottlePhotoDialer" category.
Example:
Code:
<allcontactswithphoto height="80" width="60" max="100" showcategories="True" name="Group unnamed">
<icon name="New Contact" exec=":addcontact" rowspan="1" height="80" width="80" path="setups\Default\icons\contact_add.png" />
<icon name="Remove Contact" exec=":removecontact" rowspan="1" height="80" width="80" path="setups\Default\icons\contact_del.png" />
</allcontactswithphoto>
lastapps: must be included inside a row or a footer. Will display the last 12 apps executed (same shown in the start menu). Can include the following attributes:
- name.
- zoom: will zoom the icons if different than 1.
Example:
Code:
<lastapps zoom="1" name="Group unnamed" />
runningapps: will display the running apps icons. The following attributes can be included:
- name.
- zoom: will zoom the icons if different than 1.
Inside you can especify the app's to exclude from the list by using the exclude tag as shown in the example.
Example:
Code:
<runningapps zoom="1" name="Group unnamed">
<exclude name="\Windows\shell32.exe" />
<exclude name="\Windows\cprog.exe" />
<exclude name="\Windows\repllog.exe" />
<exclude name="\Windows\gwes.exe" />
<exclude name="\Windows\filesys.exe" />
<exclude name="\Program Files\ThrottleLauncher\ThrottleLauncher.exe" />
</runningapps>
continued....
folder: this will add an icon for each file cotained in the specified folder matching the pattern if any.
- zoom: zoom to be aplied to the icons.
- path: path of the folder to load. If the folder path is on the registry, you may specify the registry path (sample: HKEY_LOCAL_MACHINE\Explorer\CrossPlatformNavigationURL).
- pattern: pattern to be used to filter the files.
- recursive: indicates wether to look into subfolders (any subfolder loaded will generate automatically a spearator named as the folder).
- name
plugin: this is used to include a today plugin inside the main app (not the today plugin).
- name: name of the plugin to be used. Importan the name MUST be the name of entry in HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\. ONLY PLUGINS BASE ON DLL's WILL WORK.
examples:
Code:
<plugin name="ADBWeatherPlus"/>
<plugin name="rlToday"/>
<plugin name="HTC Home"/>
<plugin name="BatteryStatus"/>
-throttleplugin: with this tag you can include 3rd party plugins for throttle launcher. For example you can include flash using the following:
<throttleplugin name="Reloj" path="#$THROTTLE#\Plugins\Flash\FlashPlugin.dll" height="90" class="FlashPlugin.FlashThrottlePlugin">
<param name="movie" value="#$THROTTLE#/Setups/Touchflo3dFlash/TWolf/Clock/horas_28_LITE.swf"/>
<param name="width" value="240"/>
<param name="backgroundpath" value="#$THROTTLE#\Setups\Touchflo3dFlash\TWolf\Clock/fondoReloj.jpg"/>
</throttleplugin>
Skins
Skins are based on xml file as config.xml does. Skin xml file may only contain param tag placed inside the root tag. All the params are optional, so if you don't need one, don't especify it!!
All files refenced by the skin.xml need to be placed on the same skin folder.
Params tag format is the following:
Code:
<param name="name" value="value"/>
The allowed names and it's values meanings are:
- trasparency: will allow trasparency for the skin. This means that if the skin is applied to a row the row background will be filled with the main setup skin texture.
- pagebackcolor: backcolor to be used as page background (only used for main setup skin).
- rowbackcolor: backcolor to be used on the rows (this will be used as the trasparent color if trasparency is specified).
- texture: relative path to the texture image to be used as page background.
- rowtexture: relative path to the texture image to be used as rowbackground.
- buttonback: relative path to the back image to be used on all clickable elements.
- selectionimage: relative path to the hover image to be used when an element is selected.
- buttonbackmargin: margin to be used between the buttonback image and the main element image.
- fontstyle: font style for the text displayed for example in the separators or the contact names. Two formats can be used: "size, bold" or "size, bold, fonttype".
- linecolor: color to be used for lines. Must be specified in an RGB value.
- textcolor: color for text. RGB
- osdtextcolor: color for OSD text. RGB
- osdbackcolor: color to be used as the OSD back color. RGB.
- osdfontstyle: font style for the text displayed in the OSD. Two formats can be used: "size, bold" or "size, bold, fonttype".
reserved.......
reserved.....
Thanks, APBilbo, for sharing this. Really appreciate your help towards the community.
Thanks a lot!!! I really love this app. Its the best one I have found so far. I would be surprised if Verizon and T-mobile dont start using this in the phones they sell...
I wish I had the time to create using ThrottleLauncher, I guess I'll leave it up to the pro's. Thanks for sharing your knowledge.

Please explain how to make first letter a 'Capital' on titanium home

What programs do you need, and how do you do it?
I've got a basic understanding of the methods (mui stuff) and I DO understand the technical bits. I don't really want to dismantle a ROM just to change some letters, and you'd think there would be a variable in there somewhere with those text strings.
Right now I've got capitals and non capitals on my home screen and its kinda unsightly..
Thanks all!
Found an answer somewhere else....
Use Total Commander, go to your windows folder, scroll till you get to Titanium, use Total commander edit function to open the cpr file for edit.
Look for the items that show up in our today screen, they come as "Expanded" and "Condensed". The condensed is your focus here.
So let's take "favorites" for our example:_ scroll to FavoritesCondensed,
4th line there reads like this:
<Text ID="PluginLabel" Left="10" Top="4" Width="300" Height="34"> FontFamily="Tahoma" FontSize="18" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter" InnerTextType="Resource" Text="chomeres.dll,1025">
Okay so the [InnerTextType="Resource"] has to be deleted, then edit Text as Text="Favorites" but hey, that gives you the internet explorer so you can as well write Internet there. So your edited line look like this:
<Text ID="PluginLabel" Left="10" Top="4" Width="300" Height="34"> FontFamily="Tahoma" FontSize="18" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter" Text="InternetExplorer">
So you do likewise with the remaining items and you can give them whatever name you want.
If you are going to use this info then pls hit the Thanks button hard. I dont know why but it makes me do more.
Click to expand...
Click to collapse
use chome editor
carcomp said:
What programs do you need, and how do you do it?
I've got a basic understanding of the methods (mui stuff) and I DO understand the technical bits. I don't really want to dismantle a ROM just to change some letters, and you'd think there would be a variable in there somewhere with those text strings.
Right now I've got capitals and non capitals on my home screen and its kinda unsightly..
Thanks all!
Click to expand...
Click to collapse
To have Capitals for the Titanium's default plugins you need to replace the cmhomeres.dll.0409.mui with the patched one I'm attaching in this post. Copy it to Windows folder on your device and restart Titanium.
FInixNOver said:
To have Capitals for the Titanium's default plugins you need to replace the cmhomeres.dll.0409.mui with the patched one I'm attaching in this post. Copy it to Windows folder on your device and restart Titanium.
Click to expand...
Click to collapse
Anyone confirm this is working???

[HowTo]JMLPanex (example with new JMLLibrary and JMLToday)[for all JMLToday-Versions]

Hi 2 All,
here like promised the Example how to use JMLPanex for your Plugin - and at the same time an Explanation of some Titanium-Fuctions, you perhaps don't know - and a new JMLToday-Skin... and a new JMLLibrary from me later on.
So something which could also make JMLToday-Skinner gives the Infos to make powerful Skins... because I only explain the Basics... you will see, there's much more possibilities then (especially with JMLToday 5.4 together with JMLLibrary 0.3)
Everything I will explain - is based upon
JMLPanex 0.98...2.10 and above ( http://forum.xda-developers.com/showthread.php?t=552373 )
JMLToday: *klick here*
JMLLibrary: *klick here*
You can have each Titanium-Plugin with workable Buttons!!! And that's easy! Also as User - but easpecially the Plugin-Makers will recognize the use of this revolutionary Extension for our Titaniums!
The most of my Explanations will run already - for some things you must wait for the cab for JMLLibrary 0.3 (still testing it) und JMLToday 5.4 (beause of the notifications) - but it's good to have a future glimpse
The main reason is the integration of JMLPanex - which is important for all Plugins and JMLToday at the same time.
Will begin in Post #2 - here only some remarks - like FAQs to JMLs:
- The workable Buttons must be (0.98) inside the slider! Outside of it a tab wouldn't be recognized - indifferent if it's defined in .pnx or not
- It works with all Skins which uses TitaniumListView - it won't work with BronzeresListView!!! To know, if you have the correct format (TitaniumListView) and not the old one, which was originally made for Smartphones - ony look inside your .cpr - you will see it in the first 10 lines.
Or look on your Screen - if you have Space above your Top-Panel - it's TitaniumListView - if your Slider is not centered on all plugins - you have BronzeListView
- JMLPanex is Beta - and please report in JMLPanex-Thread any Bugs - not here!!! Also Integration in your ROM - it would be better in the JML-PanexThread than here - I could add some things later as HowTo. Here's the description and you can discuss about Styling Tipps / Skinning and so on
- It's written in C++ - and it doesn't need an additional process on your device! So no Battery Drainage or slowing down system like a running process! (and especially of course no 24/7-Mortscript which has side effects on your Titanium, and much more Battery Drainage and Performance-Loss than other processes)
So you can use JMLPanex in your ROM, too
Go on in Post #2
Micha
Let's start - and don't forget - i use JMLToday and JMLLibrary only as example - if you are making your own Plugin - it will work exact the same - and I would wish I would have each Plugin on my Handy with workable Buttons:
Let's have a look on our example - I made a new Skin for JMLToday:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
All quite the same you know?
No - everything on the Slider are Buttons!
With a tab on SMS you go into Messages, tap on phone to Phone History, tap on Wifi will toggle it on and off, tab#1 onBluetooth will switch it on, tap#2 will make it visible, tab#3 will switch it off again !
You can put EACH executeable File into JMLPanex and associate it with each Graphic- or Text-Item on your Slider! On each Plugin, you have installed
Let's have a look how it works - you know it from CHome-Editor - but we look direct in the Skin-File - it's in Titanium something with suffix ".plg" - mostlyb"default.plg" - in JMLToday it's <name of the skin>.plg
a little part of it:
Code:
<Layer ID="Page" Clip="False">
<!-- JMLToday : meteo Page1 -->
<Image ID="BGA" Left="64" Top="-170" Width="150" Height="150" ScaleStyle="Fit" Opacity="0.9"/>
<Image ID="HA" Left="64" Top="-170" Width="150" Height="150" ScaleStyle="Fit" Opacity="1.0"/>
<Image ID="MA" Left="64" Top="-170" Width="150" Height="150" ScaleStyle="Fit" Opacity="1.0"/>
<Image ID="BGAO" Left="274" Top="-170" Width="150" Height="150" ScaleStyle="Fit" Opacity="0.9"/>
<Image ID="HAO" Left="274" Top="-170" Width="150" Height="150" ScaleStyle="Fit" Opacity="1.0"/>
<Image ID="MAO" Left="274" Top="-170" Width="150" Height="150" ScaleStyle="Fit" Opacity="1.0"/>
<Image ID="CalPNG" Left="44" Top="-25" Width="390" Height="35" VerticalAlignment="Top" ScaleStyle="Stretch" Opacity="0.5" />
<Image ID="BattPNG" Left="10" Top="-185" Width="48" Height="52" ScaleStyle="Fit" />
<Image ID="[B]SmsPNG[/B]" Left="392" Top="30" Width="84" Height="72" ScaleStyle="Fit" Opacity="0.8" />
<Image ID="[B]TelPNG[/B]" Left="19" Top="24" Width="84" Height="72" ScaleStyle="Fit" Opacity="0.8" />
<Image ID="Icon" Left="152" Top="-70" Width="190" Height="190" ScaleStyle="Fit" />
<Image ID="AlarmPNG" Left="12" Top="112" Width="26" Height="26" Opacity="0.8"/>
<Image ID="AlarmPNG" Left="12" Top="112" Width="26" Height="26" Opacity="0.8"/>
<Text ID="Alarm" Left="42" Top="115" Width="340" Height="80" FontFamily="Tahoma" FontSize="6" FontStyle="Regular" Wrap="True" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<Image ID="[B]WiFiPNG[/B]" Left="105" Top="45" Width="60" Height="60" Opacity="1.0"/>
<Image ID="[B]BlueToothPNG[/B]" Left="325" Top="45" Width="55" Height="55" Opacity="1.0"/>
<Image ID="EmailPNG" Left="212" Top="40" Width="80" Height="72" Opacity="1.0"/>
<Text ID="OperatorName" Left="152" Top="92" Width="120" Height="40" FontFamily="Tahoma" FontSize="7" FontStyle="Regular" Wrap="False" HorizontalAlignment="Right" VerticalAlignment="Middle">
<TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="0" BlurFactor="0" Alpha="1.0"/>
<TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF"/>
</Text>
Some of them I marked bold. The .plg-File will be added to your .cpr-File of Titanium.
That's the Names of the Text or Graphic-Items - you can use. If you look into CHome-Editor on Page1 - you will find exactly this Names. With a path to the Graphic-File or a text entry.
And now - we look into the .pnx-File for JMLToday - so it's JMLToday.pnx and is to find in JMLPanex-Path:
Code:
[Page1]
default=%PROGRAMFILES%\JMLToday\JMLAction.exe
AlarmPNG=%WINDOWS%\ctlpnl.exe;cplmain.cpl,16,1
BG=%WINDOWS%\ctlpnl.exe;cplmain.cpl,16,0
BGA=%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
WiFiPNG=%PROGRAMFILES%\JMLLibrary\JMLLib_toggleWIFI.mscr
BlueToothPNG=%PROGRAMFILES%\JMLLibrary\JMLLib_toggleBluetooth.mscr
Alarm=%PROGRAMFILES%\ageeye\G-Alarm\GAlarm.exe
OperatorName=%PROGRAMFILES%\JMLLibrary\JMLLib_restartRadio.mscr
You see all the Names - but linked with an application.
And that's all, what you have to do - look into your .cpr-File andyou know each Name of the Graphics - and your device will know this as Buttons - if ou actived JMLPanex.
The Activation is a simple Start of a Mortscript in JMLPanex-Installation-Path:
JMLPanexForPlugin.mscr
Start it - choose the Plugin, which you want - e.g. "FavoritePeople" - choose "All Pages" - and if you have made a FavoritePeople.pnx - then each Item will be associated with your personal wish, what you want to call!
Go on in #3
The way youcall, with or without Parameters - everything is already explained in JMLPanex-Thread:
It's explained in http://forum.xda-developers.com/showthread.php?t=552373 - Post #1 and #2 - so I mustn't repeat it.
I will only show you now some possibilities which you can do now - for this examples with JMLToday you will need the JMLLibrary 0.3 - because it's heavily expaned to use the Butons. In JMLToday the external calls to use from the Skinners are as Standard to make it easier in JMLLibrary.
Some of you will know the Weatherbackgroundchanger (http://forum.xda-developers.com/showthread.php?t=541434) from the Library, which changes your backgroundaccording to the current weather, or "isNight" which makes the Skinner easily able to make a day or night clock or so.
But in 0.3 there will be all to switch on Wifi,BT,GPRS,Phone-Toggle,... and also some more nice things.
It uses some free little apps - 2 credits I want to give at this place (in JMLLibrary-Download-Post for 0.3 then bigger ) :
- vj555 for VJVolublis and
- APBilbo for his little free standalone Tools from ThrottleLauncher
Thank you!
and of course some things are written mostly by me, JMHL or other members: *Wishlist for JMLToday/Library
Here's a possibility:
Hmm - you don't see something special?
The right picture shows the same PAge after pressing on one of the forecast-Icons - so you have easily a weather panel - which later on perhaps with the long version of weather - on one Page! Buttons make it possible
Only added some JMLLibrary-Functions in .pnx:
Code:
[Page2]
default=%PROGRAMFILES%\JMLToday\JMLMeteo.mscr
Icon1=%PROGRAMFILES%\JMLLibrary\JMLLib_forecastGlimpseDay1.mscr
Icon2=%PROGRAMFILES%\JMLLibrary\JMLLib_forecastGlimpseDay2.mscr
Icon3=%PROGRAMFILES%\JMLLibrary\JMLLib_forecastGlimpseDay3.mscr
Icon4=%PROGRAMFILES%\JMLLibrary\JMLLib_forecastGlimpseDay4.mscr
In 0.98 it's not ossible to all Mortscripts with Parameters - because Mortscript has a little strange way to be called - but we will see in next Verisons perhaps. But duplicating Mortscripts is the same as Parameters.
The Library only changes for 5 Seconds the Registry-Values of "IconA","TextA"... with "Icon1","Text1",...
Here's the main code for Switch for Day 2
Code:
# Made by MichelDiamond, 26.08.09
# Version 1.0
# Description:
# If you press a Forecast-Icon on Page2 - it will put the informations for 5 Seconds in the Main-Area - then switch it back
# Buttons must be correct linked with JMLPanex:
# following pathes are still the same - no need to change it if you make your own Library-Script - each script in /<Program-Path</JMLLibrary
LibraryPath = SystemPath( "ScriptPath" )
CommonGraphicPath = RegRead("HKLM", "Software\Microsoft\CHome\JMLToday","CommonGraphicPath")
EssentialGraphicPath = LibraryPath&"\Graphics\essential"
RegWriteDword("HKLM","Software\Microsoft\CHome\JMLToday","Updated","0")
glimpseday=2
# save entries for switching back
mainIconA=RegRead ("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","IconA")
mainTempA=RegRead ("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","TempA")
mainTextA=RegRead ("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","TextA")
mainDate2=RegRead ("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Date2")
# and switch
rein=RegRead("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Icon"&glimpseday)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","IconA", rein)
rein=RegRead("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Temp"&glimpseday)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","TempA", rein)
rein=RegRead("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Text"&glimpseday)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","TextA", rein)
rein=RegRead("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Jour"&glimpseday)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Date2", rein)
RegWriteDword("HKLM","Software\Microsoft\CHome\JMLToday","Updated","1")
Sleep(5000)
RegWriteDword("HKLM","Software\Microsoft\CHome\JMLToday","Updated","0")
# and back again
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","IconA", mainIconA)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","TempA", mainTempA)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","TextA", mainTextA)
RegWriteString("HKLM", "Software\Microsoft\CHome\JMLToday\Page2","Date2", mainDate2)
RegWriteDword("HKLM","Software\Microsoft\CHome\JMLToday","Updated","1")
exit
Simple, ey?
But let's go to #4
only one more example - very interesting also for the JMLToday-Users and Skinners.
Sorry I only had less time to make the new Library and the Example (busied with TitaniumRSS - had to break Beta-Finalisation for 3 days) and so I want to apologize for the Button-Graphics... 'm sure that some Skinners will make them much nicer than a developer
Here's a JMLLibrary 0.3-Function which wil add Page3 to JMLToday... SMS as Example :
If somebody knows, where the contact pictures are to find in device - please tell me - I don't had time to search.
And some nicer Buttons, too
You have counted?
Right!
That's more than 20 Images in this JMLToday-Skin - the Titanium-Limit.
(at this place at first thanks to
drkfngthdragnlrd and our conversation and his great findings.
In TitaniumRSS I will use some more great things... be surprised perhaps... but now - how to overcome this 20-ITem-Limit?
A .plg (Skin-File) has nothing which describes the Page- it's indifferent for it - the more top an item is listed, the more below it's in display level... but PAges? No. Now have a look into CHome-Editor:
Left you see the Value "tempA" of Page2 - on the Right the Value "tempA" of Page3
In .plg - they are both the same! Compare Screenshots from Page2 (Weather) with (SMS-)Page3 - do you see it?
Each Icons are on the same place - but they have completely different Values.
so only add to .pnx:
Code:
[Page3]
default=%PROGRAMFILES%\JMLLibrary\JMLLib_SMS_Exit.mscr
Icon1=%PROGRAMFILES%\JMLLibrary\JMLLib_SMS_Next_Page3.mscr
Icon2=%PROGRAMFILES%\JMLLibrary\JMLLib_SMS_Previous_Page3.mscr
Icon3=%PROGRAMFILES%\JMLLibrary\JMLLib_SMS_Reply.mscr
Icon4=%PROGRAMFILES%\JMLLibrary\JMLLib_SMS_Refresh_Page3.mscr
And The Titanium-Limit with 20 Text and 20 Image-Items is because of the .plg. But not in Page... In Page4 Email , in Page5 System-Info? No Problem - if you use the same Positions and the Icons of the plg (I could also use the items you have seen in Page1 and Page2 all together ) - so if you are creative (and Skinners are creative ) - you can make extraordinary Skins - and the Pages3,4,5,... are supplied by JMLLibrary-Functions, which you can choose - or make a new one and I will add it...
And then there's no need to change system-variables of Titanium, making crazy cab-Files.. and as Skinner - no need to know how Programs work - only call it
In JMLToday 5.4. each notification like SMS,Bluetooth, Phone, Wifi, Time,Weather, ... will have an interface to a Script, which a USer (or Skinner) can choose. Here - the JMLLIbr_SMS_Refresh.mscr in JMLLibrary wil be called from a new SMS-notifcation and will update automatically.
But in 5.3 you can already use it - but with manual refresh.
And back to JMLPanex - each Page can have it own Buttons... and this is Page3 - same Names, but different Page - and therefore JMLPanex is a real Killerapp! drkfngdrglrd and me had almost the same idea (*here*), but it's essential to be done - and JMHL made it in a very special and easy way - with no system performance loss or additional battery drain.
Thanx JMHL!!!
I hope some people find this HowTo helpful
Micha
ok-finished for the first time
OH - I've forgotten to say,that all from this example is uploaded in JMLLibrary - also with the sample .pnx and the JMLToday-Skin:
*click here*
And Thank you for saying Thank you for this HowTo and developing the Example
Micha
Thanks Micha! Just been a bit occupied and forgot to comment. This is a very useful guide, I am hoping to experiment more with the new functions when I get a chance, but thanks again, this is a big help to all developers/skinners.
You guys rock! Thanx I've got to see if I can get it working
10 mins later ...... it is awesome!
Looking good, will hopefully have time soon to update NeoTitanium & add JMLPanex & JMLToday includes some libraries. My question is though, it looks as though the button has to reside within the Focus Rectangle from what I understand for the ActionURL to be launched on tap. Am I correct with this? If so, maybe there's a way to add a OnAction to the <Layer ID="Page" tag of the expanded layout to "bind the whole layer to the Focus ActionURL. Since that is a value built it defined action, maybe we can bind it there. Then, we make the <Layer ID="Page" cover the entire Plugin if it falls outside the Focus.
Example (Based on my NeoTitanium);
Code:
<Layer ID="Page" [COLOR="Blue"]Left="45" Top="-114" Width="195" Height="268"[/COLOR] Clip="False" OnAction="[COLOR="Red"][B](Binding:HomeNav,FocusAction)?!?!?[/B][/COLOR]" >
In NeoTitanium the HavNav & Focus is only the left 45 pixels of the screen. My thought is something like this "might" give the rest of the screen the Focus action & therefore launching ActionURL outside of the Focus area. Will need to play with the OnAction Code to see if it will work & what is the correct code to use.
I hope you don't have overseen it: http://forum.xda-developers.com/showpost.php?p=4465671&postcount=47
@sleepyxda, jumba: Thank you
And what's good to know:You mustn't use Titanium_....cpr - - works with each other cpr, too. Tested it a little bit with Panex+Library
MichelDiamond said:
I hope you don't have overseen it: http://forum.xda-developers.com/showpost.php?p=4465671&postcount=47
@sleepyxda, jumba: Thank you
And what's good to know:You mustn't use Titanium_....cpr - - works with each other cpr, too. Tested it a little bit with Panex+Library
Click to expand...
Click to collapse
I saw, still trying, just a matter of figuring out what the process is called. It is a deffined action so should be possible.
Only remark for JMLToday V5.5. - it still works in the same way to skin Appointments and SMS (Post #4)
Cheers
Micha

CHome aka Titanium Built in Contact Plugin

Just figured I'd mention there's a Built in Contact Plugin for CHome aka Titanium. How to get it to work, I have no clue. I noticed there were 2 GUID's not being used a while back listed in the cmhome.dll. I also just notice in cmhomeres.dll there's string 1200-1207 for this plugin. The plugin is called CHomeFavPeople. In order to get it to work, we'd need to find out what the Layout is for it & registries it requires, plus which GUID it uses. I am posting this incase anyone wants to work on getting it functioning.
Here's a list of all GUID's
Code:
{3238D733-D47B-4732-9A8F-CD5A8D9A65ED} CHomeFavs (Program Shortcuts)
{52CD6A6E-9404-4e1c-82DB-CD715B884017} CEmail (Email)
{72233649-3771-4770-B02F-129750B7AE6B} CText (SMSMMS)
{A29AD55D-EE3C-4721-9A4C-9A720D70CA33} CVoicemail (Voicemail)
{EBB3B89E-B3E5-46e2-BFAF-F55FBCA98BA1} CPhone (Missed Calls)
{F0A1B246-6E64-40cd-8E15-347D29FF6F18} "Custom Plugins" (Any user made Plugin)
[COLOR="Blue"]{7D91E036-4511-4e59-8392-9A5861BF551E}
{4BBA9132-366E-4F52-B4B0-8BA302195831} [/COLOR]
{3C3EA205-72F9-48a2-A9E5-8277114608CF} CMyFaves (T-Mobile MyFaves App)
{97343B9B-5BB5-474d-98AA-E4CD2DD0A873} CWelcomeCenter (Welcome Center aka Getting Started)
{AB650274-9A5A-458b-893F-6FB601437979} CWindowsLive (Windows Live Messenger app)
{3255042D-AE66-4cf7-AD1D-718C3004DBE9} CTestUIPlugin (Dev Tool)
{892B90CB-9806-427E-8BED-F45C6A9E576B} CClock (Clock)
{D7B35490-A4B2-4ef4-BF8D-332C4979F14E} CAppointments (Calendar aka Appointments)
{06BC7E69-CE13-4028-9454-C27A32F56197} CMusic (WMP)
{E98FBDCC-6664-4c5b-BB62-20932ED37762} CHome (Missed Calls/Voicemail/SMSMMS/Email)
{C5A51777-B837-447d-8947-FAF3FF9D570B} CLinks (Internet Explorer Favorites Shortcuts)
{1DE8DD6B-D74D-4d2e-A8C3-72439F2B8402} Settings (Setting Shortcuts)
{4F612B1A-E470-4b31-9386-AC396AEDAAF9} CMyPhotos (Picture Viewer)
{3FD3C828-753F-48f9-BEA9-6201F64B5F58} CMessage (SMSMMS/Email)
{892B90CB-9806-427e-8BED-F45C6A9E576B} Docked CClock* (Clock when displayed as "Docked Operator Bar". Appears in base CHome directory)
I noted next to the GUID which plugin it is for. You'll notice 2 are not noted. So it must use one of those 2 GUID's.
The Contact plugin also looks for the following Images.
Code:
\CHomeFavPeoplecontactMethodim.png
\CHomeFavPeoplecontactMethodemail.png
\CHomeFavPeoplecontactMethodtxt.png
\CHomeFavPeoplecontactMethodhome.png
\CHomeFavPeoplecontactMethodwork.png
\CHomeFavPeoplecontactMethodmobile.png
You'll need to figure out what the Image Registries are, plus the GUID.
I think this may be the layout as I have no clue where it came from in my CPR's.
Code:
<Layer ID="ContactsExpanded" Width="240" Height="104" Visible="False" Clip="False">
<Image ID="Icon" Left="2" Top="2" Width="41" Height="41" ScaleStyle="Stretch" Source="\Neo\Neo_Favorite.png" />
<Layer ID="Page" Clip="False">
<Image ID="PICTURES" Left="110" Top="-72" Width="70" Height="70" ScaleStyle="Stretch" />
<Text ID="TEXT1" Left="53" Top="79" Width="189" Height="38" FontFamily="Control Freak" FontSize="12" FontStyle="Bold" Wrap="False" Trimming="EllipsisCharacter" VerticalAlignment="Top" Clip="False">
<TextStage TextOffsetType="TextOffsetDropCenterCenter" Color="#00000000" TextOffset="2" BlurFactor="2" />
<TextStage TextOffsetType="TextOffsetOutline" Color="#ffffffff" Alpha="0" />
<TextStage TextOffsetType="TextOffsetNone" Color="#ffffffff" />
</Text>
<Text ID="TEXT2" Left="53" Top="117" Width="189" Height="38" FontFamily="Control Freak" FontSize="12" FontStyle="Regular" Wrap="True" Trimming="EllipsisCharacter" VerticalAlignment="Top" Clip="False">
<TextStage TextOffsetType="TextOffsetDropCenterCenter" Color="#00000000" TextOffset="2" BlurFactor="2" />
<TextStage TextOffsetType="TextOffsetOutline" Color="#ffffffff" Alpha="0" />
<TextStage TextOffsetType="TextOffsetNone" Color="#ffffffff" />
</Text>
</Layer>
</Layer>
<Layer ID="ContactsCondensed" Width="45" Height="39" Visible="False">
<Image ID="Icon" Left="7" Top="7" Width="25" Height="25" ScaleStyle="Stretch" Source="\Neo\Neo_Favorite.png" />
<Layer ID="Page" />
</Layer>
Note: It has been edited for my NeoTitanium skin, but the original should exist if someone still has older Titanium or Sliding Panels cpr's as it's where I got it from.
Hi drkfngthdragnlrd:
I was reading a chome.txt file that you published time ago, and I wondering if maybe this "options" let us run a comand or program when we change pages inside a panel:
CHomePageSwitching
CGestureEventArgs
Or maybe exist other options too.
ryomahino said:
Hi drkfngthdragnlrd:
I was reading a chome.txt file that you published time ago, and I wondering if maybe this "options" let us run a comand or program when we change pages inside a panel:
CHomePageSwitching
CGestureEventArgs
Or maybe exist other options too.
Click to expand...
Click to collapse
I'm not quite sure what you mean, but I can tell you that WMP is NOT Pages. It is a single page plugin. The Arrows used are not the Page Arrows. That's why there are MPI's & NPI's. One set is for Pages, the other is used by WMP.
EDIT: I may be wrong but I think MPI=MultiPageIndicator & NPI=NextPreviousIndicator.
hay man seems you really enjoy studing Titanium
grate work, keep it on, hope I can help,but the new 23037's Titanium is too buggy to use,
so I cook without it
maybe you can also find a fix for 2303X's Titanium too
keep it on , you are my last hope , i tried too many ways to fix but is too tired and the layout is not as beautiful as the original one
I must to say you always do grate work
kane159 said:
hay man seems you really enjoy studing Titanium
grate work, keep it on, hope I can help,but the new 23037's Titanium is too buggy to use,
so I cook without it
maybe you can also find a fix for 2303X's Titanium too
keep it on , you are my last hope , i tried too many ways to fix but is too tired and the layout is not as beautiful as the original one
I must to say you always do grate work
Click to expand...
Click to collapse
I haven't really experienced any problems with Titanium. I have seen it posted a lot & someone posted saying they just replaced the files with the Titanium Files from older builds & fixed the issue. The only thing I've noticed is certain custom plugin such as CMultiClock, the animation bug is worse. I managed to reduce the bug by editing the image codes. I added ScalingAlgorithm="TriLinear" to all Image Lines & removes the Clip="False" from them. Clip="False should only appear in <Layer tags.
ya i had tried your solution, but it's not totoly fix in the original theme
can I put on my cpr file and my reg key?
maybe you are the one only really know Titanium on XDA...
I already call too much ppl to help, but they are unable to help themselves
kane159 said:
ya i had tried your solution, but it's not totoly fix in the original theme
can I put on my cpr file and my reg key?
maybe you are the one only really know Titanium on XDA...
I already call too much ppl to help, but they are unable to help themselves
Click to expand...
Click to collapse
It is not a perfect fix. It just reduces the frequency of the bug appearing. Post your CPR's & I'll look at them. No need for the registries. The CPR controls display.
drkfngthdragnlrd said:
It is not a perfect fix. It just reduces the frequency of the bug appearing. Post your CPR's & I'll look at them. No need for the registries. The CPR controls display.
Click to expand...
Click to collapse
here is my cpr file, thank you my friend you always help me
really really thanks you
kane159 said:
here is my cpr file, thank you my friend you always help me
really really thanks you
Click to expand...
Click to collapse
Ok, what did you change, I can tell from the start that you didn't do what I said at all. Every "<Image" line of code for every Custom Plugin needs to look like this!
Red Values Must Exist! Blue Values can be edited as needed! ScaleStyle can be "Stretch" or "Fit". Scaling Algorithm can be "Fast" or "TriLinear". You can add Source & SourceType if needed. Nothing else is to be added beside those 2 to any <Image line of code. I don't get what's so hard to understand about this. This is what I did, follow my instructions & you won't experience the bug as much. The END!
Code:
[COLOR="Blue"]<[/COLOR][COLOR="DarkRed"]Image[/COLOR] [COLOR="Red"]ID[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]HrBG[/COLOR]" [COLOR="#ff0000"]Left[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]39[/COLOR]" [COLOR="#ff0000"]Top[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]-101[/COLOR]" [COLOR="#ff0000"]Width[/COLOR][COLOR="Blue"]=[/COLOR]"[COLOR="#0000ff"]100[/COLOR]" [COLOR="#ff0000"]Height[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]100[/COLOR]" [COLOR="#ff0000"]ScalingAlgorithm[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]TriLinear[/COLOR]" [COLOR="#ff0000"]ScaleStyle[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]Stretch[/COLOR]" [COLOR="Blue"]/>[/COLOR]
drkfngthdragnlrd said:
Ok, what did you change, I can tell from the start that you didn't do what I said at all. Every "<Image" line of code for every Custom Plugin needs to look like this!
Red Values Must Exist! Blue Values can be edited as needed! ScaleStyle can be "Stretch" or "Fit". Scaling Algorithm can be "Fast" or "TriLinear". You can add Source & SourceType if needed. Nothing else is to be added beside those 2 to any <Image line of code. I don't get what's so hard to understand about this. This is what I did, follow my instructions & you won't experience the bug as much. The END!
Code:
[COLOR="Blue"]<[/COLOR][COLOR="DarkRed"]Image[/COLOR] [COLOR="Red"]ID[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]HrBG[/COLOR]" [COLOR="#ff0000"]Left[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]39[/COLOR]" [COLOR="#ff0000"]Top[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]-101[/COLOR]" [COLOR="#ff0000"]Width[/COLOR][COLOR="Blue"]=[/COLOR]"[COLOR="#0000ff"]100[/COLOR]" [COLOR="#ff0000"]Height[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]100[/COLOR]" [COLOR="#ff0000"]ScalingAlgorithm[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]TriLinear[/COLOR]" [COLOR="#ff0000"]ScaleStyle[/COLOR][COLOR="#0000ff"]=[/COLOR]"[COLOR="#0000ff"]Stretch[/COLOR]" [COLOR="Blue"]/>[/COLOR]
Click to expand...
Click to collapse
no no my friend, this is my original cpr files
you don't tell me whitch should i put on so...
I'll put it later,thanks very much
drkfngthdragnlrd said:
I'm not quite sure what you mean, but I can tell you that WMP is NOT Pages. It is a single page plugin. The Arrows used are not the Page Arrows. That's why there are MPI's & NPI's. One set is for Pages, the other is used by WMP.
EDIT: I may be wrong but I think MPI=MultiPageIndicator & NPI=NextPreviousIndicator.
Click to expand...
Click to collapse
Hi sorry for inconvenience, let me explain you, why I made this question:
I´m trying to perform a better Nitrogen titanium panel; the new version of Nitrogen write in the registry in HKLM\Software\Microsoft\CHome all the info required to Function the panel; and better yet you can run command (like forward, etc) just putting the command after "nitrogen.exe"
Thats why I made that questions: exist any form to perform a command or .lnk when I made lateral swipe inside a panel or maybe pressing this NPI that you mention, to make work this panel like WMP Panel?
Thanks in advance
ryomahino said:
Hi sorry for inconvenience, let me explain you, why I made this question:
I´m trying to perform a better Nitrogen titanium panel; the new version of Nitrogen write in the registry in HKLM\Software\Microsoft\CHome all the info required to Function the panel; and better yet you can run command (like forward, etc) just putting the command after "nitrogen.exe"
Thats why I made that questions: exist any form to perform a command or .lnk when I made lateral swipe inside a panel or maybe pressing this NPI that you mention, to make work this panel like WMP Panel?
Thanks in advance
Click to expand...
Click to collapse
You want to look for my thread on how to add button hotspots to CHome plugins. It's a bit tricky, but is the only way I've managed to do something like what your are talking about, except ot's not swiping, it's press a software button. I believe someone already did this based on Cherish's Plugin. Check in his thread.

Drawable Help..

Hey all -
I'm getting into an area I hadn't gone before - drawable XML files, and am stumped, since what I think should work is giving me an exception.
Some background -
I have multiple images, used as a background. Then there are a couple other images used for foreground symbols. (These are for markers on a map.) So, for example, I have 5 different colors, and 5 symbols. Instead of creating 30 different markers (5 symbols + blank) I figured I could include the resources, and then use a list-layer to show the symbol on top of the marker. Would save some room when the APK's created.
So, I made a simple test, like this. XML file is simply named "marker":
Code:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="34dp"
android:drawable="@drawable/marker_green_blank"
android:left="0dp"
android:right="20dp"
android:top="0dp"/>
<item
android:bottom="20dp"
android:drawable="@drawable/marker_symbol_int"
android:left="3dp"
android:right="19dp"
android:top="4dp"/>
</layer-list>
Oddly, when I go to use this, I get an exception when it's tried to be used:
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
Any thoughts? I obviously missed something - probably something idiotic, since I do that a lot.
Or, is there another way to combine two images/res's together?
--Mike
Edit:
I forgot to add - this is how I'm creating the 'icon' to add it to the map. The second line is map-specific code and may not really apply here. I'm starting to think that the first line - BitmapDescriptor - is causing the issue:
Code:
BitmapDescriptor marker_red_blank = BitmapDescriptorFactory
.fromResource(R.drawable.marker);
<!-- Code that sets other options using a MarkerOptions object ... -->
opt.icon(marker_red_blank);
mark.associatedMapMarker = MapViewFragment.this.mMap.addMarker(opt);
coyttl said:
Hey all -
I'm getting into an area I hadn't gone before - drawable XML files, and am stumped, since what I think should work is giving me an exception.
Some background -
I have multiple images, used as a background. Then there are a couple other images used for foreground symbols. (These are for markers on a map.) So, for example, I have 5 different colors, and 5 symbols. Instead of creating 30 different markers (5 symbols + blank) I figured I could include the resources, and then use a list-layer to show the symbol on top of the marker. Would save some room when the APK's created.
So, I made a simple test, like this. XML file is simply named "marker":
Code:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="34dp"
android:drawable="@drawable/marker_green_blank"
android:left="0dp"
android:right="20dp"
android:top="0dp"/>
<item
android:bottom="20dp"
android:drawable="@drawable/marker_symbol_int"
android:left="3dp"
android:right="19dp"
android:top="4dp"/>
</layer-list>
Oddly, when I go to use this, I get an exception when it's tried to be used:
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
Any thoughts? I obviously missed something - probably something idiotic, since I do that a lot.
Or, is there another way to combine two images/res's together?
--Mike
Edit:
I forgot to add - this is how I'm creating the 'icon' to add it to the map. The second line is map-specific code and may not really apply here. I'm starting to think that the first line - BitmapDescriptor - is causing the issue:
Code:
BitmapDescriptor marker_red_blank = BitmapDescriptorFactory
.fromResource(R.drawable.marker);
<!-- Code that sets other options using a MarkerOptions object ... -->
opt.icon(marker_red_blank);
mark.associatedMapMarker = MapViewFragment.this.mMap.addMarker(opt);
Click to expand...
Click to collapse
Although I haven't used BitmapDescriptors, I do use layer-list a fair bit to overlay shapes, backgrounds etc.
Looking at the documentation for fromResource...
'Creates a BitmapDescriptor using the resource id of an image.'
It seems that you're not passing it an image, you're passing it a drawable (layer-list in this case).
PicomatStudios said:
Although I haven't used BitmapDescriptors, I do use layer-list a fair bit to overlay shapes, backgrounds etc.
Looking at the documentation for fromResource...
'Creates a BitmapDescriptor using the resource id of an image.'
It seems that you're not passing it an image, you're passing it a drawable (layer-list in this case).
Click to expand...
Click to collapse
Thanks, I'll look into that. I had thought I tried to create a bitmap out of it, but it still gave the error - but since my memory is flaky, I'll do it and see what I get.
Cheers-
Mike
Drawable Button XML resource selector
This technique could be used for animation of XML drawables.
Keep separate drawables in your res/layout folders as usual.
switchable_drawables.xml ( put this in res/layout too)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Button Focused-->
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/active_button"
/>
<!-- Button Focused Pressed-->
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/active_button"
/>
<!-- Button Pressed-->
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/active_button"
/>
<!-- Button Default Image-->
<item android:drawable="@drawable/inactive_button"/>
</selector>
coyttl said:
Thanks, I'll look into that. I had thought I tried to create a bitmap out of it, but it still gave the error - but since my memory is flaky, I'll do it and see what I get.
Cheers-
Mike
Click to expand...
Click to collapse
Hey guys -
Thanks for the info. Unfortunately, same error. The code now looks like:
Code:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferQualityOverSpeed = true;
opts.outHeight = 34;
opts.outWidth = 20;
Bitmap icon = BitmapFactory.decodeResource(MapViewFragment.this.getResources(),
R.drawable.marker, opts);
BitmapDescriptor marker_green_blank = BitmapDescriptorFactory.fromBitmap(icon);
Creating options to generate the bitmap, setting desired height and width, and then using the decodeRecource function, creating a Bitmap, then using the .fromBitmap to turn it into a Descriptor. When the GMaps tries to access it, same null error. I may post this over on StackOverflow, since looking at the docuemtation and other examples, this should work.

Categories

Resources