Okay the code will need adapting for Confluence due to the main menu items, but in Hybrid's Home.xml you'll find
Code:
<onload condition="Window.Previous(startup)">Control.Move(9000,$INFO[Skin.String(initialmenuitem)])</onload>
which is a modified version of code suggested earlier
Then in skinsettings.xml. At the top you'll find a <onload> statement
Code:
<onload condition="stringcompare(Container(9009).Position,0) + !stringcompare(Skin.String(initialmenuposi),0)">Control.Move(9009,$INFO[Skin.String(initialmenuposi)])</onload>
Which controls the list of main menu items.
Round about line #186 in skinsettings.xml you'll find the code for the button that you use to chance the menu item you want in focus.
Code:
<control type="button" id="101">
<width>750</width>
<height>40</height>
<font>font13</font>
<label>$LOCALIZE[31014]</label>
<label2>[COLOR=selected]$INFO[Container(9009).ListItem.label][/COLOR]</label2>
<textcolor>grey2</textcolor>
<focusedcolor>white</focusedcolor>
<texturefocus>MenuItemFO.png</texturefocus>
<texturenofocus>MenuItemNF.png</texturenofocus>
<onclick>Control.Move(9009,1)</onclick>
<onclick>Skin.SetString(initialmenuposi,$INFO[Container(9009).Position])</onclick>
<onclick condition="StringCompare(Container(9009).Position,0)">Skin.SetString(initialmenuitem,-1)</onclick>
<onclick condition="StringCompare(Container(9009).Position,1)">Skin.SetString(initialmenuitem,0)</onclick>
<onclick condition="StringCompare(Container(9009).Position,2)">Skin.SetString(initialmenuitem,1)</onclick>
<onclick condition="StringCompare(Container(9009).Position,3)">Skin.SetString(initialmenuitem,2)</onclick>
<onclick condition="StringCompare(Container(9009).Position,4)">Skin.SetString(initialmenuitem,3)</onclick>
<onclick condition="StringCompare(Container(9009).Position,5)">Skin.SetString(initialmenuitem,4)</onclick>
<onclick condition="StringCompare(Container(9009).Position,6)">Skin.SetString(initialmenuitem,5)</onclick>
<onclick condition="StringCompare(Container(9009).Position,7)">Skin.SetString(initialmenuitem,6)</onclick>
<onclick condition="StringCompare(Container(9009).Position,8)">Skin.SetString(initialmenuitem,7)</onclick>
<onclick condition="StringCompare(Container(9009).Position,9)">Skin.SetString(initialmenuitem,8)</onclick>
<onclick condition="StringCompare(Container(9009).Position,10)">Skin.SetString(initialmenuitem,-2)</onclick>
</control>
Then way further down line #664 is the actual list of your main screen items. this is where you'll have to adjust to work in Confluence as in Hybrid the menu items are listed as homeitem.?.label/path and as you can see visability is controlled by the path being empty or not For Confluence you know that the first item is the weather and visibility is controlled by "!Skin.HasSetting(HomeMenuNoWeatherButton)" next is Pictures controlled by "!Skin.HasSetting(HomeMenuNoPicturesButton)" and so on
Code:
<control type="list" id="9009">
<onleft>9001</onleft>
<onright>9001</onright>
<onup>9001</onup>
<ondown>9001</ondown>
<visible>Container(9000).Hasfocus(1)</visible>
<itemlayout height="1" width="750"></itemlayout>
<focusedlayout height="1" width="750"></focusedlayout>
<content>
<item>
<label>$INFO[Skin.String(homeitem.1.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.1.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.2.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.2.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.3.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.3.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.4.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.4.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.5.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.5.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.6.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.6.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.7.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.7.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.8.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.8.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.9.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.9.path))</visible>
</item>
<item>
<label>$INFO[Skin.String(homeitem.10.label)]</label>
<onclick>noop</onclick>
<icon>-</icon>
<thumb>-</thumb>
<visible>!IsEmpty(Skin.String(homeitem.10.path))</visible>
</item>
</content>
</control>
Hybrid also has a bit of code
Code:
<onload>Skin.SetString(initialmenuposi,2)</onload>
that gets run only once on initial setup just to enter a number in the string. You should get away without it but the first click on you adjusting button may go a little haywire because there is no previous value to the string
you could put a IsEmpty condition to the onload and put it in your Home.xml, but I wouldn't bother