CHome (Titanium) Plugins for WM 6.5
Creating CHome (Titanium) Plugins Part I
Creating CHome (Titanium) Plugins Part II
Creating Customized Titanium Layout
CHome Registry (Titanium) and CPR file walk-through
Titanium: CHome is the plugin/program’s name. CHome is also one of the plugins as well. It’s the Notifications Plugin. This is the plugin that has Voicemail, Missed Calls, Email, SMS, and MMS all in one line. Titanium is the name of the way it displays things. There is also Bronze and Neo. In Titanium the glass panel always centers itself after you move it. In Bronze (Smart Phone version of CHome from Windows Mobile 6.1), as you move from panel to panel from top to bottom, the Active panel slides down the screen or vice versa. Neo is from the Smart Phone from T-Mobile called the Shadow and made by HTC. It’s similar to M2D where there is a list of Icons and a selector with the expanded panel taking up the rest of the screen. NeoTitanium is a revamped CPR layout of Titanium cloning the design of Neo hence why I named it NeoTitanium.
CHome Registry (Titanium): This should cover most of what you’ll need to know about the registry for CHome.
Directories (HKLM = HKEY_LOCAL_MACHINE): List of Directories CHome uses.
HKLM\Security\CHome\DefaultSettings
(NOTE: Any registry entries in this directory and its subdirectories will overwrite those in the Software Directory listed below when you disable and re-enable Titanium or Soft reset. It’s basically a safety backup.)
HKLM\Software\Microsoft\CHome
(NOTE: Also, all of its subdirectories.)
Values:
ACTIONURL= Location of exe/ink/etc for the plugin when you press on the panel or press the center D-Pad Button (Example: ”\Windows\fexplorer.exe” to make the plugin open File Explorer)
SK1URL= Same as ACTIONURL, but for the “Left Soft Key”.
SK1TEXT= The text displayed for the “Left Soft Key”.
SK2URL= Same as ACTIONURL, but for the “Right Soft Key”.
SK2TEXT= The text displayed for the “Right Soft Key”.
DefaultXML/ExtensibilityXML= Active plugins and their order. Also tells CHome which CPR’s to use (filename).
<Plugins Order="CClock;CMyFaves;CContacts;CPhone…" CPRFileName="Neo" DisplayStyle="Titanium" />
Filename is all text before the “ _resolution”.cpr (Resolution = 240x320 etc…).
(NOTE: ExtensibilityXML is the Priority and Default is a fall back in case something in ExtensibilityXML breaks CHome.)
Plugins= List of all available plugins. These are the same as the subdirectory names of CHome.
(NOTE: List of plugins in NeoTitanium that work; CAppointments, CClock, CContacts, CEmail, CHome, CHomeFavs, CInternet, CLinks, CMessage, CMusic, CMyApplication, CMyFavs, CMyPhotos, COffice, CPhone, CTesUIPlugin (Old Titanium Weather uses this), CText, CVoicemail, CWelcomeCenter, CWindowsLive, HTCMUSIC, Settings.)
Pages= Pages and order of pages within a plugin. If a plugin has plugins it’ll have subdirectories for each page.
GUID= Defines how the specific plugin works. What registry entries it “requires”. What layout template in the CPR it uses, etc.
(NOTE: The GUID “{F0A1B246-6E64-40cd-8E15-347D29FF6F18}” (without quotes) is for custom plugins. It requires a registry entry for the layout telling it which custom layout from the CPR to use. There are a few already in NeoTitanium. Use those as a template to make your own. You can add custom Registry values for text and images. If the registry is “CustomImage1”, it’ll look for <Image ID=”CustomImage1” Left…..” in the plugin’s layout of the CPR. It is best to not edit this value unless you are making a custom plugin of your own.)
ICONPATHS/Image/Pictures/Etc= Location of the image to be used. (Example: “\Windows\Neo_SelectionPanel_45x45.png”)
If you see number in this field, they are pointing to that resource in a .dll. Usually it’ll be the Bronzeres.dll.
CONDENSETITLE/TitleText/PluginLabel/Etc= Usually the title displayed for the plugin such as CLinks being known as Launcher or Extras.
DataSource= Specifically for the custom plugin GUID. This tells CHome where to find the registry values for each page.
(NOTE: CondensedPage is a required subdirectory. As these are custom plugins, CHome does not know what information is used in condensed and must be told.)
The CPR XML code: The code inside the CPR’s is XML. If you open the XML with an XML editor such as “Microsoft Visual Studio”, it’ll recognize the code and highlight errors in the same manner “Microsoft Word” does for spelling and grammar. It also color codes the code so it’s easier to read. The CPR’s can be opened and edited with any text editor though like “Notepad” or “WordPad”.
EDIT: XML Notepad 2007 by microsoft for editing the cpr files found by justpctech. Special thanks to him for finding this.
The code: The main parts of the cprs are the left/top (Position) and width/height (size) entries represented in pixels. They control how big something is and where it is positioned onscreen. The left/top values are from the images of the specific layer, not the whole screen. So, if the layer is 240 pixels wide by 100 pixels tall, the left/top value are for within that rectangle. To scale images use this code, ScaleStyle="***". Known working values are Fit and Stretch. Color refers to the color of the text and its offset. OffsetNone is the text itself. Vertical/HorizontalAlignment is the layout of the text within its width/height box. If your image or text gets clipped off, try adding Clip=”False” to the Layer(s) in is inside of. Expanded layers are the layout of the plugin when active and Condensed is inactive. The page arrows are the NPI and MPI layers. TitaniumListView refers to Titanium. If you change both entries to BronzeListView, it’ll act as Bronze does on the Smart Phone as described above.
That should cover the basics of editing the CPR. Just start playing with them and you’ll catch on quickly as did I. If you know html or xml you have a head start.
Available Windows Mobile 6.5 Titanium plugins
JMLPanex allows multiple hotspots on a plugin
Plug in Installer
Online Titanium CPR/PLG helper
Creating CHome (Titanium) Plugins Part II
Creating Customized Titanium Layout
CHome Registry (Titanium) and CPR file walk-through
Titanium: CHome is the plugin/program’s name. CHome is also one of the plugins as well. It’s the Notifications Plugin. This is the plugin that has Voicemail, Missed Calls, Email, SMS, and MMS all in one line. Titanium is the name of the way it displays things. There is also Bronze and Neo. In Titanium the glass panel always centers itself after you move it. In Bronze (Smart Phone version of CHome from Windows Mobile 6.1), as you move from panel to panel from top to bottom, the Active panel slides down the screen or vice versa. Neo is from the Smart Phone from T-Mobile called the Shadow and made by HTC. It’s similar to M2D where there is a list of Icons and a selector with the expanded panel taking up the rest of the screen. NeoTitanium is a revamped CPR layout of Titanium cloning the design of Neo hence why I named it NeoTitanium.
CHome Registry (Titanium): This should cover most of what you’ll need to know about the registry for CHome.
Directories (HKLM = HKEY_LOCAL_MACHINE): List of Directories CHome uses.
HKLM\Security\CHome\DefaultSettings
(NOTE: Any registry entries in this directory and its subdirectories will overwrite those in the Software Directory listed below when you disable and re-enable Titanium or Soft reset. It’s basically a safety backup.)
HKLM\Software\Microsoft\CHome
(NOTE: Also, all of its subdirectories.)
Values:
ACTIONURL= Location of exe/ink/etc for the plugin when you press on the panel or press the center D-Pad Button (Example: ”\Windows\fexplorer.exe” to make the plugin open File Explorer)
SK1URL= Same as ACTIONURL, but for the “Left Soft Key”.
SK1TEXT= The text displayed for the “Left Soft Key”.
SK2URL= Same as ACTIONURL, but for the “Right Soft Key”.
SK2TEXT= The text displayed for the “Right Soft Key”.
DefaultXML/ExtensibilityXML= Active plugins and their order. Also tells CHome which CPR’s to use (filename).
<Plugins Order="CClock;CMyFaves;CContacts;CPhone…" CPRFileName="Neo" DisplayStyle="Titanium" />
Filename is all text before the “ _resolution”.cpr (Resolution = 240x320 etc…).
(NOTE: ExtensibilityXML is the Priority and Default is a fall back in case something in ExtensibilityXML breaks CHome.)
Plugins= List of all available plugins. These are the same as the subdirectory names of CHome.
(NOTE: List of plugins in NeoTitanium that work; CAppointments, CClock, CContacts, CEmail, CHome, CHomeFavs, CInternet, CLinks, CMessage, CMusic, CMyApplication, CMyFavs, CMyPhotos, COffice, CPhone, CTesUIPlugin (Old Titanium Weather uses this), CText, CVoicemail, CWelcomeCenter, CWindowsLive, HTCMUSIC, Settings.)
Pages= Pages and order of pages within a plugin. If a plugin has plugins it’ll have subdirectories for each page.
GUID= Defines how the specific plugin works. What registry entries it “requires”. What layout template in the CPR it uses, etc.
(NOTE: The GUID “{F0A1B246-6E64-40cd-8E15-347D29FF6F18}” (without quotes) is for custom plugins. It requires a registry entry for the layout telling it which custom layout from the CPR to use. There are a few already in NeoTitanium. Use those as a template to make your own. You can add custom Registry values for text and images. If the registry is “CustomImage1”, it’ll look for <Image ID=”CustomImage1” Left…..” in the plugin’s layout of the CPR. It is best to not edit this value unless you are making a custom plugin of your own.)
ICONPATHS/Image/Pictures/Etc= Location of the image to be used. (Example: “\Windows\Neo_SelectionPanel_45x45.png”)
If you see number in this field, they are pointing to that resource in a .dll. Usually it’ll be the Bronzeres.dll.
CONDENSETITLE/TitleText/PluginLabel/Etc= Usually the title displayed for the plugin such as CLinks being known as Launcher or Extras.
DataSource= Specifically for the custom plugin GUID. This tells CHome where to find the registry values for each page.
(NOTE: CondensedPage is a required subdirectory. As these are custom plugins, CHome does not know what information is used in condensed and must be told.)
The CPR XML code: The code inside the CPR’s is XML. If you open the XML with an XML editor such as “Microsoft Visual Studio”, it’ll recognize the code and highlight errors in the same manner “Microsoft Word” does for spelling and grammar. It also color codes the code so it’s easier to read. The CPR’s can be opened and edited with any text editor though like “Notepad” or “WordPad”.
EDIT: XML Notepad 2007 by microsoft for editing the cpr files found by justpctech. Special thanks to him for finding this.
The code: The main parts of the cprs are the left/top (Position) and width/height (size) entries represented in pixels. They control how big something is and where it is positioned onscreen. The left/top values are from the images of the specific layer, not the whole screen. So, if the layer is 240 pixels wide by 100 pixels tall, the left/top value are for within that rectangle. To scale images use this code, ScaleStyle="***". Known working values are Fit and Stretch. Color refers to the color of the text and its offset. OffsetNone is the text itself. Vertical/HorizontalAlignment is the layout of the text within its width/height box. If your image or text gets clipped off, try adding Clip=”False” to the Layer(s) in is inside of. Expanded layers are the layout of the plugin when active and Condensed is inactive. The page arrows are the NPI and MPI layers. TitaniumListView refers to Titanium. If you change both entries to BronzeListView, it’ll act as Bronze does on the Smart Phone as described above.
That should cover the basics of editing the CPR. Just start playing with them and you’ll catch on quickly as did I. If you know html or xml you have a head start.
Available Windows Mobile 6.5 Titanium plugins
JMLPanex allows multiple hotspots on a plugin
Plug in Installer
Online Titanium CPR/PLG helper