Major breakthrough: Scheme/Colour Profile support
After a week of tinkering fun, experimentation and frustration I have finally managed to enable Scheme/Colour Profile support.
The changes
Note: It seems until March update is available and installed on iPAQ 314 this mod will not work on it.
Before I start a word of warning ensure you have backup of data.zip AND you have a method of booting into Windows CE. If an invalid scheme is selected the iPAQ 31x will not be able to run iGo software.
There are 2 files in data.zip that need to be modified; setting.ui in ui_hp_sagan/common/ui folder and setting_800_480.ui in ui_hp_sagan/800_480/ui folder.
At the top of setting.ui file there is <header> section. Paste the following line at the end of <header> section but before </header> tag.
<var bNightMode>
The following code needs to be placed in setting.ui file after st_SettingVisual3D section and before st_SettingVisualMap section.
;************ Start raven2000 changes to enable scheme support **************************************************
<state st_ColorProfiles>
<uselayer ui_Header/>
<uselayer ui_Background/>
;<uselayer ui_Title/>
<uselayer ui_Footer/>
<uselayer ui_ColorProfiles/>
<script init>
Title.SET "Color Profiles"
btnSVM_MapColor.TEXT vColorSchemeDayName
btnSVM_MapNightColor.TEXT vColorSchemeNightName
;Set slider state from night mode variables
runif bAutoNightMode 1 'vMapColors.SET "AUTO"'
else_runif bNightMode 1 'vMapColors.SET "NIGHT"'
else_run 'vMapColors.SET "DAY"'
</script>
</state>
<script sc_btnSVM_MapColor_OnRelease>
vSelectColorProfileMode.SET 0
NEXTSTATE st_SettingVisualMapColor
</script>
<script sc_btnSVM_MapNightColor_OnRelease>
vSelectColorProfileMode.SET 1
NEXTSTATE st_SettingVisualMapColor
</script>
<script sc_SetNightMode>
runif vMapColors "AUTO" 'bAutoNightMode.SET 1'
else_runif vMapColors "NIGHT" 'bAutoNightMode.SET 0, bNightMode.SET 1'
else_run 'bAutoNightMode.SET 0, bNightMode.SET 0'
</script>
<script sc_SetToNightMode>
;bAutoNightMode.SET 0
bNightMode.SET 1
statusDay.show
statusAutoDN.hide
statusNight.hide
</script>
<script sc_SetToDayMode>
;bAutoNightMode.SET 0
bNightMode.SET 0
statusAutoDN.hide
statusNight.show
statusDay.hide
</script>
;****************************************************************************************************************
<state st_SettingVisualMapColor>
<uselayer ui_Header/>
<uselayer ui_Background/>
;<uselayer ui_Title/>
<uselayer ui_Footer/>
<uselayer ui_SettingVisualMapColor/>
<script init>
RUNIF vSelectColorProfileMode 0 'title.text "Day Colour Profile"'
ELSE_RUNIF vSelectColorProfileMode 1 'title.text "Night Colour Profile"'
lstSVM_Profiles.SETCONTROLS "btnSVM_ProfilesNextPage" "btnSVM_ProfilesPrevPage"
ATTACHCOLORPROFILEMODEL lstSVM_Profiles vSelectColorProfileMode
runif vSelectColorProfileMode 0 'lstSVM_Profiles.SETSELECTION vColorSchemeDayName'
runif vSelectColorProfileMode 1 'lstSVM_Profiles.SETSELECTION vColorSchemeNightName'
lstSVM_Profiles.GETNTEXT txtSVM_ProfilesPageIdx
</script>
</state>
<script sc_lstSVM_Profiles_OnItemSelected>
runif vSelectColorProfileMode 0 'SETCOLORPROFILE lstSVM_Profiles 0 "vColorSchemeDayName"'
runif vSelectColorProfileMode 1 'SETCOLORPROFILE lstSVM_Profiles 0 "vColorSchemeNightName"'
PREVSTATE
</script>
;************ End raven2000 changes to enable scheme support **************************************************
The following code needs to be placed in setting_800_480.ui file after ui_SettingVisualBackground section and before ui_SettingVisualMap section.
;************ Start raven2000 changes to enable scheme support **************************************************
<layer ui_ColorProfiles z=30>
<SPRITE xxx x=15 y=84 z=0 bmp="hp_bubble_overview.bmp" z=0>
<TEXT txt_NightMode template=xsld_text x=220 y=114 w=340 text="Night Mode">
<SLIDER sld_NightMode template=xsld_275 bmp="hp_slider_left_260.bmp#2" bmp2="hp_slider_right_260.bmp#2" y=115 w=820 value="Off|0|On|1|Auto|2" var=vNightModeSetting onselect='run sc_SetNightModeSetting'>
<BUTTON btnSVM_MapColor template=xbtn template=btn206 x=290 y=205 text="" valign="bottom-7" align="RIGHT-5" onrelease='run sc_btnSVM_MapColor_OnRelease'>
<TEXT xxx template=btntext x=300 y=210 text="Day Scheme:" watchstate=btnSVM_MapColor>
<BUTTON btnSVM_MapNightColor template=xbtn template=btn206 x=290 y=290 text="" valign="bottom-7" align="RIGHT-5" onrelease='run sc_btnSVM_MapNightColor_OnRelease'>
<TEXT xxx template=btntext x=300 y=295 text="Night Scheme:" watchstate=btnSVM_MapNightColor>
</layer>
;***************************************************************************************************************
<layer ui_SettingVisualMapColor z=35>
<SPRITE xxx template=glist_empty z=0>
<LISTTABLE lstSVM_Profiles template=xlist y=20 onitemselected='run sc_lstSVM_Profiles_OnItemSelected'>
<TEXT txtSVM_ProfilesPageIdx template=pageindex>
<VSMARTSCROLL lstSVM_Profiles_smartscroll template=vscrollbar table="lstSVM_Profiles" hide SLIDER_ABOVE_FRAME_SIZETHUMB>
<BUTTON btnSVM_ProfilesPrevPage template=prevpage onrelease='lstSVM_Profiles.SETPREVIOUSPAGE, lstSVM_Profiles.GETNTEXT txtSVM_ProfilesPageIdx'>
<BUTTON btnSVM_ProfilesNextPage template=nextpage onrelease='lstSVM_Profiles.SETNEXTPAGE, lstSVM_Profiles.GETNTEXT txtSVM_ProfilesPageIdx'>
<SPRITE xxx template=scroll_bg>
</layer>
;************ End raven2000 changes to enable scheme support **************************************************
In setting_800_480.ui file there is a section ui_SettingVisualMap and toward the end of this section there are the following lines:
<TEXT txt_NightMode template=xsld_text x=310 y=322 w=402 text="Night Mode">
<SLIDER sld_NightMode template=xsld_275 bmp="hp_slider_left_260.bmp#2" bmp2="hp_slider_right_260.bmp#2" x=112 y=317 w=800 value="Off|0|On|1|Auto|2" var=vNightModeSetting onselect='run sc_SetNightModeSetting'>
replace these lines of code with the following:
;************ Start raven2000 changes to enable scheme support **************************************************
<BUTTON btnMapScheme template=xbtn x=310 y=317 z=1 text="Scheme" template=btn206 onrelease='NEXTSTATE st_ColorProfiles'>
;<TEXT txt_NightMode template=xsld_text x=310 y=322 w=402 text="Night Mode">
;<SLIDER sld_NightMode template=xsld_275 bmp="hp_slider_left_260.bmp#2" bmp2="hp_slider_right_260.bmp#2" x=112 y=317 w=800 value="Off|0|On|1|Auto|2" var=vNightModeSetting onselect='run sc_SetNightModeSetting'>
;************ End raven2000 changes to enable scheme support **************************************************
How do I select my scheme?
On your iPAQ create "scheme" folder under \IPAQ\NAV\content folder. Content folder also contains building, dem, voice, map, poi, etc folders. Place your schemes in this new scheme folder.
After you have made the changes and placed schemes in scheme folder run the iPAQ and click > Settings > Visual Settings > Map Settings. If you made changes correctly you should notice that next to POI Visibility button is a new button called Scheme (don't freak out Night Mode slider has not disappeared! I have just moved it to Scheme screen as it makes more sense to me and also this is the location in iGo 8). It may take couple of seconds for Scheme screen to be displayed. After it is displayed you will notice that there are 3 sliders; Night Mode; Day Colour Scheme; and Night Colour Scheme.
Night Mode is the same slider that used to be on Map Setting so there is no need explain what that is for. Day Colour Scheme and Night Colour Scheme are actually Listtables but they are displayed as sliders so after you choose the scheme you wish to change to you need to click on scheme name to confirm. If the scheme is loaded correctly then you will be taken to the previous screen i.e Map Settings. On the other hand, if the scheme is invalid then there will be unable to load error.
After you confirm your selection if you go to the map you should notice new map colours. Voila!
Where do I get schemes from?
Schemes will be posted at: http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=111701
Conclusion
With this mod everyone should be able to tinker with map colours whilst easily being able to switch default or some other scheme.