--- a/idlehomescreen/data/qhd_tch/group/bld.inf Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/group/bld.inf Wed Jun 09 09:29:04 2010 +0300
@@ -27,6 +27,7 @@
#include "../view_2001f48b/group/bld.inf"
#include "../view_200286e4/group/bld.inf"
#include "../view_200286e5/group/bld.inf"
+#include "../view_200286ed/group/bld.inf"
#include "../templateview_20026f50/group/bld.inf"
#include "../root_2001f482/group/bld.inf"
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css Wed Jun 09 09:29:04 2010 +0300
@@ -115,9 +115,9 @@
_s60-scroll-behaviour: scroll-alternate;
- _s60-display-time: 2000;
+ _s60-display-time: 5000;
+ _s60-start-delay: 2000;
_s60-scroll-loop: false;
- _s60-start-delay: 0;
_s60-restart-after-update: true;
}
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml Wed Jun 09 09:29:04 2010 +0300
@@ -73,16 +73,7 @@
<trigger name="titletoscroll" titleindex="0"/>
<event name="system/set">
<property name="name" value="visibility"/>
- <property name="value" value="hidden"/>
- <property name="type" value="string"/>
- <property name="id" value="SatIdleModeIcon"/>
- </event>
- </action>
- <action>
- <trigger name="titlescrolled" titleindex="0"/>
- <event name="system/set">
- <property name="name" value="visibility"/>
- <property name="value" value="hidden"/>
+ <property name="value" value="visible"/>
<property name="type" value="string"/>
<property name="id" value="SatIdleModeIcon"/>
</event>
@@ -91,16 +82,7 @@
<trigger name="titletoscroll" titleindex="1"/>
<event name="system/set">
<property name="name" value="visibility"/>
- <property name="value" value="visible"/>
- <property name="type" value="string"/>
- <property name="id" value="SatIdleModeIcon"/>
- </event>
- </action>
- <action>
- <trigger name="titlescrolled" titleindex="1"/>
- <event name="system/set">
- <property name="name" value="visibility"/>
- <property name="value" value="visible"/>
+ <property name="value" value="hidden"/>
<property name="type" value="string"/>
<property name="id" value="SatIdleModeIcon"/>
</event>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css Wed Jun 09 09:29:04 2010 +0300
@@ -115,9 +115,9 @@
_s60-scroll-behaviour: scroll-alternate;
- _s60-display-time: 2000;
+ _s60-display-time: 5000;
+ _s60-start-delay: 2000;
_s60-scroll-loop: false;
- _s60-start-delay: 0;
_s60-restart-after-update: true;
}
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css Wed Jun 09 09:29:04 2010 +0300
@@ -115,9 +115,9 @@
_s60-scroll-behaviour: scroll-alternate;
- _s60-display-time: 2000;
+ _s60-display-time: 5000;
+ _s60-start-delay: 2000;
_s60-scroll-loop: false;
- _s60-start-delay: 0;
_s60-restart-after-update: true;
}
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css Wed Jun 09 09:29:04 2010 +0300
@@ -115,9 +115,9 @@
_s60-scroll-behaviour: scroll-alternate;
- _s60-display-time: 2000;
+ _s60-display-time: 5000;
+ _s60-start-delay: 2000;
_s60-scroll-loop: false;
- _s60-start-delay: 0;
_s60-restart-after-update: true;
}
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css Wed Jun 09 09:29:04 2010 +0300
@@ -115,9 +115,9 @@
_s60-scroll-behaviour: scroll-alternate;
- _s60-display-time: 2000;
+ _s60-display-time: 5000;
+ _s60-start-delay: 2000;
_s60-scroll-loop: false;
- _s60-start-delay: 0;
_s60-restart-after-update: true;
}
--- a/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="rootconfiguration.xml" target="\private\200159c0\install\root_2001f482\hsps\00\">
<setting ref="HSViews/MaxPages"/>
<setting ref="HSViews/Views"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Wed Jun 09 09:29:04 2010 +0300
@@ -1,434 +1,493 @@
+<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Homescreen 1" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="Homescreen 1 widgets" ref="HomescreenPlugins_1">
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 1 page. Customizable</desc>
</setting>
- <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+ <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
<desc>Not customizable!</desc>
</setting>
- <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+ <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+ <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="background path" ref="BackGroundPath" type="string">
+ <setting name="background path" ref="BackGroundPath" type="string">
<desc>Path of the Wallpaper resource. Customizable. </desc>
</setting>
- <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+ <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+ <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Widgets" ref="Plugins" type="sequence">
+ <setting name="Widgets" ref="Plugins" type="sequence">
<desc>Widgets in the Homescreen 1</desc>
- <setting name="Widget" ref="Uid" type="selection">
+ <setting name="Widget" ref="Uid" type="string">
<desc>Widget name</desc>
- <!-- S60 Native Widgets -->
- <option name="Empty" value="0x2001f47f"/>
- <option name="PhoneSetup" value="0x20021195"/>
- <option name="ContactsBar" value="0x20022eba"/>
- <option name="Shortcut" value="0x2001f483"/>
- <option name="Shortcut2" value="0x2001f484"/>
- <option name="Desktop" value="0x20026f4f"/>
- <option name="Topcontacts" value="0x200184cd"/>
- <option name="Topcontacts2" value="0x200184c9"/>
- <option name="ShareOnlineAI3" value="0x20010980"/>
- <option name="wsfwidget" value="0x20026f45"/>
- <option name="Organizer" value="0x2001f481"/>
- <option name="MusicWidget" value="0x10207c18"/>
- <option name="Fmtx" value="0x20021189"/>
- <option name="EmailWidget" value="0x2001e272"/>
- <option name="Profile" value="0x2001cb7c"/>
- <option name="ServiceWidget" value="0x20021383"/>
- <option name="SocialMixer" value="0x2002699f"/>
- <!-- Automatic option listing of WRTs on the release -->
- <option map="DFSFeatures/HomescreenWidgets"></option>
- </setting>
- <setting name="Bundle Identifier" ref="BundleIdentifier" type="selection">
- <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
- <option name="None / Automatic" value="0" />
+ <!--<option map="DFSFeatures/HomescreenWidgets" />-->
+ <option name="Empty" value="0x2001f47f" />
+ <option name="PhoneSetup" value="0x20021195" />
+ <option name="ContactsBar" value="0x20022eba" />
+ <option name="Shortcut" value="0x2001f483" />
+ <option name="Shortcut2" value="0x2001f484" />
+ <option name="Desktop" value="0x20026f4f" />
+ <option name="Topcontacts" value="0x200184cd" />
+ <option name="Topcontacts2" value="0x200184c9" />
+ <option name="ShareOnlineAI3" value="0x20010980" />
+ <option name="wsfwidget" value="0x20026f45" />
+ <option name="Organizer" value="0x2001f481" />
+ <option name="MusicWidget" value="0x10207c18" />
+ <option name="Fmtx" value="0x20021189" />
+ <option name="EmailWidget" value="0x2001e272" />
+ <option name="Profile" value="0x2001cb7c" />
+ <option name="ServiceWidget" value="0x20021383" />
+ <option name="SocialMixer" value="0x2002699f" />
+ <option name="wrtplugin_1" value="0x20022FD4"/>
+ <option name="wrtplugin_2" value="0x20022FD5"/>
+ <option name="wrtplugin_3" value="0x20022FD6"/>
+ <option name="wrtplugin_4" value="0x20022FD7"/>
+ <option name="wrtplugin_5" value="0x20022FD8"/>
+ <option name="wrtplugin_6" value="0x20022FD9"/>
+ <option name="wrtplugin_7" value="0x20022FDA"/>
+ <option name="wrtplugin_8" value="0x20022FDB"/>
+ <option name="wrtplugin_9" value="0x2001CB7D"/>
+ <option name="wrtplugin_10" value="0x2001CB7E"/>
+ <option name="wrtplugin_11" value="0x2001CB7F"/>
+ <option name="wrtplugin_12" value="0x200286EE"/>
</setting>
- <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+ <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+ <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None / Automatic" value="0" />
+ <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+ <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+ <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+ <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+ <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+ <option name="Channel NewsAsia" value="Channel.newsasia"/>
+ <option name="CNN Video" value="com.cnn"/>
+ <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+ <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+ <option name="E!" value="com.moderati.eonline"/>
+ <option name="Bollywood" value="br.org.indt.widget.eros"/>
+ <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+ <option name="Hi5" value="com.hi5.widget.Launcher"/>
+ <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+ <option name="Chat" value="com.nokia.ChatClient"/>
+ <option name="芒果 TV" value="com.imgo.tv"/>
+ <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+ <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+ <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+ <option name="M1TV" value="com.m1tv.basic.widget"/>
+ <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+ <option name="bose" value="com.bose.basic.widget"/>
+ <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+ <option name="Nat Geo" value="com.natgeo"/>
+ <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+ <option name="ontv" value="ontv.cc.on.tv.widget"/>
+ <option name="ovi" value="com.nokia.ovi"/>
+ <option name="Movie Teasers" value="com.movieteasers"/>
+ <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+ <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+ <option name="Social" value="com.nokia.socialmixer.v1"/>
+ <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+ <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+ <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+ <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+ <option name="topApps" value="com.topApps.basic.widget"/>
+ <option name="Tudou" value="com.Tudou.widget"/>
+ <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+ <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+ <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+ <option name="ВеÑти" value="com.vesti.basic.widget"/>
+ <option name="Viasat No" value="no.viasat.widget"/>
+ <option name="Viasat Swe" value="se.viasat.widget"/>
+ <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+ <option name="央广新浪" value="cn.com.sina.3g"/>
+ <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+ <option name="Yle Areena" value="com.tieto.yle"/>
+ <option name="优酷" value="com.youku.s605th.webtv"/>
+ </setting>
+ <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
<desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
- <option name="None" value="0"/>
- <option name="wideimage" value="0x2001f489"/>
- <option name="threerows" value="0x2001f486"/>
- <option name="threetextrows" value="0x2001f487"/>
- <option name="tworows" value="0x2001f488"/>
- <option name="onerow" value="0x2001f480"/>
+ <option name="None" value="0" />
+ <option name="wideimage" value="0x2001f489" />
+ <option name="threerows" value="0x2001f486" />
+ <option name="threetextrows" value="0x2001f487" />
+ <option name="tworows" value="0x2001f488" />
+ <option name="onerow" value="0x2001f480" />
</setting>
- <setting name="locking Status" ref="LockingStatus" type="selection">
+ <setting name="locking Status" ref="LockingStatus" type="selection">
<desc>Locking status for the widget 1 in Homescreen 1 page</desc>
- <option name="None" value="none"/>
- <option name="Locked" value="locked"/>
+ <option name="None" value="none" />
+ <option name="Locked" value="locked" />
</setting>
- <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+ <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
<desc>Customize enabler for desktop/shortcut widget</desc>
- <option name="Not Customize desktop Widget" value="0"/>
- <option name="Customize desktop widget" value="1"/>
+ <option name="Not Customize desktop Widget" value="0" />
+ <option name="Customize desktop widget" value="1" />
</setting>
- <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+ <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
<desc>Customize 1st item in desktop widget</desc>
- <option name="Not Customize 1st shortcut" value="0"/>
- <option name="Customize 1st shortcut" value="1"/>
+ <option name="Not Customize 1st shortcut" value="0" />
+ <option name="Customize 1st shortcut" value="1" />
</setting>
- <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+ <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
- <option name="Application" value="application"/>
- <option name="Bookmark" value="bookmark"/>
- <option name="Shortcut" value="shortcut"/>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
</setting>
- <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+ <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
<desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
</setting>
- <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+ <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+ <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
<desc>Params for shortcut. For example: messaging:msg</desc>
</setting>
- <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+ <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
<desc>Customize 2nd item in desktop widget</desc>
- <option name="Not Customize 2nd shortcut" value="0"/>
- <option name="Customize 2nd shortcut" value="1"/>
+ <option name="Not Customize 2nd shortcut" value="0" />
+ <option name="Customize 2nd shortcut" value="1" />
</setting>
- <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+ <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
- <option name="Application" value="application"/>
- <option name="Bookmark" value="bookmark"/>
- <option name="Shortcut" value="shortcut"/>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
</setting>
- <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+ <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
<desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
</setting>
- <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+ <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+ <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
<desc>Params for shortcut. messaging:msg</desc>
</setting>
- <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+ <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
<desc>Customize 3rd item in desktop widget</desc>
- <option name="Not Customize 3rd shortcut" value="0"/>
- <option name="Customize 3rd shortcut" value="1"/>
+ <option name="Not Customize 3rd shortcut" value="0" />
+ <option name="Customize 3rd shortcut" value="1" />
</setting>
- <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+ <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
- <option name="Application" value="application"/>
- <option name="Bookmark" value="bookmark"/>
- <option name="Shortcut" value="shortcut"/>
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
</setting>
- <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+ <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
<desc>Uid for the application,Menu content Uid for the bookmarks and shortcuts.</desc>
</setting>
- <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+ <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+ <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
<desc>Params for shortcut. messaging:msg</desc>
</setting>
- <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+ <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
<desc>Customize 4th item in desktop widget</desc>
- <option name="Not Customize 4th shortcut" value="0" />
- <option name="Customize 4th shortcut" value="1" />
+ <option name="Not Customize 4th shortcut" value="0" />
+ <option name="Customize 4th shortcut" value="1" />
</setting>
- <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+ <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
<desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
- <option name="Application" value="application" />
- <option name="Bookmark" value="bookmark" />
- <option name="Shortcut" value="shortcut" />
+ <option name="Application" value="application" />
+ <option name="Bookmark" value="bookmark" />
+ <option name="Shortcut" value="shortcut" />
</setting>
- <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+ <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
<desc>Uid for the application, Menu content ids for the bookmarks and shortcuts </desc>
</setting>
- <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+ <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
<desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
</setting>
- <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+ <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
<desc>Params for shortcut. messaging:msg</desc>
</setting>
- <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+ <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+ <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+ <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+ <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+ <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+ <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+ <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+ <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+ <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+ <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+ <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
<desc>Not customizable!</desc>
</setting>
- <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+ <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
<desc>Not customizable!</desc>
</setting>
</setting>
</feature>
- <data>
+<data>
<HomescreenPlugins_1>
<MaxWidgets>6</MaxWidgets>
- <UseEmptyWidgets>true</UseEmptyWidgets>
- <ItemIdEmptyWidgets>hs_qhd_tch_view</ItemIdEmptyWidgets>
- <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
- <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
- <WallpaperPropertyName>path</WallpaperPropertyName>
- <BackGroundPath />
- <Plugins extensionPolicy="replace">
+ <UseEmptyWidgets>true</UseEmptyWidgets>
+ <ItemIdEmptyWidgets>hs_qhd_tch_view</ItemIdEmptyWidgets>
+ <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+ <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+ <WallpaperPropertyName>path</WallpaperPropertyName>
+ <BackGroundPath />
+ <Plugins extensionPolicy="replace">
<Uid>0x2001cb7c</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>locked</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut />
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>locked</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut />
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
- <Plugins>
+ <Plugins>
<Uid>0x20026f4f</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>none</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
- <Plugins>
+ <Plugins>
<Uid>0x10207c18</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>none</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
- <Plugins>
+ <Plugins>
<Uid>0x2001f481</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>none</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
- <Plugins>
+ <Plugins>
<Uid>0x2001f47f</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>none</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
- <Plugins>
+ <Plugins>
<Uid>0x2001f47f</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>none</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
</HomescreenPlugins_1>
</data>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,10 +3,11 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<!--
<ruleml xmlns="http://www.s60.com/xml/ruleml/3">
<rule>True configures ${HomescreenPlugins_1.Plugins} = {% mapBundleIds(@{DFSFeatures.HomescreenWidgets}, @{HomescreenPlugins_1.Plugins}) %}</rule>
<eval_globals>
@@ -32,7 +33,8 @@
return new_plugins
</eval_globals>
- </ruleml>
+ </ruleml>
+-->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_2001f48b\hsps\00\">
<setting ref="HomescreenPlugins_1/MaxWidgets"/>
<setting ref="HomescreenPlugins_1/UseEmptyWidgets"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_2001f48b\hsps\00\">
<setting ref="Homescreen1manifest/PackageVersion"/>
<setting ref="Homescreen1manifest/DeviceFamily"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_2001f48b\xuikon\">
<setting ref="Homescreen1XuikonFolder/FolderCFG"/>
<xsl:stylesheet version="1.0"
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,10 +3,11 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<!--
<ruleml xmlns="http://www.s60.com/xml/ruleml/3">
<rule>True configures ${HomescreenPlugins_2.Plugins} = {% mapBundleIds(@{DFSFeatures.HomescreenWidgets}, @{HomescreenPlugins_2.Plugins}) %}</rule>
<eval_globals>
@@ -33,6 +34,8 @@
return new_plugins
</eval_globals>
</ruleml>
+-->
+
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286e4\hsps\00\">
<setting ref="HomescreenPlugins_2/MaxWidgets"/>
<setting ref="HomescreenPlugins_2/UseEmptyWidgets"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286e4\hsps\00\">
<setting ref="Homescreen2manifest/PackageVersion"/>
<setting ref="Homescreen2manifest/DeviceFamily"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286e4\xuikon\">
<setting ref="Homescreen2XuikonFolder/FolderCFG"/>
<xsl:stylesheet version="1.0"
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,10 +3,11 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<!--
<ruleml xmlns="http://www.s60.com/xml/ruleml/3">
<rule>True configures ${HomescreenPlugins_3.Plugins} = {% mapBundleIds(@{DFSFeatures.HomescreenWidgets}, @{HomescreenPlugins_3.Plugins}) %}</rule>
<eval_globals>
@@ -33,6 +34,8 @@
return new_plugins
</eval_globals>
</ruleml>
+-->
+
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286e5\hsps\00\">
<setting ref="HomescreenPlugins_3/MaxWidgets"/>
<setting ref="HomescreenPlugins_3/UseEmptyWidgets"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286e5\hsps\00\">
<setting ref="Homescreen3manifest/PackageVersion"/>
<setting ref="Homescreen3manifest/DeviceFamily"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -3,8 +3,8 @@
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
- <tag name="target" value="uda"/>
- <tag name="target" value="emmc"/>
+<!-- <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/> -->
<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286e5\xuikon\">
<setting ref="Homescreen3XuikonFolder/FolderCFG"/>
<xsl:stylesheet version="1.0"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.confml Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://www.s60.com/xml/confml/2" name="Banko Homescreen" version="1">
+ <feature ref="BlankoHomescreenPlugins" name="Blanko Homescreen Widgets">
+ <setting ref="Plugins" name="Widgets" type="sequence">
+ <desc>Widgets on Blanko Homescreen</desc>
+ <setting ref="Uid" name="Widget" type="string">
+ <desc>Widget name</desc>
+ <option name="Empty" value="0x2001f47f"/>
+ <option name="wrtplugin_1" value="0x20022FD4"/>
+ <option name="wrtplugin_2" value="0x20022FD5"/>
+ <option name="wrtplugin_3" value="0x20022FD6"/>
+ <option name="wrtplugin_4" value="0x20022FD7"/>
+ <option name="wrtplugin_5" value="0x20022FD8"/>
+ <option name="wrtplugin_6" value="0x20022FD9"/>
+ <option name="wrtplugin_7" value="0x20022FDA"/>
+ <option name="wrtplugin_8" value="0x20022FDB"/>
+ <option name="wrtplugin_9" value="0x2001CB7D"/>
+ <option name="wrtplugin_10" value="0x2001CB7E"/>
+ <option name="wrtplugin_11" value="0x2001CB7F"/>
+ <option name="wrtplugin_12" value="0x200286EE"/>
+ </setting>
+ <setting ref="BundleIdentifier" name="Bundle Identifier" type="string">
+ <desc>Bundle identifier for the (C)WRT widgets. Leave empty if not set.</desc>
+ <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+ <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+ <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+ <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+ <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+ <option name="Channel NewsAsia" value="Channel.newsasia"/>
+ <option name="CNN Video" value="com.cnn"/>
+ <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+ <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+ <option name="E!" value="com.moderati.eonline"/>
+ <option name="Bollywood" value="br.org.indt.widget.eros"/>
+ <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+ <option name="Hi5" value="com.hi5.widget.Launcher"/>
+ <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+ <option name="Chat" value="com.nokia.ChatClient"/>
+ <option name="芒果 TV" value="com.imgo.tv"/>
+ <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+ <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+ <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+ <option name="M1TV" value="com.m1tv.basic.widget"/>
+ <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+ <option name="bose" value="com.bose.basic.widget"/>
+ <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+ <option name="Nat Geo" value="com.natgeo"/>
+ <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+ <option name="ontv" value="ontv.cc.on.tv.widget"/>
+ <option name="ovi" value="com.nokia.ovi"/>
+ <option name="Movie Teasers" value="com.movieteasers"/>
+ <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+ <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+ <option name="Social" value="com.nokia.socialmixer.v1"/>
+ <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+ <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+ <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+ <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+ <option name="topApps" value="com.topApps.basic.widget"/>
+ <option name="Tudou" value="com.Tudou.widget"/>
+ <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+ <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+ <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+ <option name="ВеÑти" value="com.vesti.basic.widget"/>
+ <option name="Viasat No" value="no.viasat.widget"/>
+ <option name="Viasat Swe" value="se.viasat.widget"/>
+ <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+ <option name="央广新浪" value="cn.com.sina.3g"/>
+ <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+ <option name="Yle Areena" value="com.tieto.yle"/>
+ <option name="优酷" value="com.youku.s605th.webtv"/>
+ </setting>
+ <setting ref="TemplateIdentifier" name="Template Identifier" type="selection">
+ <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+ <option name="None" value="0"/>
+ <option name="wideimage" value="0x2001f489"/>
+ <option name="threerows" value="0x2001f486"/>
+ <option name="threetextrows" value="0x2001f487"/>
+ <option name="tworows" value="0x2001f488"/>
+ <option name="onerow" value="0x2001f480"/>
+ </setting>
+ <setting ref="LockingStatus" name="locking Status" type="selection">
+ <desc>Locking status</desc>
+ <option name="None" value="none"/>
+ <option name="Locked" value="locked"/>
+ </setting>
+ </setting>
+ </feature>
+ <data>
+ <!-- <BlankoHomescreenPlugins>
+ <Plugins extensionPolicy="replace"><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+ </BlankoHomescreenPlugins> -->
+ </data>
+</configuration>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286ed\hsps\00\">
+ <setting ref="BlankoHomescreenPlugins/Plugins"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <configuration>
+ <control>
+ <plugins>
+ <xsl:for-each select="BlankoHomescreenPlugins/Plugins">
+ <plugin>
+ <xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+ <xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+ <xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+ <xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+ </plugin>
+ </xsl:for-each>
+ </plugins>
+ </control>
+ </configuration>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286ed\hsps\00\">
+ <setting ref="BlankoHomescreenManifest/PackageVersion"/>
+ <setting ref="BlankoHomescreenManifest/DeviceFamily"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationType"/>
+ <setting ref="BlankoHomescreenManifest/InterfaceUid"/>
+ <setting ref="BlankoHomescreenManifest/ProviderUid"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationUid"/>
+ <setting ref="BlankoHomescreenManifest/FullName"/>
+ <setting ref="BlankoHomescreenManifest/ShortName"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationVersion"/>
+ <setting ref="BlankoHomescreenManifest/ConfigurationFile"/>
+ <setting ref="BlankoHomescreenManifest/UiResourceFile"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <package>
+ <xsl:attribute name="version"><xsl:value-of select="BlankoHomescreenManifest/PackageVersion"/></xsl:attribute>
+ <family>
+ <xsl:value-of select="BlankoHomescreenManifest/DeviceFamily"/>
+ </family>
+ <type>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationType"/>
+ </type>
+ <interfaceuid>
+ <xsl:value-of select="BlankoHomescreenManifest/InterfaceUid"/>
+ </interfaceuid>
+ <provideruid>
+ <xsl:value-of select="BlankoHomescreenManifest/ProviderUid"/>
+ </provideruid>
+ <configurationuid>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationUid"/>
+ </configurationuid>
+ <fullname>
+ <xsl:text>&</xsl:text>
+ <xsl:value-of select="BlankoHomescreenManifest/FullName"/>
+ <xsl:text>;</xsl:text>
+ </fullname>
+ <shortname>
+ <xsl:value-of select="BlankoHomescreenManifest/ShortName"/>
+ </shortname>
+ <version>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationVersion"/>
+ </version>
+ <filexml>
+ <xsl:value-of select="BlankoHomescreenManifest/ConfigurationFile"/>
+ </filexml>
+ <localization>
+ <fileresource>
+ <xsl:value-of select="BlankoHomescreenManifest/UiResourceFile"/>
+ </fileresource>
+ </localization>
+ </package>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.confml has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.gcfml Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+ <tag name="target" value="core"/>
+ <tag name="target" value="rofs2"/>
+ <tag name="target" value="rofs3"/>
+ <tag name="target" value="uda"/>
+ <tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286ed\xuikon\">
+ <setting ref="BlankoHomescreenXuikonFolder/FolderCFG"/>
+ <xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xi="http://www.w3.org/2001/xinclude">
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+ <xsl:template match="configuration/data">
+ <whois>
+ <xsl:attribute name="dude"><xsl:value-of select="BlankoHomescreenXuikonFolder/FolderCFG"/></xsl:attribute>
+ </whois>
+ </xsl:template>
+ </xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286ed/group/bld.inf Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+//Confml and cfgml files for the customization
+// starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby)
+//***********************************
+../conf/view200286ed.confml APP_LAYER_CONFML(view200286ed.confml)
+../conf/view200286ed.gcfml APP_LAYER_GCFML(view200286ed.gcfml)
+../conf/view200286edmanifest.confml APP_LAYER_CONFML(view200286edmanifest.confml)
+../conf/view200286edmanifest.gcfml APP_LAYER_GCFML(view200286edmanifest.gcfml)
+../conf/view200286edxuikon.confml APP_LAYER_CONFML(view200286edxuikon.confml)
+../conf/view200286edxuikon.gcfml APP_LAYER_GCFML(view200286edxuikon.gcfml)
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
--- a/idlehomescreen/inc/xnbitmap.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/inc/xnbitmap.h Wed Jun 09 09:29:04 2010 +0300
@@ -53,6 +53,13 @@
virtual void SetContentBitmaps(CFbsBitmap* aBitmap, CFbsBitmap* aMask) = 0;
/**
+ * Sets content bitmaps from file path.
+ * @since S60 5.2
+ * @param aFilename Bitmap filename.
+ */
+ virtual void SetContentBitmaps( TFileName& aFilename ) = 0;
+
+ /**
* Gets content bitmaps. Ownership is not transferred.
* @since Series 60 3.1
* @param aBitmap Bitmap to draw
@@ -95,6 +102,13 @@
void SetContentBitmaps(CFbsBitmap* aBitmap, CFbsBitmap* aMask);
/**
+ * Sets content bitmaps from file path.
+ * @since S60 5.2
+ * @param aFilename Bitmap filename.
+ */
+ void SetContentBitmaps( TFileName& aFilename );
+
+ /**
* Gets content bitmaps. Ownership is not transferred.
* @since Series 60 3.1
* @param aBitmap Bitmap to draw
--- a/idlehomescreen/inc/xneditmode.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/inc/xneditmode.h Wed Jun 09 09:29:04 2010 +0300
@@ -122,6 +122,13 @@
void HandleScreenDeviceChangedL();
/**
+ * Sets control rect.
+ *
+ * @since Series 60 5.0
+ */
+ void SetClientRect( TRect aRect );
+
+ /**
* Reset the dragging state and update screen
*
* @since Series 60 5.0
--- a/idlehomescreen/inc/xnnewsticker.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/inc/xnnewsticker.h Wed Jun 09 09:29:04 2010 +0300
@@ -36,18 +36,6 @@
{
_LIT8(KType, "newsticker");
-class MXnNewstickerCallbackInterface
- {
- public: // New functions
-
- /**
- * Called when the title has been shown and is now offscreen.
- * @param aTitleIndex The title that has been completely shown.
- */
- virtual void TitleScrolled(TInt aTitleIndex) = 0;
-
- };
-
class MXnNewstickerInterface : public XnComponentInterface::MXnComponentInterface
{
public: // New functions
@@ -100,12 +88,6 @@
* Delete all titles.
*/
virtual void ClearTitles() = 0;
-
- /**
- * Set callback interface.
- * @param aCallback The callback interface pointer.
- */
- virtual void SetCallbackInterfaceL(MXnNewstickerCallbackInterface* aCallback) = 0;
};
}
@@ -177,25 +159,6 @@
*/
void ClearTitles();
- /**
- * Append the SVG title to be shown.
- * @param aByteData The SVG data.
- */
- void AppendSvgTitleL(const TDesC8& aByteData);
-
- /**
- * Insert the SVG title to be shown.
- * @param aByteData The SVG data.
- */
- void InsertSvgTitleL(const TDesC8& aByteData, TInt aIndex);
-
- /**
- * Set callback interface.
- * @param aCallback The callback interface pointer.
- */
- void SetCallbackInterfaceL(
- XnNewstickerInterface::MXnNewstickerCallbackInterface* aCallback);
-
/**
* Create a component interface according to the given type.
* @param aType Type of the interface to create
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Wed Jun 09 09:29:04 2010 +0300
@@ -27,6 +27,7 @@
#include <AknsUtils.h>
#include <gulicon.h>
#include <eiklbo.h> // MEikListBoxObserver
+#include <aknsfld.h> // MAdaptiveSearchTextObserver
// FORWARD DECLARATIONS
class CWmPlugin;
@@ -47,7 +48,8 @@
* @class CWmMainContainer WmMainContainer.h
*/
NONSHARABLE_CLASS( CWmMainContainer ) : public CCoeControl,
- public MEikListBoxObserver
+ public MEikListBoxObserver,
+ public MAdaptiveSearchTextObserver
{
public: // constructors and destructor
@@ -301,6 +303,14 @@
CEikListBox* aListBox,
TListBoxEvent aEventType);
+private: // from MAdaptiveSearchTextObserver
+ /**
+ * Adaptive search observer interface.
+ *
+ * @see MAdaptiveSearchTextObserver::AdaptiveSearchTextChanged
+ */
+ void AdaptiveSearchTextChanged( CAknSearchField* aSearchField );
+
private: // New functions
void AddControlL( CCoeControl* aControl, TInt aControlId );
--- a/idlehomescreen/widgetmanager/inc/wmwidgetloaderao.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetloaderao.h Wed Jun 09 09:29:04 2010 +0300
@@ -35,7 +35,7 @@
/**
* Active object to load widgets into list
*/
-NONSHARABLE_CLASS( CWmWidgetLoaderAo ) : public CAsyncOneShot
+NONSHARABLE_CLASS( CWmWidgetLoaderAo ) : public CActive
{
public:
@@ -78,14 +78,25 @@
protected: // from CActive
/**
- * AO body
- */
+ * Handles an active object's request completion event.
+ *
+ * @see CActive::RunL
+ */
void RunL();
/**
- * AO error handler
+ * RunError
+ *
+ * @see CActive::RunError
*/
TInt RunError( TInt aError );
+
+ /**
+ * Implements cancellation of an outstanding request.
+ *
+ * @see CActive::DoCancel
+ */
+ void DoCancel();
private:
@@ -93,6 +104,11 @@
* connects to wrt registry
*/
void OpenSessionL();
+
+ /**
+ * disconnects from wrt registry
+ */
+ void CloseSession();
/**
* loads widgets into the listbox
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -931,7 +931,8 @@
CAknSearchField::EAdaptiveSearch,
0, KTextLimit );
AddControlL( iFindbox, EFindBox );
-
+ iFindbox->AddAdaptiveSearchTextObserverL(this);
+
UpdateFocusMode();
StartLoadingWidgetsL();
}
@@ -1643,6 +1644,17 @@
}
}
+// ----------------------------------------------------
+// CWmMainContainer::AdaptiveSearchTextChanged
+// ----------------------------------------------------
+//
+void CWmMainContainer::AdaptiveSearchTextChanged(
+ CAknSearchField* aSearchField )
+ {
+ // fix for ou1cimx1#376818. aknfind will call drawDeferred for lisbox.
+ // We need to be sure that button area is also drawn.
+ DrawDeferred();
+ }
// End of File
--- a/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -55,7 +55,7 @@
CWmWidgetLoaderAo::CWmWidgetLoaderAo(
CWmPlugin& aWmPlugin,
CWmListBox& aTargetList )
- : CAsyncOneShot( EPriorityHigh )
+ : CActive( EPriorityNormal )
, iWmPlugin( aWmPlugin )
, iWidgetsList( aTargetList )
{
@@ -70,6 +70,7 @@
//
void CWmWidgetLoaderAo::ConstructL()
{
+ CActiveScheduler::Add( this );
}
// ---------------------------------------------------------------------------
@@ -81,9 +82,9 @@
// cancel ongoing operation
Cancel();
- // cleanup run data
+ // cleanup and close session
Cleanup();
-
+ CloseSession();
}
// ---------------------------------------------------------------------------
@@ -94,10 +95,14 @@
{
if ( IsActive() )
{
- // cancel ongoing process
- Cancel();
+ return; // already active
}
- Call();
+
+ // call itself
+ iStatus = KRequestPending;
+ TRequestStatus *pS = (&iStatus);
+ User::RequestComplete( pS, KErrNone );
+ SetActive();
}
// ---------------------------------------------------------------------------
@@ -108,6 +113,7 @@
{
DoLoadWidgetsL();
Cleanup();
+ CloseSession();
}
// ---------------------------------------------------------------------------
@@ -117,10 +123,19 @@
TInt CWmWidgetLoaderAo::RunError( TInt /*aError*/ )
{
Cleanup();
+ CloseSession();
return KErrNone;
}
// ---------------------------------------------------------
+// CWmWidgetLoaderAo::DoCancel
+// ---------------------------------------------------------
+//
+void CWmWidgetLoaderAo::DoCancel()
+ {
+ }
+
+// ---------------------------------------------------------
// CWmWidgetLoaderAo::DoLoadWidgetsL
// ---------------------------------------------------------
//
@@ -280,6 +295,22 @@
}
// ---------------------------------------------------------
+// CWmWidgetLoaderAo::CloseSession
+// ---------------------------------------------------------
+//
+void CWmWidgetLoaderAo::CloseSession()
+ {
+ // disconnect widget registry
+ if ( iWidgetRegistry )
+ {
+ iWidgetRegistry->Disconnect();
+ iWidgetRegistry->Close();
+ delete iWidgetRegistry;
+ iWidgetRegistry = NULL;
+ }
+ }
+
+// ---------------------------------------------------------
// CWmWidgetLoaderAo::AddWidgetDataL
// ---------------------------------------------------------
//
@@ -345,15 +376,6 @@
{
iLoading = EFalse;
- // disconnect widget registry
- if ( iWidgetRegistry )
- {
- iWidgetRegistry->Disconnect();
- iWidgetRegistry->Close();
- delete iWidgetRegistry;
- iWidgetRegistry = NULL;
- }
-
// delete widget order and references to it
for( TInt i=0; i<iWidgetsList.WidgetDataCount(); ++i )
{
--- a/idlehomescreen/xmluicontroller/group/aixmluimain.mmp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/group/aixmluimain.mmp Wed Jun 09 09:29:04 2010 +0300
@@ -46,12 +46,9 @@
SOURCE aixmluiutils.cpp
SOURCE xmluicontrollerpanic.cpp
SOURCE databuffertransactionelement.cpp
-SOURCE newstickercallbackhandler.cpp
SOURCE csspropertymap.cpp
SOURCE aipolicyelement.cpp
SOURCE policyevaluator.cpp
-SOURCE psobserver.cpp
-SOURCE pmodtiterator.cpp
SOURCE contentpublisher.cpp
SOURCE globalqueryhandler.cpp
SOURCE onlineofflinehelper.cpp
@@ -82,11 +79,10 @@
LIBRARY euser.lib efsrv.lib
LIBRARY ecom.lib centralrepository.lib
-LIBRARY fbscli.lib apparc.lib cone.lib
+LIBRARY apparc.lib cone.lib
LIBRARY eikcore.lib eikcoctl.lib egul.lib avkon.lib aknskins.lib
LIBRARY xn3layoutengine.lib xn3utils.lib xn3domdocument.lib
LIBRARY aiidleint.lib aiutils.lib
-LIBRARY imageconversion.lib
LIBRARY apgrfx.lib
LIBRARY bafl.lib
LIBRARY flogger.lib
--- a/idlehomescreen/xmluicontroller/inc/aixmluiconstants.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/aixmluiconstants.h Wed Jun 09 09:29:04 2010 +0300
@@ -113,6 +113,8 @@
_LIT8( KNewsTicker, "newsticker" );
_LIT8( KAnimation, "animation" );
_LIT8( KTextEditor, "texteditor" );
+ _LIT8( KData, "data" );
+ _LIT8( KTitle, "title" );
}
} // End of namespace xml
--- a/idlehomescreen/xmluicontroller/inc/contentrenderer.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/contentrenderer.h Wed Jun 09 09:29:04 2010 +0300
@@ -24,7 +24,6 @@
#include <e32hashtab.h>
// User includes
-#include "xnnewsticker.h"
#include "aicontentobserver.h"
#include "xnproperty.h"
@@ -49,7 +48,6 @@
class MTransaction;
class CAppUi;
class CXmlNodeIdGenerator;
- class CNewstickerCallbackHandler;
class CCssPropertyMap;
class CPolicyEvaluator;
class TAiPolicyElement;
@@ -66,8 +64,7 @@
* @lib AiXmlUiMain
*/
class CContentRenderer : public CBase,
- public MAiContentObserver,
- public XnNewstickerInterface::MXnNewstickerCallbackInterface
+ public MAiContentObserver
{
public:
// Constructors and destructor
@@ -244,8 +241,6 @@
void SendRefreshContentEventL();
TBool IsParentNewsticker( CXnNodeAppIf& aTarget );
-
- void RegisterNewstickerCallbackInterfaceL( CXnNodeAppIf& aTarget );
void ProcessContentChangesL( MTransaction& aTr );
void ProcessContentChangeL( TAiPolicyElement& aElement );
@@ -258,13 +253,6 @@
MAiContentObserver::TValueType aValueType );
private:
- // From XnNewstickerInterface::MXnNewstickerCallbackInterface
-
- void TitleScrolled(TInt aTitleIndex);
-
- void TitleToScroll(TInt aTitleIndex);
-
-private:
// data
/** Transaction stack, Owned. */
@@ -285,12 +273,6 @@
CPeriodic* iTimer;
/** Fw event handler, Not owned. */
MAiFwEventHandler* iFwEventHandler;
- /** Newsticker callback handler, Owned */
- CNewstickerCallbackHandler* iCallbackHandler;
- /** Pointer descriptor to newsticker plugin name */
- TPtrC iNTPublisher;
- /** Newsticker element property class, Owned */
- HBufC* iNTClass;
/** CSS property map, Owned. */
CCssPropertyMap* iPropertyMap;
/** Publishing policy evaluator, Owned. */
--- a/idlehomescreen/xmluicontroller/inc/databuffertransactionelement.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/databuffertransactionelement.h Wed Jun 09 09:29:04 2010 +0300
@@ -57,6 +57,18 @@
* @param aData - the content.
*/
void InitializeL(CXnNodeAppIf& aTarget, const TDesC8& aData);
+
+ /**
+ * Initializes this transaction element to publish content aData
+ * to node aTarget.
+ *
+ * @param aTarget - the target of publishing.
+ * @param aData - the content.
+ * @param aCid - the content id.
+ * @param aIndex - the content index.
+ */
+ void InitializeL(CXnNodeAppIf& aTarget, const TDesC8& aData,
+ const TDesC& aCid, TInt aIndex);
/**
* Checks if given content type is supported by target ui element.
@@ -86,10 +98,19 @@
private: // Data
/**
- * New content.
+ * New content, owned.
+ */
+ HBufC8* iNewData;
+
+ /**
+ * Content id, owned.
*/
- TPtrC8 iNewData;
-
+ HBufC* iCid;
+
+ /*
+ * Content index
+ */
+ TInt iIndex;
};
} // namespace AiXmlUiController
--- a/idlehomescreen/xmluicontroller/inc/dynamicthememodifier.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This file contains the header file of the CDynamicThemeModifier class.
-*
-*/
-
-
-#ifndef __DYNAMICTHEMEMODIFIER_H__
-#define __DYNAMICTHEMEMODIFIER_H__
-
-// INCLUDES
-#include <e32base.h>
-#include <centralrepository.h>
-#include <cenrepnotifyhandler.h>
-//#include <xnclient.h>
-//#include <xncontentaccessclient.h>
-//#include <xnrequestclient.h>
-//#include <xnresult.h>
-
-
-//class MAiPSPropertyObserver;
-
-namespace AiXmlUiController
-{
-
-// CLASS DECLARATION
-
-/**
-* This class updates the theme dynamically as it is being somehow modified.
-*
-* It connects to XUIKON Content Access API and modifies e.g. NT visibility
-* in theme level as user changes appropriate setting in GS. Appropriate CenRep
-* keys are being observed and theme modifications are launched based on changes
-* in those keys.
-*
-* @since S60 3.2
-*/
-class CDynamicThemeModifier : public CBase,
- public MCenRepNotifyHandlerCallback,
- public MXnThemeManagementServiceObserver,
- public MXnContentAccessServiceObserver,
- public MXnClientRequestServiceObserver
-
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CDynamicThemeModifier* NewL();
-
- /**
- * Destructor.
- */
- ~CDynamicThemeModifier();
-
-
- private:
-
- /**
- * C++ default constructor.
- */
- CDynamicThemeModifier();
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
-
- private: // New methods
-
- /**
- * Load AI2 themes.
- */
- void LoadThemesL();
-
- /**
- * Load settings from active theme.
- */
- void LoadSettingsFromThemeL();
-
- /**
- * Handle NT visibility in theme.
- * @param ETrue for showing NewsTicker, EFalse for hiding it.
- */
- void EnableNewsTickerL( TBool aEnabled );
-
-
- private: // From base classes
-
- void HandleXnClientMessage( TXnServiceCompletedMessage aMessage );
- void HandleXnRequestClientMessage( TXnServiceCompletedMessage /*aMessage*/ ) {};
- void XnSettingsUpdated() {};
- void HandleNotifyInt( TUint32 aId, TInt aNewValue );
-
-
-
- private: // Data
-
- CArrayPtrFlat<CXnODT>* iThemeArray;
- CXnClient* iXnClient;
- CXnContentAccessClient* iXnContentAccessClient;
- CXnRequestClient* iXnRequestClient;
- CXnResult* iXnResult;
- CXnDomDocument* iDomDocument;
- CXnODT* iOdt;
- CRepository* iNTCenRep;
- CRepository* iAiCenRep;
- CCenRepNotifyHandler* iNTCenRepObserver;
- TInt iNumberOfHeaders;
- TInt iEnabledInCenRep;
-
- };
-
-} // namespace
-
-#endif // __DYNAMICTHEMEMODIFIER_H__
-
-// End of File
--- a/idlehomescreen/xmluicontroller/inc/imagetransactionelement.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/imagetransactionelement.h Wed Jun 09 09:29:04 2010 +0300
@@ -23,7 +23,6 @@
class CGulIcon;
class CXnNodeAppIf;
-class RFile;
namespace AiUtility
{
@@ -31,8 +30,7 @@
}
namespace AiXmlUiController
-{
-class CKamikazeImageDecoder;
+{
/**
* @ingroup group_xmluicontroller
@@ -88,16 +86,17 @@
* Icon to be published.
* Own.
*/
- CGulIcon* iNewIcon;
-
+ CGulIcon* iIcon;
+
/**
- * Asynchronous image decoder. Executed and
- * self destroyed when decoding is ready. Not own.
+ * Icon filename.
*/
- CKamikazeImageDecoder* iImageDecoder;
-
+ TFileName iFilename;
};
} // namespace AiXmlUiController
#endif // C_IMAGETRANSACTIONELEMENT_H
+
+// End of file
+
--- a/idlehomescreen/xmluicontroller/inc/mpscallback.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Callback for Publish & Subscribe observation
-*
-*/
-
-
-#ifndef M_PSCALLBACK_H
-#define M_PSCALLBACK_H
-
-#include <e32base.h>
-
-namespace AiXmlUiController
-{
-
-class MPSCallback
- {
- public:
-
- /**
- * Callback method for P&S observer.
- * Called when appropriate value has been updated.
- * @param aKey Key that has been observed.
- * @param aValue New Value
- */
- virtual void ValueUpdatedL( TInt aKey, TInt aValue ) = 0;
-
- protected:
-
- /**
- * Protected destructor prevents deletion through this interface.
- */
- MPSCallback() {};
- };
-
-} // namespace AiXmlUiController
-
-#endif // M_PSCALLBACK_H
--- a/idlehomescreen/xmluicontroller/inc/newstickercallbackhandler.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Callback handler of newsticker component callbacks
-*
-*/
-
-
-#ifndef C_NEWSTICKERCALLBACKHANDLER_H
-#define C_NEWSTICKERCALLBACKHANDLER_H
-
-
-#include <e32base.h>
-
-class MAiFwEventHandler;
-
-namespace AiXmlUiController
-{
-
-/**
- * @ingroup group_xmluicontroller
- *
- * Helper class to handle newsticker component callbacks.
- *
- * @lib AiXmlUiMain
- */
-class CNewstickerCallbackHandler : public CBase
- {
-
-public:
-
- static CNewstickerCallbackHandler* NewLC( MAiFwEventHandler& aFwEventHandler );
-
- virtual ~CNewstickerCallbackHandler();
-
- /**
- * Sends TitleScrolled event to newsticker plugin
- *
- * @param aPublisherName Plugin name
- * @param aPublishingClass content selector
- * @param aIndex Index of the scrolled title
- */
- void TitleScrolledL( const TDesC& aPublisherName,
- const TDesC& aPublishingClass,
- TInt aIndex );
-
- /**
- * Sends TitleToScroll event to newsticker plugin
- *
- * @param aPublisherName Plugin name
- * @param aPublishingClass content selector
- * @param aIndex Index of the scrolled title
- */
- void TitleToScrollL( const TDesC& aPublisherName,
- const TDesC& aPublishingClass,
- TInt aIndex );
-
-private:
-
- CNewstickerCallbackHandler( MAiFwEventHandler& aFwEventHandler );
-
- void SendEventToNewstickerPluginL( const TDesC& aEvent,
- const TDesC& aPublisherName,
- const TDesC& aPublishingClass,
- TInt aIndex);
-
-private: // data
-
- /**
- * Event handler for events
- */
- MAiFwEventHandler& iFwEventHandler;
-
- /**
- * Event buffer.
- * Own.
- */
- HBufC* iEventBuffer;
-
- };
-
-} // namespace AiXmlUiController
-
-#endif // C_NEWSTICKERCALLBACKHANDLER_H
--- a/idlehomescreen/xmluicontroller/inc/pmodtiterator.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: ODT iterator.
-*
-*/
-
-
-
-#ifndef C_PMODTITERATOR_H
-#define C_PMODTITERATOR_H
-
-// INCLUDES
-#include <e32base.h>
-
-
-// FORWARD DECLARATIONS
-class CXnNodeAppIf;
-
-
-// CLASS DECLARATION
-
-/**
-* @ingroup group_xmluicontroller
-*
-* Depth iterator walks through the dom tree using the depth first
-* principle.
-*
-* @lib presentationmanager.lib
-* @since S60 v5.0
-*/
-class CPmODTIterator: public CBase
- {
- public:
- static CPmODTIterator* NewL( CXnNodeAppIf& aRootNode );
-
- virtual ~CPmODTIterator();
-
- public:
-
- /**
- * Returns the first node of the dom tree.
- *
- * @since S60 v5.0
- * @return First node.
- */
- CXnNodeAppIf* First();
-
- /**
- * Returns the next node according to depth first principle.
- *
- * @since S60 v5.0
- * @return Next node.
- */
- CXnNodeAppIf* NextL();
-
- /**
- * Skips the current node branch and returns next sibling
- * or parent's sibling. Returns NULL if no nodes left.
- *
- * @since S60 v5.0
- * @return Sibling node.
- */
- CXnNodeAppIf* SkipBranchL();
-
- private:
-
- CPmODTIterator( CXnNodeAppIf& aRootNode );
-
- void ConstructL();
-
- /**
- * Push node to stack.
- * @param aNode Node to push
- */
- void PushL( CXnNodeAppIf& aNode );
-
- /**
- * Pop node from the stack.
- * @return Pointer to node
- */
- CXnNodeAppIf* Pop();
-
- private:
- /**
- * Follow tree hierarchy with stack
- * Own.
- */
- RPointerArray<CXnNodeAppIf> iDepthLevel;
-
- /**
- * First node
- * Own.
- */
- CXnNodeAppIf* iFirst;
-
- /**
- * Current node.
- * Own.
- */
- CXnNodeAppIf* iCurrent;
-
- };
-
-#endif // C_PMODTITERATOR_H
--- a/idlehomescreen/xmluicontroller/inc/psobserver.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Observer for changes in Publish & Subscribe keys
-*
-*/
-
-
-#ifndef C_PSOBSERVER_H
-#define C_PSOBSERVER_H
-
-#include <e32property.h>
-#include <e32base.h>
-
-
-namespace AiXmlUiController
-{
-
-class MPSCallback;
-
-/**
-* @ingroup group_xmluicontroller
-*
-* Observer for changes in Publish & Subcribe keys
-*
-* @lib AiXmlUiMain
-*/
-class CPSObserver : public CActive
- {
- public: // Constructors and destructor
-
- static CPSObserver* NewL( MPSCallback& aCallback, TUid aCategory, TInt aKey );
-
- virtual ~CPSObserver();
-
- /**
- * Returns the current value of the monitored
- * P&S key.
- *
- * @param aValue Value is placed here
- *
- * @return KErrNone if succesfull
- */
- TInt GetValue( TInt &aValue ) const;
-
- private:
-
- CPSObserver( MPSCallback& aCallback, TUid aCategory, TInt aKey );
- void ConstructL();
-
-
- private: // from CActive
-
- void RunL();
- void DoCancel();
- TInt RunError();
-
-
- private: // Data
-
- RProperty iProperty;
- MPSCallback& iCallback;
- TUid iCategory;
- TInt iKey;
-
- };
-
-} // namespace AiXmlUiController
-
-#endif // C_PSOBSERVER_H
-
-// End of File
--- a/idlehomescreen/xmluicontroller/inc/transactionfactory.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/transactionfactory.h Wed Jun 09 09:29:04 2010 +0300
@@ -64,56 +64,74 @@
*
* @param aTarget the target node of the transaction element
* @param aText the text to update
+ * @param aPriority Priority
*/
- virtual MTransactionElement*
- CreateTextTransactionElementL( CXnNodeAppIf& aTarget,
- const TDesC& aText,
- TInt aPriority ) = 0;
+ virtual MTransactionElement* CreateTextTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC& aText, TInt aPriority ) = 0;
/**
* Creates a new data buffer transaction element.
*
* @param aTarget the traget node of the transaction element
* @param aData the data to update
+ * @param aPriority Priority
+ * @param aCid Content selector id
+ * @param aIndex Content index
*/
- virtual MTransactionElement*
- CreateDataBufferTransactionElementL( CXnNodeAppIf& aTarget,
- const TDesC8& aData,
- TInt aPriority ) = 0;
-
+ virtual MTransactionElement* CreateDataBufferTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC8& aData, TInt aPriority, const TDesC& aCid, TInt aIndex ) = 0;
+
+ /**
+ * Creates a new data buffer transaction element.
+ *
+ * @param aTarget the traget node of the transaction element
+ * @param aData the data to update
+ * @param aPriority Priority
+ */
+ virtual MTransactionElement* CreateDataBufferTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC8& aData, TInt aPriority ) = 0;
+
/**
* Creates a new empty content transaction element.
*
* @param aTarget the target node of the transaction element
* @param aText the text to update
*/
- virtual MTransactionElement*
- CreateEmptyContentTransactionElementL( CXnNodeAppIf& aTarget,
- TInt aIndex ) = 0;
+ virtual MTransactionElement* CreateEmptyContentTransactionElementL(
+ CXnNodeAppIf& aTarget, TInt aIndex ) = 0;
/**
* Creates a new image transaction element.
*
* @param aTarget the target node of the transaction element
* @param aIcon the icon to update. Ownership transferred.
+ * @param aPriority Priority
*/
- virtual MTransactionElement*
- CreateImageTransactionElementL( CXnNodeAppIf& aTarget,
- CGulIcon* aIcon,
- TInt aPriority ) = 0;
+ virtual MTransactionElement* CreateImageTransactionElementL(
+ CXnNodeAppIf& aTarget, CGulIcon* aIcon, TInt aPriority ) = 0;
/**
* Creates a new image transaction element.
*
* @param aTarget the target node of the transaction element
* @param aFile the file to read image data from.
+ * @param aPriority Priority
*/
- virtual MTransactionElement*
- CreateImageTransactionElementL( CXnNodeAppIf& aTarget,
- RFile& aFile,
- TInt aPriority ) = 0;
+ virtual MTransactionElement* CreateImageTransactionElementL(
+ CXnNodeAppIf& aTarget, RFile& aFile, TInt aPriority ) = 0;
/**
+ * Creates a new newsticker transaction element.
+ *
+ * @param aTarget the target node of the transaction element
+ * @param aText the text to update
+ * @param aPriority Priority
+ * @param aIndex Newsticker title index
+ */
+ virtual MTransactionElement* CreateNewsTickerTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC& aText, TInt aPriority, TInt aIndex ) = 0;
+
+ /**
* Releases a transaction element.
*
* @param aElement the element to release.
@@ -128,17 +146,16 @@
* @param aContentType the content type
* @return ETrue if content type is supported, otherwise EFalse.
*/
- virtual TBool IsSupported( CXnNodeAppIf& aTarget,
- const TDesC8& aContentType ) = 0;
+ virtual TBool IsSupported(
+ CXnNodeAppIf& aTarget, const TDesC8& aContentType ) = 0;
protected:
- ~MTransactionFactory(){};
-
+ ~MTransactionFactory(){};
};
} // namespace AiXmlUiController
#endif // M_TRANSACTIONFACTORY_H
-// End of File
\ No newline at end of file
+// End of File
--- a/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h Wed Jun 09 09:29:04 2010 +0300
@@ -60,36 +60,27 @@
void ReleaseTransaction( MTransaction* aTransaction );
- MTransactionElement* CreateTextTransactionElementL( CXnNodeAppIf& aTarget,
- const TDesC& aText,
- TInt aPriority );
-
+ MTransactionElement* CreateTextTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC& aText, TInt aPriority );
+
+ MTransactionElement* CreateDataBufferTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC8& aData, TInt aPriority );
+
MTransactionElement* CreateDataBufferTransactionElementL(
- CXnNodeAppIf& aTarget,
- const TDesC8& aData,
- TInt aPriority );
-
- MTransactionElement* CreateEmptyContentTransactionElementL( CXnNodeAppIf& aTarget,
- TInt aIndex );
+ CXnNodeAppIf& aTarget, const TDesC8& aData, TInt aPriority,
+ const TDesC& aCid, TInt aIndex );
+
+ MTransactionElement* CreateEmptyContentTransactionElementL(
+ CXnNodeAppIf& aTarget, TInt aIndex );
+
+ MTransactionElement* CreateImageTransactionElementL(
+ CXnNodeAppIf& aTarget, CGulIcon* aIcon, TInt aPriority );
+
+ MTransactionElement* CreateImageTransactionElementL(
+ CXnNodeAppIf& aTarget, RFile& aFile, TInt aPriority );
- MTransactionElement* CreateImageTransactionElementL( CXnNodeAppIf& aTarget,
- CGulIcon* aIcon,
- TInt aPriority );
-
- MTransactionElement* CreateImageTransactionElementL( CXnNodeAppIf& aTarget,
- RFile& aFile,
- TInt aPriority );
-
- /**
- * @param aTarget
- * @param aText new text
- * @param aPriority
- * @param aIndex Index of the news ticker element updated
- */
- MTransactionElement* CreateNewsTickerTransactionElementL( CXnNodeAppIf& aTarget,
- const TDesC& aText,
- TInt aPriority,
- TInt aIndex );
+ MTransactionElement* CreateNewsTickerTransactionElementL(
+ CXnNodeAppIf& aTarget, const TDesC& aText, TInt aPriority, TInt aIndex );
void ReleaseTransactionElement( MTransactionElement* aElement );
--- a/idlehomescreen/xmluicontroller/inc/xmluicontroller.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/inc/xmluicontroller.h Wed Jun 09 09:29:04 2010 +0300
@@ -246,9 +246,6 @@
static TInt ExitTimerCallBack( TAny *aSelf );
- void GetContentItemL( CXnNodeAppIf& aNode,
- RAiSettingsItemArray& aSettings, HBufC*& aItemName );
-
void GetConfigurationsL( CXnNodeAppIf& aNode,
RAiSettingsItemArray& aSettings, const TDesC& aConfOwner );
--- a/idlehomescreen/xmluicontroller/src/appui.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/appui.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -43,7 +43,6 @@
#include "aixuikoneventhandler.h"
#include "aixmluiconstants.h"
#include "contentrenderer.h"
-#include "psobserver.h"
#include "aicontentmodel.h"
#include "aiuiidleintegration.h"
--- a/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/contentrenderer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -35,14 +35,12 @@
#include "aixmluiconstants.h"
#include "aifweventhandler.h"
#include "databuffertransactionelement.h"
-#include "newstickercallbackhandler.h"
#include "newstickertransactionelement.h"
#include "csspropertymap.h"
#include "policyevaluator.h"
#include "debug.h"
#include "xnuiengineappif.h"
#include "xnnodeappif.h"
-#include "xncomponentnodeimpl.h"
#include "xnproperty.h"
#include "mxncomponentinterface.h"
#include "xntext.h"
@@ -50,6 +48,7 @@
#include "xntype.h"
#include "xnmenuadapter.h"
#include "xnlistquerydialogadapter.h"
+#include "xnnewsticker.h"
#include "mxncomponentinterface.h"
#include "aistrcnv.h"
#include "contentprioritymap.h"
@@ -390,12 +389,9 @@
iRefreshableUiElements.ResetAndDestroy();
- delete iNTClass;
-
delete iPropertyMap;
- delete iContentPriorityMap;
- delete iCallbackHandler;
+ delete iContentPriorityMap;
}
// ----------------------------------------------------------------------------
@@ -987,8 +983,7 @@
MTransactionElement* element( NULL );
if ( IsParentNewsticker( *target ) )
- {
- // Register callback interface for newsticker
+ {
CXnNodeAppIf *parent( target->ParentL() );
if( !parent )
@@ -996,11 +991,6 @@
return KErrNotFound;
}
- RegisterNewstickerCallbackInterfaceL( *parent );
-
- iNTPublisher.Set( info.Name() );
- iNTClass = AiUtility::CopyToBufferL( iNTClass, nodeId );
-
element = iFactory->CreateNewsTickerTransactionElementL(
*target, aText, priority, aIndex );
}
@@ -1077,8 +1067,7 @@
// Publish icon
retval = PublishIconL( aPlugin, nodeId, icon, aIndex );
}
- else if ( type == KContentTypeImageSvg ||
- type == KContentTypeData )
+ else if ( type == KContentTypeImageSvg || type == KContentTypeData )
{
// Publish data
retval = PublishDataL( aPlugin, nodeId, aBuf, type, aIndex );
@@ -1135,24 +1124,7 @@
}
if ( AllowPublishByPriority( *target, priority ) )
- {
- // Check if target is newsticker
- if ( IsParentNewsticker( *target ) )
- {
- // Register callback interface
- CXnNodeAppIf *parent( target->ParentL() );
-
- if( !parent )
- {
- return KErrNotFound;
- }
-
- RegisterNewstickerCallbackInterfaceL( *parent );
-
- iNTPublisher.Set( info.Name() );
- iNTClass = AiUtility::CopyToBufferL( iNTClass, nodeId );
- }
-
+ {
// Create transaction element for file
MTransactionElement* element =
iFactory->CreateImageTransactionElementL(
@@ -1225,21 +1197,6 @@
return KErrAccessDenied;
}
- if ( IsParentNewsticker( *target ) )
- {
- CXnNodeAppIf *parent( target->ParentL() );
-
- if( !parent )
- {
- return KErrNotFound;
- }
-
- RegisterNewstickerCallbackInterfaceL( *parent );
-
- iNTPublisher.Set( info.Name() );
- iNTClass = AiUtility::CopyToBufferL( iNTClass, nodeId );
- }
-
if( target->Type()->Type() ==
XnListQueryDialogInterface::MXnListQueryDialogInterface::Type())
{
@@ -1480,23 +1437,6 @@
return KErrAccessDenied;
}
- // Special handling of newsticker
- if ( IsParentNewsticker( *target ) )
- {
- // Register callback interface
- CXnNodeAppIf *parent( target->ParentL() );
-
- if( !parent )
- {
- return KErrNotFound;
- }
-
- RegisterNewstickerCallbackInterfaceL( *parent );
-
- iNTPublisher.Set( info.Name() );
- iNTClass = AiUtility::CopyToBufferL( iNTClass, aCid );
- }
-
MTransactionElement* element =
iFactory->CreateImageTransactionElementL(
*target, aIcon, priority );
@@ -1561,37 +1501,23 @@
return KErrAccessDenied;
}
- if( aContentType == KContentTypeData )
- {
- CXnComponent& component( target->ParentL()->Component() );
- component.SetDataL( aData, aCid, aIndex );
- return KErrNone;
- }
-
if ( !CDataBufferTransactionElement::IsSupported( *target, aContentType ) )
{
return KErrNotSupported;
}
- // Handle newsticker
- if ( IsParentNewsticker( *target ) )
+ MTransactionElement* element( NULL );
+
+ if ( aContentType == KContentTypeData )
{
- CXnNodeAppIf *parent( target->ParentL() );
-
- if( !parent )
- {
- return KErrNotFound;
- }
-
- RegisterNewstickerCallbackInterfaceL( *parent );
-
- iNTPublisher.Set( info.Name() );
- iNTClass = AiUtility::CopyToBufferL( iNTClass, aCid );
+ element = iFactory->CreateDataBufferTransactionElementL(
+ *target, aData, priority, aCid, aIndex );
}
-
- MTransactionElement* element =
- iFactory->CreateDataBufferTransactionElementL(
- *target, aData, priority );
+ else
+ {
+ element = iFactory->CreateDataBufferTransactionElementL(
+ *target, aData, priority );
+ }
if ( aResource )
{
@@ -1919,35 +1845,7 @@
// Continue content refresh for next ui element.
StartContentRefresh();
}
-
-// ----------------------------------------------------------------------------
-// CContentRenderer::TitleScrolled
-//
-// ----------------------------------------------------------------------------
-//
-void CContentRenderer::TitleScrolled( TInt aTitleIndex )
- {
- if ( iCallbackHandler )
- {
- TRAP_IGNORE( iCallbackHandler->TitleScrolledL(
- iNTPublisher, *iNTClass, aTitleIndex ) );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CContentRenderer::TitleToScroll
-//
-// ----------------------------------------------------------------------------
-//
-void CContentRenderer::TitleToScroll( TInt aTitleIndex )
- {
- if ( iCallbackHandler )
- {
- TRAP_IGNORE( iCallbackHandler->TitleToScrollL(
- iNTPublisher, *iNTClass, aTitleIndex ) );
- }
- }
-
+
// ----------------------------------------------------------------------------
// CContentRenderer::IsParentNewsticker
//
@@ -1968,34 +1866,6 @@
return ( type == XnNewstickerInterface::MXnNewstickerInterface::Type() );
}
-
-// ----------------------------------------------------------------------------
-// CContentRenderer::RegisterNewstickerCallbackInterfaceL
-//
-// ----------------------------------------------------------------------------
-//
-void CContentRenderer::RegisterNewstickerCallbackInterfaceL(
- CXnNodeAppIf& aTarget )
- {
- if ( !iCallbackHandler )
- {
- // Instantiate callback handler
- CNewstickerCallbackHandler* handler =
- CNewstickerCallbackHandler::NewLC( *iFwEventHandler );
-
- // Set callback handler
- iCallbackHandler = handler;
- CleanupStack::Pop( handler );
- }
-
- // Obtain newsticker component interface
- XnNewstickerInterface::MXnNewstickerInterface* newsticker( NULL );
- XnComponentInterface::MakeInterfaceL( newsticker, aTarget );
-
- LeaveIfNull( newsticker, KErrGeneral );
-
- // Set callback interface
- newsticker->SetCallbackInterfaceL( this );
- }
+
// End of File
--- a/idlehomescreen/xmluicontroller/src/databuffertransactionelement.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/databuffertransactionelement.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -19,6 +19,7 @@
#include "databuffertransactionelement.h"
#include "aixmluiutils.h"
+#include "xncomponent.h"
#include "xntype.h"
#include "xntext.h"
#include "xnnewsticker.h"
@@ -51,13 +52,32 @@
CDataBufferTransactionElement::~CDataBufferTransactionElement()
{
+ delete iNewData;
+ delete iCid;
}
void CDataBufferTransactionElement::InitializeL( CXnNodeAppIf& aTarget, const TDesC8& aData )
{
CheckTypeL( aTarget );
SetTarget( aTarget );
- iNewData.Set( aData );
+
+ delete iNewData;
+ iNewData = NULL;
+
+ iNewData = aData.AllocL();
+ }
+
+void CDataBufferTransactionElement::InitializeL( CXnNodeAppIf& aTarget, const TDesC8& aData,
+ const TDesC& aCid, TInt aIndex )
+ {
+ InitializeL( aTarget, aData );
+
+ iIndex = aIndex;
+
+ delete iCid;
+ iCid = NULL;
+
+ iCid = aCid.AllocL();
}
void CDataBufferTransactionElement::UpdateDataL()
@@ -73,7 +93,13 @@
{
CTransactionElement::Reset();
- iNewData.Set( KNullDesC8);
+ delete iNewData;
+ iNewData = NULL;
+
+ delete iCid;
+ iCid = NULL;
+
+ iIndex = KErrNotFound;
}
TBool CDataBufferTransactionElement::IsSupported( CXnNodeAppIf& aTarget,
@@ -103,6 +129,10 @@
// Newsticker support
return ( type == XnNewstickerInterface::MXnNewstickerInterface::Type() );
}
+ else if ( aContentType == KContentTypeData )
+ {
+ return ( type == AiUiDef::xml::element::KData() );
+ }
return EFalse;
}
@@ -112,13 +142,14 @@
// Get type info
const TDesC8& type = LeaveIfNull( aTarget.Type(), KErrNotSupported )->Type();
- // Text element, menu item, and newsticker supported
+ // Text element, menu item, data and newsticker supported
if ( type != XnTextInterface::MXnTextInterface::Type() &&
type != KXnMenuItem &&
type != KXnMenu &&
type != XnPropertyNames::softkey::KNodeName &&
type != XnPropertyNames::volumecontrol::KSlider &&
- type != XnNewstickerInterface::MXnNewstickerInterface::Type() )
+ type != XnNewstickerInterface::MXnNewstickerInterface::Type() &&
+ type != AiUiDef::xml::element::KData() )
{
User::Leave( KErrNotSupported );
}
@@ -132,7 +163,7 @@
if ( type == XnTextInterface::MXnTextInterface::Type() ) // Text element
{
// Set character data directly to target
- Target().SetPCDataL( iNewData );
+ Target().SetPCDataL( iNewData ? *iNewData : KNullDesC8() );
}
else if ( type == XnPropertyNames::softkey::KNodeName ||
type == KXnMenuItem ||
@@ -150,7 +181,7 @@
CleanupStack::PushL( propertyValue );
propertyValue->SetStringValueL( CXnDomPropertyValue::EString,
- iNewData );
+ iNewData ? *iNewData : KNullDesC8() );
CXnProperty* newProperty = CXnProperty::NewL( XnPropertyNames::menu::KLabel,
propertyValue,
@@ -175,9 +206,14 @@
LeaveIfNull( volumeControl, KErrNotSupported );
TInt32 volume = 0;
- User::LeaveIfError( AiUtility::ParseInt( volume, iNewData ) );
+ User::LeaveIfError( AiUtility::ParseInt( volume, iNewData ? *iNewData : KNullDesC8() ) );
volumeControl->SetValue( volume );
}
+ else if ( type == AiUiDef::xml::element::KData() )
+ {
+ CXnComponent& component( Target().ParentL()->Component() );
+ component.SetDataL( iNewData ? *iNewData : KNullDesC8(), iCid ? *iCid : KNullDesC(), iIndex );
+ }
else
{
User::Leave( KErrNotSupported );
--- a/idlehomescreen/xmluicontroller/src/dynamicthememodifier.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,331 +0,0 @@
-/*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: This module contains the implementation of
-* CDynamicThemeModifier class member functions.
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include "dynamicthememodifier.h"
-#include <aisystemuids.hrh>
-#include "xnodt.h"
-#include "xndomdocument.h"
-#include "xndomattribute.h"
-#include "xndomnode.h"
-#include "xndomlist.h"
-#include "xndomdepthiterator.h"
-#include <activeidle2domaincrkeys.h>
-
-// CONSTANTS
-#define NEWS_TICKER_GENERAL_SETTINGS_UID 0x10207196
-const TUid KCRUidNewsTicker = {NEWS_TICKER_GENERAL_SETTINGS_UID};
-
-/**
- * KGSNewsTickerStatus
- * CenRep key for "NewsTicker activated"
- * Off = 0
- * On = 1
- */
-const TUint32 KGSNewsTickerStatus = 0x00000004;
-
-/**
- * KAINTInTheme
- * CenRep key for "NewsTicker implemented in AI2 theme"
- * No = 0
- * Yes = 1
- */
-const TUint32 KAiNTInTheme = 0x00000800;
-const TInt KThemeArrayGranularity = 4;
-
-_LIT8( KProperty, "property" );
-_LIT8( KControl, "control" );
-_LIT8( KName, "name" );
-_LIT8( KValue, "value" );
-_LIT8( KBlock, "block" );
-_LIT8( KNone, "none" );
-
-using namespace AiXmlUiController;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::CDynamicThemeModifier
-// -----------------------------------------------------------------------------
-//
-CDynamicThemeModifier::CDynamicThemeModifier()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CDynamicThemeModifier::ConstructL()
- {
- // NT is not shown in theme by default.
- // This is overridden later if it really is implemented (some other theme
- // Basic activated)
- iAiCenRep = CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) );
- User::LeaveIfError( iAiCenRep->Set( KAiNTInTheme, 0 ) );
-
- // Check if NT settings are visible in GS
- iNTCenRep = CRepository::NewL( KCRUidNewsTicker );
- User::LeaveIfError( iNTCenRep->Get( KGSNewsTickerStatus, iEnabledInCenRep ) );
-
- iNTCenRepObserver = CCenRepNotifyHandler::NewL( *this,
- *iNTCenRep,
- CCenRepNotifyHandler::EIntKey,
- KGSNewsTickerStatus );
- iNTCenRepObserver->StartListeningL();
-
- LoadThemesL();
- }
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::NewL
-// -----------------------------------------------------------------------------
-//
-CDynamicThemeModifier* CDynamicThemeModifier::NewL()
- {
- CDynamicThemeModifier* self = new( ELeave ) CDynamicThemeModifier;
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
-
- return self;
- }
-
-
-// Destructor
-CDynamicThemeModifier::~CDynamicThemeModifier()
- {
- if( iThemeArray )
- {
- iThemeArray->ResetAndDestroy();
- delete iThemeArray;
- }
- delete iOdt;
- delete iDomDocument;
- delete iXnResult;
- delete iXnRequestClient;
- delete iXnContentAccessClient;
- delete iXnClient;
- if( iNTCenRepObserver )
- {
- iNTCenRepObserver->StopListening();
- delete iNTCenRepObserver;
- }
- delete iNTCenRep;
- delete iAiCenRep;
- }
-
-// ---------------------------------------------------------------------------
-// CDynamicThemeModifier::LoadThemesL
-// ---------------------------------------------------------------------------
-//
-void CDynamicThemeModifier::LoadThemesL()
- {
- const TUid KUidAI2 = TUid::Uid( AI_UID3_AIFW_EXE );
-
- iXnClient = CXnClient::NewL( *this );
- // we're only interested in AI2 themes
- iXnContentAccessClient = CXnContentAccessClient::NewL( *this,
- KUidAI2.iUid );
- iXnRequestClient = CXnRequestClient::NewL( *this, KUidAI2.iUid );
- iXnResult = CXnResult::NewL();
-
- CXnODT* odt = CXnODT::NewL();
- CleanupStack::PushL( odt );
-
- odt->SetAppUid( KUidAI2.iUid );
-
- iThemeArray = new( ELeave ) CArrayPtrFlat<CXnODT>( KThemeArrayGranularity );
-
- // theme array gets filled up by XnClient after this
- // HandleXnClientMessage() is a callback method that we're interested in
- TXnServiceCompletedMessage ret =
- iXnClient->XnGetListHeaders( *odt, *iThemeArray );
-
- if( ret == EXnGetListHeadersSuccess || ret == EXnGetListHeadersEmpty )
- {
- iXnClient->GetXnResult( *iXnResult );
- iNumberOfHeaders = iXnResult->iIntValue1;
- iXnClient->XnGetNextHeader();
- }
-
- CleanupStack::PopAndDestroy( odt );
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::HandleXnClientMessage
-// -----------------------------------------------------------------------------
-//
-void CDynamicThemeModifier::HandleXnClientMessage(
- TXnServiceCompletedMessage aMessage )
- {
- // wait until all themes are fetched before loading settings
- if( ( aMessage == EXnGetListHeadersUpdate ) &&
- ( iThemeArray->Count() == iNumberOfHeaders ) )
- {
- TRAP_IGNORE( LoadSettingsFromThemeL() );
- }
-
- else if( aMessage == EXnGetListHeadersFailed )
- {
- if (iXnClient)
- {
- iXnClient->XnCancelGetListHeaders();
- }
-
- if ( iThemeArray )
- {
- iThemeArray->ResetAndDestroy();
- delete iThemeArray;
- iThemeArray = NULL;
- }
- }
-
- }
-
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::LoadSettingsFromThemeL
-// -----------------------------------------------------------------------------
-//
-void CDynamicThemeModifier::LoadSettingsFromThemeL()
- {
- for( TInt i = 0; i < iThemeArray->Count(); i++ )
- {
- CXnODT* odt = iThemeArray->At( i );
-
- // activated theme found -> load settings
- if( odt->Flags() & EXnThemeStatusActive )
- {
- delete iDomDocument;
- iDomDocument = NULL;
- iDomDocument = CXnDomDocument::NewL();
-
- TXnServiceCompletedMessage ret =
- iXnContentAccessClient->XnLoadSettings( *odt, *iDomDocument );
- if( ret == EXnSettingsLoaded )
- {
- delete iOdt;
- iOdt = NULL;
- iOdt = odt->CloneL();
- odt = NULL;
- // update theme to match CenRep value
- EnableNewsTickerL( TBool( iEnabledInCenRep ) );
- break;
- }
- }
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::EnableNewsTickerL
-// -----------------------------------------------------------------------------
-//
-void CDynamicThemeModifier::EnableNewsTickerL( TBool aEnabled )
- {
- TInt found = 0;
- CXnDomDepthIterator* iterator =
- CXnDomDepthIterator::NewL( *iDomDocument->RootNode() );
- CleanupStack::PushL( iterator );
-
- CXnDomNode* node = iterator->First();
-
- if( !node )
- {
- CleanupStack::PopAndDestroy( iterator );
- return;
- }
-
- // find <control> tag
- while( node )
- {
- if( !node->Name().Compare( KControl ) )
- {
- break;
- }
- node = iterator->NextL();
- }
-
- if( !node->Name().Compare( KControl ) )
- {
- node = iterator->NextL();
-
- while( node )
- {
- // look for <property> tag...
- if( !node->Name().Compare( KProperty ) )
- {
- // ...with attribute "value"...
- if( !node->AttributeValue( KName ).Compare( KValue ) )
- {
- found = 1;
- CXnDomAttribute* attr = static_cast<CXnDomAttribute*>
- ( node->AttributeList().FindByName( KValue) );
-
- // ...update it accordingly...
- if( aEnabled )
- {
- attr->SetValueL( KBlock );
- }
- else
- {
- attr->SetValueL( KNone );
- }
- }
- }
- node = iterator->NextL();
- }
-
- // ...and communicate the changes via Content Access API.
- for( TInt i = 0; i < iThemeArray->Count(); i++ )
- {
- CXnODT* odt = iThemeArray->At( i );
-
- // This might return an error if settings were not found from theme.
- // However, we don't need to take any actions since appropriate
- // theme is left untouched in that case anyway
- iXnContentAccessClient->XnUpdateSettings( *odt, *iDomDocument );
- }
-
- // if found == 1, then NT is implemented in theme
- // -> NT settings can be shown in GS
- User::LeaveIfError( iAiCenRep->Set( KAiNTInTheme, found ) );
- CleanupStack::PopAndDestroy( iterator );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CDynamicThemeModifier::HandleNotifyInt
-// Callback method for observing CenRep changes
-// -----------------------------------------------------------------------------
-//
-void CDynamicThemeModifier::HandleNotifyInt( TUint32 /*aId*/, TInt aNewValue )
- {
- iEnabledInCenRep = TBool( aNewValue );
- TRAP_IGNORE( EnableNewsTickerL( iEnabledInCenRep ) );
- ;
- }
-
-// End of File
--- a/idlehomescreen/xmluicontroller/src/emptycontenttransactionelement.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/emptycontenttransactionelement.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -73,58 +73,66 @@
if ( type->Type() == XnImageInterface::MXnImageInterface::Type() )
{
- MXnImageInterface* imageIntr = NULL;
- if ( !XnComponentInterface::MakeInterfaceL( imageIntr, Target() ) )
- {
- User::Leave( KErrNotSupported );
- }
+ MXnImageInterface* image( NULL );
+ XnComponentInterface::MakeInterfaceL( image, Target() );
+
+ LeaveIfNull( image, KErrNotSupported );
+
// Clears the bitmaps from component
- imageIntr->SetContentBitmaps( NULL, NULL );
+ image->SetContentBitmaps( NULL, NULL );
}
else if ( type->Type() == XnTextInterface::MXnTextInterface::Type() ) // text element
{
// Get control interface
- XnTextInterface::MXnTextInterface* textControl = NULL;
- XnComponentInterface::MakeInterfaceL( textControl, Target() );
- LeaveIfNull( textControl, KErrNotSupported );
+ XnTextInterface::MXnTextInterface* text( NULL );
+ XnComponentInterface::MakeInterfaceL( text, Target() );
+
+ LeaveIfNull( text, KErrNotSupported );
// Clears the text from component
- textControl->SetTextL( KNullDesC );
+ text->SetTextL( KNullDesC );
}
else if ( type->Type() == XnTextEditorInterface::MXnTextEditorInterface::Type() ) // texteditor element
{
// Get control interface
- XnTextEditorInterface::MXnTextEditorInterface* editorControl = NULL;
- XnComponentInterface::MakeInterfaceL( editorControl, Target() );
- LeaveIfNull( editorControl, KErrNotSupported );
+ XnTextEditorInterface::MXnTextEditorInterface* editor( NULL );
+ XnComponentInterface::MakeInterfaceL( editor, Target() );
+
+ LeaveIfNull( editor, KErrNotSupported );
// Clears the text from component
- editorControl->SetTextL( KNullDesC );
+ editor->SetTextL( KNullDesC );
}
else
{
- CXnNodeAppIf* parent = Target().ParentL();
+ CXnNodeAppIf* parent( Target().ParentL() );
LeaveIfNull( parent, KErrNotSupported );
- const TDesC8& type = LeaveIfNull( parent->Type(), KErrNotSupported )->Type();
+
+ const TDesC8& parentType( parent->Type()->Type() );
- if ( type == XnNewstickerInterface::MXnNewstickerInterface::Type() )
+ if ( parentType == XnNewstickerInterface::MXnNewstickerInterface::Type() )
{
- XnNewstickerInterface::MXnNewstickerInterface* newsticker = NULL;
+ XnNewstickerInterface::MXnNewstickerInterface* newsticker( NULL );
XnComponentInterface::MakeInterfaceL( newsticker, *parent );
- LeaveIfNull( newsticker, KErrGeneral );
- TInt titleIndexVal = -1;
- CXnProperty* titleIndex = Target().GetPropertyL( XnPropertyNames::title::KTitleIndex );
- if ( titleIndex )
- {
- TLex8 lex( titleIndex->StringValue() );
- TInt err = lex.Val( titleIndexVal );
- if ( err == KErrNone && titleIndexVal > -1 )
- {
- newsticker->DeleteTitle( titleIndexVal );
- }
- }
+
+ LeaveIfNull( newsticker, KErrNotSupported );
+
+ CXnProperty* prop( Target().GetPropertyL(
+ XnPropertyNames::title::KTitleIndex ) );
+
+ LeaveIfNull( prop, KErrNotSupported );
+
+ TInt index( KErrNotFound );
+
+ TLex8 lex( prop->StringValue() );
+ lex.Val( index );
+
+ newsticker->DeleteTitle( index );
}
}
+
// Clear current content priority
ClearContentPriorityL();
}
+
+// End of file
--- a/idlehomescreen/xmluicontroller/src/imagetransactionelement.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/imagetransactionelement.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -17,451 +17,119 @@
#include "xnbitmap.h"
-#include "xnnewsticker.h"
#include "xntype.h"
-#include "xnmenu.h"
-#include "xnmenuadapter.h"
-#include "xnuiengineappif.h"
-#include <imageconversion.h>
#include <gulicon.h>
#include "imagetransactionelement.h"
#include "xmluicontrollerpanic.h"
#include "aixmluiutils.h"
-#include "xnuiengineappif.h"
using namespace AiXmlUiController;
using namespace XnImageInterface;
-using namespace ContentAccess;
namespace AiXmlUiController
- {
-
-TBool IsNodeVisible( CXnNodeAppIf& aNode )
- {
- CXnProperty* propVisibility = aNode.GetPropertyL( XnPropertyNames::style::common::KVisibility );;
-
- if( propVisibility )
- {
- const TDesC8& visibility = propVisibility->StringValue();
-
- if( visibility == XnPropertyNames::style::common::visibility::KHidden )
- {
- return EFalse;
- }
- }
-
- CXnProperty* propDisplay = aNode.GetPropertyL( XnPropertyNames::style::common::KDisplay );
-
- if( propDisplay )
- {
- const TDesC8& display = propDisplay->StringValue();
-
- if( display == XnPropertyNames::style::common::display::KNone )
- {
- return EFalse;
- }
- }
-
- CXnProperty* propDisabled = aNode.GetPropertyL( XnPropertyNames::common::KDisabled );
-
- if( propDisabled )
- {
- const TDesC8& disabled = propDisabled->StringValue();
-
- if( disabled == XnPropertyNames::KTrue )
- {
- return EFalse;
- }
- }
- return ETrue;
- }
-/**
- * Uses CImageDecoder to decode images asynchronously.
- * When decoding is done, it tries to find target and set
- * image into element. Destroys itself at end of RunL method.
- */
-class CKamikazeImageDecoder: public CActive
- {
-public:
- static CKamikazeImageDecoder* NewL(
- RFile& aFile, const TDesC8& aNodeId,
- const TDesC8& aNodeNs, TXnUiEngineAppIf& aUiEngine);
- ~CKamikazeImageDecoder();
-public:
- /**
- * Start decoding and forget instance.
- * Destroyes itself.
- */
- void DecodeLD();
-private:
- // from CActive
- void DoCancel();
- void RunL();
-private:
- void ConstructL(RFile& aFile, const TDesC8& aNodeId,const TDesC8& aNodeNs);
- CKamikazeImageDecoder(TXnUiEngineAppIf& aUiEngine);
- void SetImageL();
-private:
- /**
- * Image decoder. Own.
- */
- CImageDecoder* iDecoder;
- /**
- * Target node id
- */
- HBufC8* iNodeId;
- /**
- * Target node namespace
- */
- HBufC8* iNodeNs;
- /**
- * Provides services to find target
- */
- TXnUiEngineAppIf& iUiEngine;
- /**
- * Icon. Own.
- */
- CGulIcon* iIcon;
- };
-
-CKamikazeImageDecoder* CKamikazeImageDecoder::NewL(
- RFile& aFile,
- const TDesC8& aNodeId,
- const TDesC8& aNodeNs,
- TXnUiEngineAppIf& aUiEngine)
- {
- CKamikazeImageDecoder* p = new (ELeave)CKamikazeImageDecoder(aUiEngine);
- CleanupStack::PushL(p);
- p->ConstructL(aFile,aNodeId,aNodeNs);
- CleanupStack::Pop(p);
- return p;
- }
-
-CKamikazeImageDecoder::CKamikazeImageDecoder(TXnUiEngineAppIf& aUiEngine):
- CActive(CActive::EPriorityStandard ), iUiEngine(aUiEngine)
- {
- CActiveScheduler::Add( this );
- }
-
-CKamikazeImageDecoder::~CKamikazeImageDecoder()
- {
- Cancel();
- delete iDecoder;
- delete iNodeId;
- delete iNodeNs;
- delete iIcon;
- }
+{
-void CKamikazeImageDecoder::ConstructL(
- RFile& aFile,
- const TDesC8& aNodeId,
- const TDesC8& aNodeNs)
- {
- // Create new decoder for file
- iDecoder = CImageDecoder::FileNewL( aFile, EView );
- iNodeId = aNodeId.AllocL();
- iNodeNs = aNodeNs.AllocL();
- iIcon = CGulIcon::NewL();
- }
-
-void CKamikazeImageDecoder::DecodeLD()
- {
- TFrameInfo frameInfo = iDecoder->FrameInfo(0);
- CFbsBitmap* bitmap = new( ELeave ) CFbsBitmap;
- iIcon->SetBitmap( bitmap );
-
- User::LeaveIfError( bitmap->Create( frameInfo.iOverallSizeInPixels,
- frameInfo.iFrameDisplayMode ) );
-
- CFbsBitmap* mask(0);
- if ( frameInfo.iFlags & TFrameInfo::ETransparencyPossible )
- {
- mask = new( ELeave ) CFbsBitmap;
- iIcon->SetMask( mask );
- User::LeaveIfError( mask->Create( frameInfo.iOverallSizeInPixels,
- ( ( frameInfo.iFlags & TFrameInfo::EAlphaChannel )
- ? EGray256 : EGray2 ) ) );
- }
-
- if(iIcon->Mask())
- {
- iDecoder->Convert( &iStatus, *bitmap, *mask );
- }
- else
- {
- iDecoder->Convert( &iStatus, *bitmap );
- }
- SetActive();
- }
-
-void CKamikazeImageDecoder::DoCancel()
- {
- iDecoder->Cancel();
- }
-
-void CKamikazeImageDecoder::SetImageL()
- {
-
- // Find target
- CXnNodeAppIf* node = iUiEngine.FindNodeByIdL(*iNodeId,*iNodeNs);
- if(!node)
- {
- return;
- }
-
- const TDesC8& type = node->Type()->Type();
-
- if ( type == XnImageInterface::MXnImageInterface::Type() )
- {
- MXnImageInterface* imageIntr = NULL;
- if ( !XnComponentInterface::MakeInterfaceL( imageIntr, *node ) )
- {
- return;
- }
- // Set new bitmaps. Ownership is transferred to MXnImageInterface
- iIcon->SetBitmapsOwnedExternally( ETrue );
- imageIntr->SetContentBitmaps( iIcon->Bitmap(), iIcon->Mask() );
-
- }
- // Menu softkey icons
- else if ( ( ( type == KXnMenuItem || type == KXnMenu ) &&
- IsNodeVisible( *node ) ) ||
- type == XnPropertyNames::softkey::KNodeName )
- {
- CXnNodeAppIf* menuBar = node->ParentL();
-
- XnMenuInterface::MXnMenuInterface::TSoftKeyPosition softkeyPosition =
- XnMenuInterface::MXnMenuInterface::ELeft;
-
- CXnProperty* property =
- node->GetPropertyL( XnPropertyNames::softkey::KTypeAttribute );
- if ( property && property->StringValue() == XnPropertyNames::softkey::type::KRight )
- {
- softkeyPosition = XnMenuInterface::MXnMenuInterface::ERight;
- }
- else if ( property && property->StringValue() == XnPropertyNames::softkey::type::KLeft )
- {
- softkeyPosition = XnMenuInterface::MXnMenuInterface::ELeft;
- }
- else // Image can be published only to RSK or LSK
- {
- return;
- }
-
- XnMenuInterface::MXnMenuInterface* menuIf = NULL;
-
- XnComponentInterface::MakeInterfaceL( menuIf, *menuBar );
- if ( menuIf )
- {
- // Use black mask and preserver aspect ratio
-
- menuIf->SetSoftKeyImageL( iIcon->Bitmap(),
- iIcon->Mask(),
- softkeyPosition,
- node,
- ETrue,
- ETrue );
- iIcon->SetBitmapsOwnedExternally( ETrue );
- }
- if( menuBar )
- {
- iUiEngine.RefreshMenuL();
- }
- }
-
- }
-
-void CKamikazeImageDecoder::RunL()
- {
- CleanupStack::PushL(this);
- if(iStatus == KErrNone)
- {
- SetImageL();
- iUiEngine.RenderUIL();
- }
- CleanupStack::PopAndDestroy(this);
- }
-
// ======== MEMBER FUNCTIONS ========
CImageTransactionElement::CImageTransactionElement(
- AiUtility::CContentPriorityMap& aContentPriorityMap)
+ AiUtility::CContentPriorityMap& aContentPriorityMap)
: CTransactionElement(aContentPriorityMap)
{
}
CImageTransactionElement* CImageTransactionElement::NewL(
- AiUtility::CContentPriorityMap& aContentPriorityMap)
+ AiUtility::CContentPriorityMap& aContentPriorityMap)
{
- CImageTransactionElement* self = new( ELeave ) CImageTransactionElement(
- aContentPriorityMap );
+ CImageTransactionElement* self =
+ new( ELeave ) CImageTransactionElement( aContentPriorityMap );
+
return self;
}
CImageTransactionElement::~CImageTransactionElement()
{
- delete iNewIcon;
- delete iImageDecoder;
+ delete iIcon;
}
void CImageTransactionElement::InitializeL( CXnNodeAppIf& aTarget,
- CGulIcon* aIcon )
+ CGulIcon* aIcon )
{
- CheckTypeL( aTarget );
-
LeaveIfNull( aIcon, KErrArgument );
+ CheckTypeL( aTarget );
SetTarget( aTarget );
- iNewIcon = aIcon;
+
+ iIcon = aIcon;
+ iFilename = KNullDesC();
}
void CImageTransactionElement::InitializeL( CXnNodeAppIf& aTarget,
- RFile& aFile )
- {
- CheckTypeL( aTarget );
-
- const TDesC8* nodeId = &KNullDesC8;
+ RFile& aFile )
+ {
+ CheckTypeL( aTarget );
+ SetTarget( aTarget );
+
+ iFilename = KNullDesC();
- CXnProperty* property = aTarget.GetPropertyL(XnPropertyNames::common::KId);
- if(property)
- {
- nodeId = &property->StringValue();
- }
- if ( iImageDecoder )
- {
- delete iImageDecoder;
- iImageDecoder = NULL;
- }
- iImageDecoder = CKamikazeImageDecoder::NewL(
- aFile,*nodeId,aTarget.Namespace(),*aTarget.UiEngineL());
+ aFile.FullName( iFilename );
- SetTarget( aTarget );
+ delete iIcon;
+ iIcon = NULL;
}
-
void CImageTransactionElement::UpdateDataL()
- {
- if ( iImageDecoder )
+ {
+ const TDesC8& type( Target().Type()->Type() );
+
+ if ( type == XnImageInterface::MXnImageInterface::Type() )
{
- iImageDecoder->DecodeLD();
- iImageDecoder = NULL; // self destroy
- }
- else
- {
- __ASSERT_DEBUG( iNewIcon, Panic( EBitmapNull ) );
-
- const TDesC8& type = LeaveIfNull( Target().Type(), KErrNotSupported )->Type();
+ MXnImageInterface* image( NULL );
+ XnComponentInterface::MakeInterfaceL( image, Target() );
- if ( type == XnImageInterface::MXnImageInterface::Type() )
+ LeaveIfNull( image, KErrNotSupported );
+
+ if ( iIcon )
{
- MXnImageInterface* imageIntr = NULL;
- if ( !XnComponentInterface::MakeInterfaceL( imageIntr, Target() ) )
- {
- User::Leave( KErrNotSupported );
- }
// Set new bitmaps. Ownership is transferred to MXnImageInterface
- iNewIcon->SetBitmapsOwnedExternally( ETrue );
- imageIntr->SetContentBitmaps( iNewIcon->Bitmap(), iNewIcon->Mask() );
- }
- // Menu softkey icons
- else if ( ( ( type == KXnMenuItem || type == KXnMenu ) &&
- IsNodeVisible( Target() ) ) ||
- type == XnPropertyNames::softkey::KNodeName )
- {
- CXnNodeAppIf* menuBar = Target().ParentL();
+ iIcon->SetBitmapsOwnedExternally( ETrue );
- XnMenuInterface::MXnMenuInterface::TSoftKeyPosition softkeyPosition =
- XnMenuInterface::MXnMenuInterface::ELeft;
-
- CXnProperty* property =
- Target().GetPropertyL( XnPropertyNames::softkey::KTypeAttribute );
- if ( property && property->StringValue() == XnPropertyNames::softkey::type::KRight )
- {
- softkeyPosition = XnMenuInterface::MXnMenuInterface::ERight;
- }
- else if ( property && property->StringValue() == XnPropertyNames::softkey::type::KLeft )
- {
- softkeyPosition = XnMenuInterface::MXnMenuInterface::ELeft;
- }
- else // Image can be published only to RSK or LSK
- {
- delete iNewIcon;
- iNewIcon = NULL;
- User::Leave( KErrNotSupported );
- }
-
- XnMenuInterface::MXnMenuInterface* menuIf = NULL;
-
- XnComponentInterface::MakeInterfaceL( menuIf, *menuBar );
- if ( menuIf )
- {
- // Use black mask and preserver aspect ratio
- TRAPD(err,
- menuIf->SetSoftKeyImageL( iNewIcon->Bitmap(),
- iNewIcon->Mask(),
- softkeyPosition,
- &Target(),
- ETrue,
- ETrue )
- );
- // Menuinterface takes ownership
- if ( err == KErrNone )
- {
- iNewIcon->SetBitmapsOwnedExternally( ETrue );
- }
- if( menuBar )
- {
- menuBar->UiEngineL()->RefreshMenuL();
- }
- }
+ image->SetContentBitmaps( iIcon->Bitmap(), iIcon->Mask() );
}
- else
+ else if ( iFilename != KNullDesC() )
{
- User::Leave( KErrNotSupported );
- }
+ image->SetContentBitmaps( iFilename );
+ }
}
- delete iNewIcon;
- iNewIcon = NULL;
-
UpdateContentPriorityL();
}
void CImageTransactionElement::Reset()
{
- if ( iImageDecoder )
- {
- delete iImageDecoder;
- iImageDecoder = NULL;
- }
-
CTransactionElement::Reset();
- delete iNewIcon;
- iNewIcon = NULL;
+ iFilename = KNullDesC();
+
+ delete iIcon;
+ iIcon = NULL;
}
TBool CImageTransactionElement::IsSupported( CXnNodeAppIf& aTarget )
{
// Get type info
- CXnType* typeInfo = aTarget.Type();
+ CXnType* typeInfo( aTarget.Type() );
if ( !typeInfo )
{
return EFalse;
}
- const TDesC8& type = typeInfo->Type();
+ const TDesC8& type( typeInfo->Type() );
// image element and newsticker supported
- return ( type == XnImageInterface::MXnImageInterface::Type() ||
- type == XnNewstickerInterface::MXnNewstickerInterface::Type() ||
- type == XnMenuInterface::MXnMenuInterface::Type() ||
- type == KXnMenuItem ||
- type == KXnMenu ||
- type == XnPropertyNames::softkey::KNodeName );
+ return ( type == XnImageInterface::MXnImageInterface::Type() );
}
void CImageTransactionElement::CheckTypeL( CXnNodeAppIf& aTarget )
@@ -472,3 +140,5 @@
}
}
} // ns
+
+// End of file
--- a/idlehomescreen/xmluicontroller/src/newstickercallbackhandler.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Callback handler for newsticker component callbacks
-*
-*/
-
-
-#include "newstickercallbackhandler.h"
-#include "aifweventhandler.h"
-#include "aiconsts.h"
-#include "aixmluiconstants.h"
-#include "aistrcnv.h"
-
-using namespace AiXmlUiController;
-
-const TInt KRadix = 10;
-const TText16 KPluginEventParameterSeparator = ',';
-const TText16 KEventParameterTerminator = ')';
-
-static TInt IndexLength( TInt aIndex )
- {
- TInt length = 0;
-
- if ( aIndex < 0 )
- {
- ++length;
- }
-
- do
- {
- aIndex /= KRadix;
- ++length;
- }
- while ( aIndex != 0 );
-
- return length;
- }
-
-// ======== MEMBER FUNCTIONS ========
-
-CNewstickerCallbackHandler::CNewstickerCallbackHandler( MAiFwEventHandler& aFwEventHandler )
- : iFwEventHandler( aFwEventHandler )
- {
- }
-
-CNewstickerCallbackHandler* CNewstickerCallbackHandler::NewLC( MAiFwEventHandler& aFwEventHandler )
- {
- CNewstickerCallbackHandler* self = new( ELeave ) CNewstickerCallbackHandler( aFwEventHandler );
- CleanupStack::PushL( self );
- return self;
- }
-
-
-CNewstickerCallbackHandler::~CNewstickerCallbackHandler()
- {
- delete iEventBuffer;
- }
-
-
-void CNewstickerCallbackHandler::TitleScrolledL( const TDesC& aPublisherName,
- const TDesC& aPublishingClass,
- TInt aIndex )
- {
- SendEventToNewstickerPluginL( AiUiDef::xml::event::KNewstickerTitleScrolled,
- aPublisherName,
- aPublishingClass,
- aIndex);
- }
-
-void CNewstickerCallbackHandler::TitleToScrollL( const TDesC& aPublisherName,
- const TDesC& aPublishingClass,
- TInt aIndex )
- {
- SendEventToNewstickerPluginL( AiUiDef::xml::event::KNewstickerTitleToScroll,
- aPublisherName,
- aPublishingClass,
- aIndex);
- }
-
-
-void CNewstickerCallbackHandler::SendEventToNewstickerPluginL( const TDesC& aEvent,
- const TDesC& aPublisherName,
- const TDesC& aPublishingClass,
- TInt aIndex)
- {
- // Calculate event buffer length
- TInt length = aPublisherName.Length()
- + KPluginEventSeparatorLength
- + aEvent.Length()
- + KEventParameterSeparatorLength
- + aPublishingClass.Length()
- + KEventParameterSeparatorLength
- + IndexLength( aIndex )
- + KEventParameterSeparatorLength;
-
- // Allocate event buffer
- TPtr event = AiUtility::EnsureBufMaxLengthL( iEventBuffer, length );
-
- // Create event string
- event.Zero();
- event.Append( aPublisherName );
- event.Append( KPluginEventSeparator );
- event.Append( aEvent );
- event.Append( KEventParameterSeparator );
- event.Append( aPublishingClass );
- event.Append( KPluginEventParameterSeparator );
- event.AppendNum( aIndex );
- event.Append( KEventParameterTerminator );
-
- // Send event to plugin
- // TODO: fix namespace
- iFwEventHandler.HandlePluginEvent( event );
- }
--- a/idlehomescreen/xmluicontroller/src/pmodtiterator.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: DT iterator.
-*
-*/
-
-
-
-// INCLUDE FILES
-//#include "xndomlist.h"
-#include "xnnodeappif.h"
-
-#include "pmodtiterator.h"
-
-// ============================ LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// Finds next sibling.
-// Returns NULL if there is no siblings left or there is no parent i.e this is a
-// root node
-// Returns: CXnDomNode* Pointer to the node or NULL
-//
-// -----------------------------------------------------------------------------
-//
-
-static CXnNodeAppIf* NextSiblingL( CXnNodeAppIf& aNode )
- {
- CXnNodeAppIf* left( NULL );
- CXnNodeAppIf* parent( NULL );
- TRAP_IGNORE( parent = aNode.ParentL() );
- if ( parent )
- {
- RPointerArray<CXnNodeAppIf> nodeList;
- TRAP_IGNORE( nodeList = parent->ChildrenL() );
- CleanupClosePushL( nodeList );
- TInt currentIndex( nodeList.Find( &aNode ) );
- TInt nextIndex( ++currentIndex );
- TInt length( nodeList.Count() );
- if ( nextIndex < length )
- {
- left = nodeList[ nextIndex ];
- }
- CleanupStack::PopAndDestroy( &nodeList );
- }
- return left;
- }
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CPmODTIterator::CPmODTIterator( CXnNodeAppIf& aRootNode ):
- iFirst(&aRootNode), iCurrent(&aRootNode)
- {
- }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CPmODTIterator::ConstructL()
- {
- }
-
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-//
-CPmODTIterator* CPmODTIterator::NewL( CXnNodeAppIf& aRootNode )
- {
- CPmODTIterator* self = new( ELeave ) CPmODTIterator( aRootNode );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CPmODTIterator::~CPmODTIterator()
- {
- iDepthLevel.Close();
- }
-
-// -----------------------------------------------------------------------------
-// First node
-// -----------------------------------------------------------------------------
-//
-CXnNodeAppIf* CPmODTIterator::First()
- {
- return iFirst;
- }
-
-// -----------------------------------------------------------------------------
-// Next node
-// -----------------------------------------------------------------------------
-//
-CXnNodeAppIf* CPmODTIterator::NextL()
- {
- CXnNodeAppIf* firstChild( NULL );
-
- //Initialise iCurrent if the whole tree has been walked through
- if (!iCurrent)
- {
- iCurrent = iFirst;
- }
- RPointerArray<CXnNodeAppIf> children = iCurrent->ChildrenL();
- if( children.Count() > 0 )
- {
- firstChild = children[0];
- }
- children.Close();
-
- // Current node has childs left
- if (firstChild)
- {
- //Keep count of depth level
- PushL( *iCurrent );
- iCurrent = firstChild;
- }
- else //If current node has siblings left
- {
- SkipBranchL();
- }
- return iCurrent;
- }
-
-// -----------------------------------------------------------------------------
-// SkipBranch
-// -----------------------------------------------------------------------------
-//
-CXnNodeAppIf* CPmODTIterator::SkipBranchL()
- {
- CXnNodeAppIf* sibling = NextSiblingL(*iCurrent);
- if(sibling)
- {
- iCurrent = sibling;
- }
- else //Current node don't have any childs or siblings left
- {
- // Reverse the tree by moving up in hierarchy
- // Move up one level in hierarchy and check if siblings exists or we are in a
- // root level
- TBool stop( EFalse );
- while( !stop && iDepthLevel.Count() )
- {
- iCurrent = Pop(); //Reach the previous level
- sibling = NextSiblingL( *iCurrent ); //Check if siblings exist
- if ( sibling && iDepthLevel.Count() )
- {
- iCurrent = sibling;
- stop = ETrue;
- }
- else //We didn't find any siblings
- {
- iCurrent = NULL;
- }
- }
- }
- return iCurrent;
- }
-
-// -----------------------------------------------------------------------------
-// Push node into stack.
-// -----------------------------------------------------------------------------
-//
-void CPmODTIterator::PushL( CXnNodeAppIf& aNode )
- {
- iDepthLevel.AppendL( &aNode );
- }
-
-// -----------------------------------------------------------------------------
-// Pop node from stack.
-// -----------------------------------------------------------------------------
-//
-CXnNodeAppIf* CPmODTIterator::Pop()
- {
- CXnNodeAppIf* pop = NULL;
- TInt count( iDepthLevel.Count() );
- if ( count )
- {
- pop = iDepthLevel[ count-1 ];
- iDepthLevel.Remove( count-1 );
- }
- return pop;
- }
--- a/idlehomescreen/xmluicontroller/src/psobserver.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Observer for changes in Publish & Subscribe keys
-*
-*/
-
-
-#include "psobserver.h"
-#include "mpscallback.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-using namespace AiXmlUiController;
-
-CPSObserver::CPSObserver( MPSCallback& aCallback, TUid aCategory, TInt aKey ) :
- CActive( CActive::EPriorityStandard ),
- iCallback( aCallback ),
- iCategory( aCategory ),
- iKey( aKey )
- {
- CActiveScheduler::Add( this );
- }
-
-CPSObserver* CPSObserver::NewL( MPSCallback& aCallback, TUid aCategory, TInt aKey )
- {
- CPSObserver* self = new( ELeave ) CPSObserver( aCallback, aCategory, aKey );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-CPSObserver::~CPSObserver()
- {
- Cancel();
- }
-
-void CPSObserver::ConstructL()
- {
- // subscribe for changes
- User::LeaveIfError( iProperty.Attach( iCategory, iKey ) );
- iProperty.Subscribe( iStatus );
- SetActive();
- }
-
-void CPSObserver::RunL()
- {
- iProperty.Subscribe( iStatus );
- SetActive();
-
- TInt value;
- if( iProperty.Get( iCategory, iKey, value ) != KErrNotFound )
- {
- iCallback.ValueUpdatedL( iKey, value );
- }
- }
-
-TInt CPSObserver::RunError()
- {
- Cancel();
- return KErrNone;
- }
-
-void CPSObserver::DoCancel()
- {
- iProperty.Close();
- }
-
-TInt CPSObserver::GetValue( TInt &aValue ) const
- {
- return iProperty.Get( iCategory, iKey, aValue );
- }
-
-
-// End of File
--- a/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -152,6 +152,31 @@
}
MTransactionElement*
+ CTransactionFactoryImpl::CreateDataBufferTransactionElementL(
+ CXnNodeAppIf& aTarget,
+ const TDesC8& aData,
+ TInt aPriority,
+ const TDesC& aCid,
+ TInt aIndex )
+ {
+ // Instantiate element
+ CDataBufferTransactionElement* element = NewInstanceL< CDataBufferTransactionElement >();
+ CleanupStack::PushL( element );
+
+ // Initialize
+ element->InitializeL( aTarget, aData, aCid, aIndex );
+ CleanupStack::Pop( element );
+
+ // Reserve
+ iReservedElements.AddLast( *element );
+
+ // Set content priority
+ element->SetContentPriority( aPriority );
+
+ return element;
+ }
+
+MTransactionElement*
CTransactionFactoryImpl::CreateEmptyContentTransactionElementL(
CXnNodeAppIf& aTarget,
TInt aIndex)
--- a/idlehomescreen/xmluicontroller/src/xmluicontroller.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluicontroller/src/xmluicontroller.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -52,19 +52,67 @@
#include "aiconsts.h"
#include "contentrenderer.h"
#include "xmluicontrollerpanic.h"
-#include "pmodtiterator.h"
#include "contentpublisher.h"
#include "xnplugindefs.h"
#include "ainativeuiplugins.h"
// Constants
const TInt KOneSecondInMicroS = 1000*1000;
-_LIT8( KData, "data" );
+// Macros
+#define IS_KNOWN_CONTENT_MODEL_ELEMENT( e ) \
+ ( e == AiUiDef::xml::element::KImage || \
+ e == AiUiDef::xml::element::KText || \
+ e == AiUiDef::xml::element::KAnimation || \
+ e == AiUiDef::xml::element::KTextEditor || \
+ e == AiUiDef::xml::element::KTitle || \
+ e == AiUiDef::xml::element::KData )
+
using namespace AiXmlUiController;
// ======== LOCAL FUNCTIONS ========
// ----------------------------------------------------------------------------
+// BuildModelL()
+// ----------------------------------------------------------------------------
+//
+static void BuildModelL( CXnNodeAppIf* aParent, const TDesC8& aKey,
+ const TDesC8& aNs, RPointerArray< CXnNodeAppIf >& aModel )
+ {
+ if ( !aParent || aParent->Namespace() != aNs )
+ {
+ // No parent or traversed out from the namespace
+ return;
+ }
+
+ if ( aParent->Type()->Type() == XnPropertyNames::action::KProperty )
+ {
+ CXnProperty* prop(
+ aParent->GetPropertyL( XnPropertyNames::common::KClass ) );
+
+ if ( prop )
+ {
+ const TDesC8& value( prop->StringValue() );
+
+ if ( value.Find( aKey ) != KErrNotFound )
+ {
+ aModel.AppendL( aParent );
+ }
+ }
+ }
+
+ RPointerArray< CXnNodeAppIf > children( aParent->ChildrenL() );
+ CleanupClosePushL( children );
+
+ for ( TInt i = 0; i < children.Count(); i++ )
+ {
+ // Recurse children
+ BuildModelL( children[i], aKey, aNs, aModel );
+ }
+
+ CleanupStack::PopAndDestroy( &children );
+ }
+
+// ----------------------------------------------------------------------------
// ResolveEventParameters()
// ----------------------------------------------------------------------------
//
@@ -403,7 +451,6 @@
// CXmlUiController::GetContentModelL()
// ----------------------------------------------------------------------------
//
-// ContentModelL()
void CXmlUiController::GetContentModelL( const THsPublisherInfo& aPublisherInfo,
RAiSettingsItemArray& aSettings )
{
@@ -413,136 +460,101 @@
return;
}
- // Find the node for the publisher
- // TODO Does not work if widget is in view
+ // Find the node for the publisher
RPointerArray<CXnNodeAppIf> list(
UiEngineL()->FindContentSourceNodesL( aPublisherInfo.Namespace() ) );
CleanupClosePushL( list );
- CXnNodeAppIf* publisherNode( NULL );
+ CXnNodeAppIf* publisher( NULL );
if ( list.Count() > 0 )
{
- publisherNode = list[0];
+ publisher = list[0];
}
CleanupStack::PopAndDestroy( &list );
- if( !publisherNode )
+ if( !publisher )
{
return;
}
- // Find ui plugin node for the data plugin
- CXnNodeAppIf* parentNode( publisherNode->ParentL() );
+ // Find plugin node for the <contentsource> element
+ CXnNodeAppIf* parent( publisher->ParentL() );
- // parent must be correct type
- if( parentNode->InternalDomNodeType() == _L8("widget") )
+ if ( parent && parent->InternalDomNodeType() == XnPropertyNames::KWidget )
{
- // Get plugin configurations
- GetConfigurationsL( *parentNode, aSettings, AiUiDef::xml::element::K16Plugin());
- CPmODTIterator* iter = CPmODTIterator::NewL( *parentNode );
- CleanupStack::PushL( iter );
- CXnNodeAppIf* node = iter->First();
- while( node )
- {
- const TDesC8& nodeType = node->Type()->Type();
- if( nodeType == XnPropertyNames::action::KActions)
+ // Get <contentsource> element configurations
+ GetConfigurationsL(
+ *parent, aSettings, AiUiDef::xml::element::K16Plugin() );
+
+ RPointerArray< CXnNodeAppIf > model;
+ CleanupClosePushL( model );
+
+ HBufC8* key = HBufC8::NewLC( aPublisherInfo.Name().Length() + 1 );
+
+ _LIT( KSlash, "/" );
+
+ key->Des().Copy( aPublisherInfo.Name() );
+ key->Des().Append( KSlash );
+
+ BuildModelL( parent, *key, parent->Namespace(), model );
+
+ for ( TInt i = 0; i < model.Count(); i++ )
+ {
+ CXnNodeAppIf* parent( model[i]->ParentL() );
+
+ if ( parent )
{
- node = iter->SkipBranchL();
- }
- // Get the content model and configuration for the supported elements
- else if( nodeType == AiUiDef::xml::element::KImage ||
- nodeType == AiUiDef::xml::element::KText ||
- nodeType == AiUiDef::xml::element::KNewsTicker ||
- nodeType == AiUiDef::xml::element::KAnimation ||
- nodeType == AiUiDef::xml::element::KTextEditor ||
- nodeType == KData )
- {
- // Is created in GetContenItem and used in GetConfigurationsL
- HBufC* confOwner( NULL );
- // get content item for the element, confOwner is filled
- GetContentItemL( *node, aSettings, confOwner );
- if( confOwner )
- {
- CleanupStack::PushL( confOwner );
- // get configurations for the element
- GetConfigurationsL( *node, aSettings, *confOwner );
- CleanupStack::PopAndDestroy( confOwner );
+ const TDesC8& type( parent->Type()->Type() );
+
+ if ( IS_KNOWN_CONTENT_MODEL_ELEMENT( type ) )
+ {
+ // Content model found for the element, create content item
+ MAiPluginSettings* settings(
+ AiUtility::CreatePluginSettingsL() );
+
+ CleanupDeletePushL( settings );
+
+ MAiPluginContentItem& item(
+ settings->AiPluginContentItem() );
+
+ // Type of the element is needed in content model
+ HBufC* type16( NULL );
+
+ type16 = AiUtility::CopyToBufferL( type16, type );
+
+ CleanupStack::PushL( type16 );
+
+ item.SetTypeL( *type16 );
+
+ HBufC* name( PropertyValueL(
+ *model[i], AiUiDef::xml::property::KClass ) );
+ CleanupStack::PushL( name );
+
+ item.SetNameL( *name );
+
+ // Get content model configurations,
+ // i.e. <property> element's <configuration> siblings
+ GetConfigurationsL( *parent, aSettings, *name );
+
+ CleanupStack::PopAndDestroy( 2, type16 ); // name
+
+ aSettings.AppendL( settings );
+ CleanupStack::Pop( settings );
}
- node = iter->SkipBranchL();
- }
- else
- {
- node = iter->NextL();
- }
+ }
}
- CleanupStack::PopAndDestroy( iter );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CXmlUiController::GetContentItemL()
-// ----------------------------------------------------------------------------
-//
-// ContentItemL()
-void CXmlUiController::GetContentItemL( CXnNodeAppIf& aNode,
- RAiSettingsItemArray& aSettings, HBufC*& aItemName )
- {
- // Find property node
- RPointerArray<CXnNodeAppIf> childNodes( aNode.ChildrenL() );
- CleanupClosePushL( childNodes );
-
- TInt count( childNodes.Count() );
-
- for ( TInt i = 0; i < count; i++ )
- {
- CXnNodeAppIf* node( childNodes[i] );
- if( node->Type()->Type() == XnPropertyNames::action::KProperty )
- {
- HBufC* name = PropertyValueL( *node, AiUiDef::xml::property::KClass );
- CleanupStack::PushL( name );
-
- if( name )
- {
- // Content model found for the element, create content item
- MAiPluginSettings* settings = AiUtility::CreatePluginSettingsL();
- CleanupDeletePushL( settings );
-
- MAiPluginContentItem& item = settings->AiPluginContentItem();
-
- // Type of the element is needed in content model
- HBufC* type( NULL );
- type = AiUtility::CopyToBufferL( type, aNode.Type()->Type());
- CleanupStack::PushL( type );
- item.SetTypeL( *type );
- CleanupStack::PopAndDestroy( type );
-
- item.SetNameL( *name );
-
- aItemName = name;
- aSettings.AppendL( settings );
- CleanupStack::Pop( settings );
- }
-
- // Ownership is given to aItemName
- CleanupStack::Pop( name );
-
- // First property element, which has class attribute is selected
- break;
- }
- }
-
- CleanupStack::PopAndDestroy( &childNodes );
+ CleanupStack::PopAndDestroy( 2, &model ); // key
+ }
}
// ----------------------------------------------------------------------------
// CXmlUiController::GetConfigurationsL()
// ----------------------------------------------------------------------------
//
-// ConfigurationItemsL()
void CXmlUiController::GetConfigurationsL( CXnNodeAppIf& aNode,
RAiSettingsItemArray& aSettings, const TDesC& aConfOwner )
{
@@ -553,9 +565,9 @@
// Collect settings
TInt count( nodes.Count() );
- for( TInt j = 0; j < count; j++ )
+ for( TInt i = 0; i < count; i++ )
{
- CXnNodeAppIf* node( nodes[j] );
+ CXnNodeAppIf* node( nodes[i] );
if( node->Type()->Type() == AiUiDef::xml::element::KConfiguration )
{
--- a/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/group/xnbitmapfactory.mmp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/group/xnbitmapfactory.mmp Wed Jun 09 09:29:04 2010 +0300
@@ -29,7 +29,8 @@
SOURCEPATH ../src
SOURCE xnbitmapfactory.cpp
SOURCE xnbitmap.cpp
-SOURCE xnbitmapadapter.cpp
+SOURCE xnbitmapadapter.cpp
+SOURCE xnimagedecoder.cpp
USERINCLUDE ../inc
USERINCLUDE ../../../inc
@@ -41,7 +42,8 @@
LIBRARY xn3layoutengine.lib
LIBRARY xn3utils.lib
LIBRARY avkon.lib
-
+LIBRARY imageconversion.lib
+LIBRARY fbscli.lib
LANG SC
START RESOURCE xn3bitmapfactory.rss
--- a/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/inc/xnbitmapadapter.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/inc/xnbitmapadapter.h Wed Jun 09 09:29:04 2010 +0300
@@ -26,6 +26,7 @@
// FORWARD DECLARATIONS
class CXnNodePluginIf;
+class CXnImageDecoder;
// CLASS DECLARATION
/**
@@ -57,6 +58,13 @@
void SetContentBitmaps(CFbsBitmap* aBitmap, CFbsBitmap* aMask);
/**
+ * Sets content bitmaps from file.
+ * @since S60 5.2
+ * @param aFilename Bitmap filename.
+ */
+ void SetContentBitmaps( TFileName& aFilename );
+
+ /**
* Gets content bitmaps. Ownership not is transferred.
* @since Series 60 3.1
* @param aBitmap Bitmap to draw
@@ -73,18 +81,6 @@
void DoHandlePropertyChangeL(CXnProperty* aProperty = NULL);
/**
- * From CCoeControl Handles the resource change.
- * @since Series 60 3.1
- * @param aType A type of the resource change
- * @return void.
- */
- void HandleScreenDeviceChangedL();
-
- /**
- * See CCoeControl documentation
- */
- void HandlePointerEventL( const TPointerEvent& aPointerEvent );
- /**
* From CCoeControl Handles the skin change
* @since Series 60 3.2
* @return void.
@@ -96,8 +92,7 @@
* Size change notification
*/
void SizeChanged();
- void Draw(const TRect& aRect) const;
-
+
private:
CXnBitmapAdapter(CXnNodePluginIf& aNode);
void ConstructL(CXnNodePluginIf& aNode);
@@ -106,15 +101,17 @@
private: // Data
// UI node, not owned
CXnNodePluginIf& iNode;
+ // Image decoder, owned
+ CXnImageDecoder* iDecoder;
// Whether the bitmaps has been loaded or not.
mutable TBool iAreBitmapsLoaded;
// Whether the data API has been used or not.
TBool iAreBitmapsSet;
- // Path of the bitmap
+ // Path of the bitmap, owned
HBufC* iPath;
// The size of the current bitmap
TSize iBitmapSize;
- // The path of the fallback image
+ // The path of the fallback image, owned
HBufC* iFallbackPath;
// Whether fallback path has changed and bitmaps need to be reloaded
TBool iFallbackPathChange;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/inc/xnimagedecoder.h Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Image decoder
+*
+*/
+
+
+#ifndef _XNIMAGEDECODER_H
+#define _XNIMAGEDECODER_H
+
+// System includes
+#include <e32base.h>
+
+// User includes
+class CXnBitmapAdapter;
+class CFbsBitmap;
+class CImageDecoder;
+class RFs;
+
+// Forward declarations
+
+/**
+ * Image decoder
+ *
+ * @ingroup group_xnbitmapfactory
+ * @lib xn3bitmapfactory.lib
+ * @since S60 5.2
+ */
+NONSHARABLE_CLASS( CXnImageDecoder ) : public CActive
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CXnImageDecoder* NewL( CXnBitmapAdapter& aAdapter, RFs& aFs );
+
+ /**
+ * Two-phased constructor. Leaving on stack
+ */
+ static CXnImageDecoder* NewLC( CXnBitmapAdapter& aAdapter, RFs& aFs );
+
+ /**
+ * Destructor
+ */
+ ~CXnImageDecoder();
+
+private:
+ // private constructors
+
+ /**
+ * Leaving constructor
+ */
+ void ConstructL();
+
+ /**
+ * C++ default constructor
+ */
+ CXnImageDecoder( CXnBitmapAdapter& aAdapter, RFs& aFs );
+
+private:
+ // from CActive
+
+ /**
+ * @see CActive
+ */
+ void RunL();
+
+ /**
+ * @see CActive
+ */
+ TInt RunError( TInt aError );
+
+ /**
+ * @see CActive
+ */
+ void DoCancel();
+
+public:
+ // new functions
+
+ /**
+ * Starts decode.
+ *
+ * @param aFile Image file
+ */
+ void DecodeL( TFileName& aFilename );
+
+private:
+ // new functions
+
+ void Cleanup();
+
+private:
+ // data
+
+ /** Bitmapadapter, not owned */
+ CXnBitmapAdapter& iAdapter;
+ /** File server session, not owned */
+ RFs& iFs;
+ /** Image decoder, owned */
+ CImageDecoder* iDecoder;
+ /** Bitmap, owned during conversion */
+ CFbsBitmap* iBitmap;
+ /** Mask, owned during conversion */
+ CFbsBitmap* iMask;
+ };
+
+#endif // _XNIMAGEDECODER_H
+
+// End of file
--- a/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/src/xnbitmap.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/src/xnbitmap.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -77,6 +77,15 @@
}
// -----------------------------------------------------------------------------
+// CXnBitmap::SetContentBitmaps
+// -----------------------------------------------------------------------------
+//
+void CXnBitmap::SetContentBitmaps( TFileName& aFilename )
+ {
+ (static_cast<CXnBitmapAdapter*>(ControlAdapter()))->SetContentBitmaps(aFilename);
+ }
+
+// -----------------------------------------------------------------------------
// CXnBitmap::ContentBitmaps
// -----------------------------------------------------------------------------
//
--- a/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/src/xnbitmapadapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/src/xnbitmapadapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -20,7 +20,7 @@
#include "xndomproperty.h"
#include "xnproperty.h"
#include "xncontroladapter.h"
-
+#include "xnimagedecoder.h"
#include "xnbitmapadapter.h"
_LIT(KSkin, "skin(");
@@ -55,6 +55,8 @@
iAreBitmapsLoaded = EFalse;
iFallbackPathChange = ETrue;
+
+ iDecoder = CXnImageDecoder::NewL( *this, iCoeEnv->FsSession() );
}
// -----------------------------------------------------------------------------
@@ -73,6 +75,7 @@
//
CXnBitmapAdapter::~CXnBitmapAdapter()
{
+ delete iDecoder;
delete iPath;
delete iFallbackPath;
}
@@ -82,7 +85,9 @@
// -----------------------------------------------------------------------------
//
void CXnBitmapAdapter::SetContentBitmaps(CFbsBitmap* aBitmap, CFbsBitmap* aMask)
- {
+ {
+ iDecoder->Cancel();
+
CXnControlAdapter::SetContentBitmaps( aBitmap, aMask );
iAreBitmapsSet = ETrue;
@@ -91,6 +96,20 @@
}
// -----------------------------------------------------------------------------
+// CXnBitmapAdapter::SetContentBitmaps
+// -----------------------------------------------------------------------------
+//
+void CXnBitmapAdapter::SetContentBitmaps( TFileName& aFilename )
+ {
+ TRAPD( err, iDecoder->DecodeL( aFilename ) );
+
+ if ( err )
+ {
+ SetContentBitmaps( NULL, NULL );
+ }
+ }
+
+// -----------------------------------------------------------------------------
// CXnBitmapAdapter::ContentBitmaps
// -----------------------------------------------------------------------------
//
@@ -100,15 +119,6 @@
}
// -----------------------------------------------------------------------------
-// CXnBitmapAdapter::Draw
-// -----------------------------------------------------------------------------
-//
-void CXnBitmapAdapter::Draw(const TRect& aRect) const
- {
- CXnControlAdapter::Draw( aRect );
- }
-
-// -----------------------------------------------------------------------------
// CXnBitmapAdapter::SizeChanged
// -----------------------------------------------------------------------------
//
@@ -190,25 +200,6 @@
}
// -----------------------------------------------------------------------------
-// CXnTextAdapter::HandleResourceChange
-// -----------------------------------------------------------------------------
-//
-void CXnBitmapAdapter::HandleScreenDeviceChangedL( )
- {
- CXnControlAdapter::HandleScreenDeviceChangedL();
- }
-
-// -----------------------------------------------------------------------------
-// CXnBitmapAdapter::HandlePointerEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CXnBitmapAdapter::HandlePointerEventL( const TPointerEvent& aPointerEvent )
- {
- CXnControlAdapter::HandlePointerEventL( aPointerEvent );
- }
-
-// -----------------------------------------------------------------------------
// CXnBitmapAdapter::SkinChanged
// -----------------------------------------------------------------------------
//
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnbitmapfactory/src/xnimagedecoder.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -0,0 +1,206 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Image decoder
+*
+*/
+
+// System includes
+#include <imageconversion.h>
+
+// User includes
+#include "xncomponent.h"
+#include "xnnodepluginif.h"
+#include "xnuienginepluginif.h"
+#include "xnbitmapadapter.h"
+#include "xnimagedecoder.h"
+
+using namespace ContentAccess;
+
+// Constants
+
+// ============================ LOCAL FUNCTIONS ================================
+// ============================ MEMBER FUNCTIONS ===============================
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CXnImageDecoder* CXnImageDecoder::NewL( CXnBitmapAdapter& aAdapter, RFs& aFs )
+ {
+ CXnImageDecoder* self = CXnImageDecoder::NewLC( aAdapter, aFs );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CXnImageDecoder* CXnImageDecoder::NewLC( CXnBitmapAdapter& aAdapter, RFs& aFs )
+ {
+ CXnImageDecoder* self = new ( ELeave ) CXnImageDecoder( aAdapter, aFs );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::~CXnImageDecoder()
+// C++ default destructor.
+// -----------------------------------------------------------------------------
+//
+CXnImageDecoder::~CXnImageDecoder()
+ {
+ Cancel();
+
+ Cleanup();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::CXnImageDecoder()
+// C++ default constructor.
+// -----------------------------------------------------------------------------
+//
+CXnImageDecoder::CXnImageDecoder( CXnBitmapAdapter& aAdapter, RFs& aFs )
+ : CActive( CActive::EPriorityHigh ), iAdapter( aAdapter ), iFs( aFs )
+ {
+ CActiveScheduler::Add( this );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::ConstructL()
+// 2nd phase constructor.
+// -----------------------------------------------------------------------------
+//
+void CXnImageDecoder::ConstructL()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::RunL()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnImageDecoder::RunL()
+ {
+ // Takes ownership of iBitmap and iMask
+ iAdapter.SetContentBitmaps( iBitmap, iMask );
+
+ iBitmap = NULL;
+ iMask = NULL;
+
+ delete iDecoder;
+ iDecoder = NULL;
+
+ iAdapter.Component()->Node()->UiEngineL()->RenderUIL();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::RunError()
+//
+// -----------------------------------------------------------------------------
+//
+TInt CXnImageDecoder::RunError( TInt /*aError*/ )
+ {
+ Cleanup();
+
+ // Set NULL bitmaps
+ TRAP_IGNORE( RunL() );
+
+ // Ignore
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::DoCancel()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnImageDecoder::DoCancel()
+ {
+ Cleanup();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::DecodeL()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnImageDecoder::DecodeL( TFileName& aFilename )
+ {
+ Cancel();
+
+ TInt options(
+ CImageDecoder::EOptionAlwaysThread |
+ CImageDecoder::EPreferFastDecode );
+
+ iDecoder = CImageDecoder::FileNewL( iFs, aFilename, EView,
+ ( CImageDecoder::TOptions ) options );
+
+ TFrameInfo frameInfo( iDecoder->FrameInfo( 0 ) );
+
+ CFbsBitmap* bitmap = new ( ELeave ) CFbsBitmap;
+ CleanupStack::PushL( bitmap );
+
+ User::LeaveIfError( bitmap->Create(
+ frameInfo.iOverallSizeInPixels, frameInfo.iFrameDisplayMode ) );
+
+ if ( frameInfo.iFlags & TFrameInfo::ETransparencyPossible )
+ {
+ CFbsBitmap* mask = new ( ELeave ) CFbsBitmap;
+ CleanupStack::PushL( mask );
+
+ User::LeaveIfError( mask->Create( frameInfo.iOverallSizeInPixels,
+ ( frameInfo.iFlags & TFrameInfo::EAlphaChannel ) ? EGray256 : EGray2 ) );
+
+ iDecoder->Convert( &iStatus, *bitmap, *mask );
+
+ CleanupStack::Pop( mask );
+ iMask = mask;
+ }
+ else
+ {
+ iDecoder->Convert( &iStatus, *bitmap );
+ }
+
+ CleanupStack::Pop( bitmap );
+ iBitmap = bitmap;
+
+ SetActive();
+ }
+
+// -----------------------------------------------------------------------------
+// CXnImageDecoder::Cleanup()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnImageDecoder::Cleanup()
+ {
+ if ( iDecoder )
+ {
+ iDecoder->Cancel();
+ }
+
+ delete iDecoder;
+ iDecoder = NULL;
+
+ delete iBitmap;
+ iBitmap = NULL;
+
+ delete iMask;
+ iMask = NULL;
+ }
+
+// End of file
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickeradapter.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickeradapter.h Wed Jun 09 09:29:04 2010 +0300
@@ -29,13 +29,6 @@
class CAknMarqueeControl;
// CONSTANTS
-// The default values for the newsticker control
-const TInt KXnNewstickerDelay = 1000000; // start scrolling after a delay of 1 second
-const TInt KXnNewstickerInterval = 100000; // scroll 10 times in a second
-const TInt KXnNewstickerScrollAmount = 6; // scroll 6 pixels at time
-const TInt KXnNewstickerLoops = 1; // loop amount
-const TInt KNoDelay = 0; // No delay to start the animation
-const TInt KAnimationTime = 6000000; // The animation lasts 6 seconds
// CLASS DECLARATION
@@ -47,8 +40,7 @@
* @lib xnnewstickerfactory.dll
* @since Series 60 3.2
*/
-class CXnNewstickerAdapter : public CXnControlAdapter,
- XnNewstickerInterface::MXnNewstickerCallbackInterface
+class CXnNewstickerAdapter : public CXnControlAdapter
{
public:
@@ -120,16 +112,14 @@
void ClearTitles();
/**
- * Set callback interface.
- * @param aCallback The callback interface pointer.
+ * Restarts current title
*/
- void SetCallbackInterfaceL(
- XnNewstickerInterface::MXnNewstickerCallbackInterface* aCallback );
-
+ void Restart();
+
/**
* Start showing the titles.
*/
- void Start();
+ void Start( TBool aSelectTitle = EFalse );
/**
* Stop showing the titles.
@@ -157,17 +147,13 @@
* @return ETrue if the method should be called again.
*/
static TInt PeriodicEventL( TAny * aPtr );
-
- void MakeVisible( TBool aVisible );
-
+
public: // from base classes
- // From MXnNewstickerCallbackInterface
/**
- * Called when the title has been shown and is now offscreen.
- * @param aTitleIndex The title that has been completely shown.
- */
- void TitleScrolled( TInt aTitleIndex );
+ * See CCoeControl documentation
+ */
+ void MakeVisible( TBool aVisible );
/**
* See CCoeControl documentation
@@ -208,20 +194,14 @@
* Reports newsticker event
*
*/
- void ReportNewstickerEvent( const TDesC8& aEventName );
+ void ReportNewstickerEvent( const TDesC8& aEventName, TInt aIndex );
/**
* Draws text
* Text drawing function is selected by scrolling behaviour
*/
- void DrawText( const TDesC& aText, const TRect& aRect );
+ void DrawText( const TDesC& aText );
- /**
- * ETrue if marquee control redrawing is needed. EFalse if truncated text is needed
- */
- TBool Redraw() { return iRedraw; }
-
-
private:
CXnNewstickerAdapter( CXnControlAdapter* aParent, CXnNodePluginIf& aNode );
@@ -256,12 +236,12 @@
/**
* FScrolls alternative text. Function is called by periodic timer
*/
- void DoScroll();
+ void DoScroll( TBool aEndOfLoop );
/**
* Draws text directly to screen if scrollins is not needed
*/
- void DrawStaticText( CWindowGc& aGc, const TDesC& aText ) const;
+ void DrawStaticText( CWindowGc& aGc, const TDesC& aText, TBool aTruncate = ETrue ) const;
/**
* Draws scrolling text to screen via marquee control
@@ -277,26 +257,15 @@
CPeriodic* iPeriodicTimer;
/**
- * The callback interface which is used when a title has been shown.
- * Not own.
- */
- XnNewstickerInterface::MXnNewstickerCallbackInterface* iCallback;
-
- /**
* The control handling the text title showing
* Own.
*/
CXnNewstickerControl* iControl;
/**
- * The delay before first event
+ * Alternate delay, i.e. display time
*/
- TInt iAlternateDelay;
-
- /**
- * The alternate interval between ticks.
- */
- TInt iAlternateInterval;
+ TInt iAlternateDelay;
/**
* UI node
@@ -360,19 +329,11 @@
* Current strikethrough behaviour
*/
TFontStrikethrough iStrikethrough;
-
- /**
- * is scroll looping activated
- */
- TBool iScrollLooping;
-
+
/**
* is marquee control redraw needed
*/
TBool iRedraw;
-
-
-
};
#endif // XNNEWSTICKERADAPTER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h Wed Jun 09 09:29:04 2010 +0300
@@ -95,7 +95,7 @@
* Returns last index from iTitleTexts
* Which is not empty string
*/
- TInt LastIndexWithContent();
+ TInt LastIndexWithContent() const;
/**
* Delete all titles.
@@ -116,14 +116,33 @@
/**
* Selects title to be shown
*/
- const TDesC& SelectTitle();
+ const TDesC& CurrentTitle() const;
+
+ /**
+ * Selects current title to display
+ */
+ TInt SelectTitle();
/**
- * Sets the current title to default ( last one ) or move to next one
+ * Selects next title to display
+ */
+ TBool SelectNextTitle();
+
+ /**
+ * Checks is there any visible titles in array
*/
- TBool SetCurrentTitle( TBool aSetDefault = EFalse );
+ TBool IsVisibleTitles() const;
+
+ /**
+ * Sets scroll looping
+ */
+ void SetScrollLooping( TBool aLooping );
-
+ /**
+ * Peeks next title, return loop status in aEndOfLoop.
+ */
+ TPtrC PeekNextTitle( TBool& aEndOfLoop ) const;
+
private:
CXnNewstickerControl(CXnNewstickerAdapter* aAdapter);
@@ -139,11 +158,6 @@
* @return The next index that has content or -1 if nothing was found
*/
TInt GetNextTitleWithContent( TInt aStartSearch, TBool aBackwards = EFalse ) const;
-
- /**
- * Checks is there any visible titles in array
- */
- TBool IsVisibleTitles() const;
private: // Data
@@ -165,9 +179,10 @@
*/
CXnNewstickerAdapter* iAdapter;
-
-
-
+ /**
+ * is scroll looping activated
+ */
+ TBool iScrollLooping;
};
#endif // XNNEWSTICKERCONTROL_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewsticker.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewsticker.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -142,17 +142,6 @@
}
// ---------------------------------------------------------
-// CXnNewsticker::SetCallbackInterfaceL
-// ---------------------------------------------------------
-//
-void CXnNewsticker::SetCallbackInterfaceL(
- XnNewstickerInterface::MXnNewstickerCallbackInterface* aCallback)
- {
- (static_cast<CXnNewstickerAdapter*>
- (ControlAdapter()))->SetCallbackInterfaceL(aCallback);
- }
-
-// ---------------------------------------------------------
// CXnNewsticker::MakeInterfaceL
// ---------------------------------------------------------
//
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickeradapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickeradapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description: Implementation for wrapper for a label
+* Description: Marquee control
*
*/
@@ -37,9 +37,12 @@
#include "xnnewstickercontrol.h"
#include "xncomponentnodeimpl.h"
-
+// Constants
const TInt KThousandCoef = 1000;
const TInt KByteLength = 8;
+const TInt KXnNewstickerDelay = 1000000; // start scrolling after a delay of 1 second
+const TInt KXnNewstickerInterval = 100000; // scroll 10 times in a second
+const TInt KXnNewstickerScrollAmount = 6; // scroll 6 pixels at time
// ============================= LOCAL FUNCTIONS ===============================
@@ -79,160 +82,132 @@
void CXnNewstickerAdapter::SetNewstickerPropertiesL()
{
// scroll amount
- TInt scrollamount = GetIntPropertyL( iNode,
- XnPropertyNames::newsticker::KXnScrollAmount ); // px
+ TInt scrollamount( GetIntPropertyL( iNode,
+ XnPropertyNames::newsticker::KXnScrollAmount ) ); // px
- if( KErrNotFound == scrollamount )
+ if ( scrollamount == KErrNotFound )
{
scrollamount = KXnNewstickerScrollAmount;
}
CXnProperty* prop( iNode.GetPropertyL(
- XnPropertyNames::newsticker::KScrollBehaviour ) );
+ XnPropertyNames::newsticker::KScrollBehaviour ) );
+
+ // Default
+ iScrollBehaviour = EScroll;
- if( prop )
+ if ( prop )
{
- if ( prop->StringValue() ==
- XnPropertyNames::newsticker::scroll_behaviour::KAlternate )
+ const TDesC8& value( prop->StringValue() );
+
+ if ( value == XnPropertyNames::newsticker::scroll_behaviour::KAlternate )
{
scrollamount = 0;
iScrollBehaviour = EAlternate;
}
- else if ( prop->StringValue() ==
- XnPropertyNames::newsticker::scroll_behaviour::KScrollAlternate )
+ else if ( value == XnPropertyNames::newsticker::scroll_behaviour::KScrollAlternate )
{
iScrollBehaviour = EScrollAlternate;
}
- else
- {
- iScrollBehaviour = EScroll;
- }
}
- else
- {
- iScrollBehaviour = EScroll;
- }
-
+
iMarqueeControl->SetSpeedInPixels( scrollamount );
- if( iScrollBehaviour == EScroll )
+ if ( iScrollBehaviour == EScroll || iScrollBehaviour == EScrollAlternate )
{
- // scroll delay
- TInt scrolldelay = GetIntPropertyL( iNode,
- XnPropertyNames::newsticker::KXnScrollDelay ); // ms
+ // scroll delay, i.e. fps
+ TInt scrolldelay( GetIntPropertyL( iNode,
+ XnPropertyNames::newsticker::KXnScrollDelay ) ); // ms
- if( KErrNotFound == scrolldelay )
+ if ( scrolldelay == KErrNotFound )
{
scrolldelay = KXnNewstickerInterval;
}
else
{
- scrolldelay *= KThousandCoef; // change to microseconds
+ // change to seconds
+ scrolldelay *= KThousandCoef;
}
- iMarqueeControl->SetInterval( scrolldelay );
- iAlternateInterval = scrolldelay;
-
+ iMarqueeControl->SetInterval( scrolldelay );
+
// start delay
- TInt startdelay = GetIntPropertyL( iNode,
- XnPropertyNames::newsticker::KXnStartDelay ); // ms
+ TInt startdelay( GetIntPropertyL( iNode,
+ XnPropertyNames::newsticker::KXnStartDelay ) ); // ms
- if( KErrNotFound == startdelay )
+ if ( startdelay == KErrNotFound )
{
startdelay = KXnNewstickerDelay;
}
else
{
- startdelay *= KThousandCoef; // change to microseconds
+ // change to seconds
+ startdelay *= KThousandCoef;
}
iMarqueeControl->SetDelay( startdelay );
iAlternateDelay = startdelay;
- }
- else if( iScrollBehaviour == EScrollAlternate )
- {
- // scroll delay
- TInt scrolldelay = GetIntPropertyL( iNode,
- XnPropertyNames::newsticker::KXnScrollDelay ); // ms
- if( KErrNotFound == scrolldelay )
+ if ( iScrollBehaviour == EScrollAlternate )
{
- scrolldelay = KXnNewstickerInterval;
+ TInt alternateTime( GetIntPropertyL( iNode,
+ XnPropertyNames::newsticker::KDisplayTime ) );
+
+ if( alternateTime == KErrNotFound )
+ {
+ alternateTime = KXnNewstickerDelay;
+ }
+ else
+ {
+ // change to seconds
+ alternateTime *= KThousandCoef;
+ }
+
+ iAlternateDelay = alternateTime;
+ }
+ }
+ else // TScrollBehaviour::EAlternate
+ {
+ TInt alternateTime( GetIntPropertyL(
+ iNode, XnPropertyNames::newsticker::KDisplayTime ) );
+
+ if ( alternateTime == KErrNotFound )
+ {
+ alternateTime = KXnNewstickerDelay;
}
- else
+ else
{
- scrolldelay *= KThousandCoef; // change to microseconds
- }
-
- iMarqueeControl->SetInterval( scrolldelay );
- iAlternateInterval = scrolldelay;
-
- TInt alternateTime( GetIntPropertyL( iNode, XnPropertyNames::newsticker::KDisplayTime ) );
-
- if( alternateTime == KErrNotFound )
- {
- alternateTime = 0;
+ // change to seconds
+ alternateTime *= KThousandCoef;
}
- alternateTime *= KThousandCoef; // change to ms
-
- iAlternateInterval = alternateTime;
-
- // start delay
- TInt startdelay = GetIntPropertyL( iNode,
- XnPropertyNames::newsticker::KXnStartDelay ); // ms
-
- if( KErrNotFound == startdelay )
- {
- startdelay = 0;
- }
- else
- {
- startdelay *= KThousandCoef; // change to microseconds
- }
+ iMarqueeControl->SetDelay( 0 );
+ iMarqueeControl->SetInterval( 0 );
- iMarqueeControl->SetDelay( startdelay );
- iAlternateDelay = startdelay;
- }
- else // TScrollBehaviour::EAlternate
- {
- TInt alternateTime( GetIntPropertyL( iNode, XnPropertyNames::newsticker::KDisplayTime ) );
-
- if( alternateTime == KErrNotFound )
- {
- alternateTime = 0;
- }
-
- alternateTime *= KThousandCoef; // change to ms
-
- iMarqueeControl->SetDelay( 0 );
- iMarqueeControl->SetInterval( alternateTime );
-
- iAlternateDelay = 0;
- iAlternateInterval = alternateTime;
+ iAlternateDelay = alternateTime;
}
// _s60-scroll-loop property. True by default.
CXnProperty* loopProp( iNode.GetPropertyL(
- XnPropertyNames::newsticker::KScrollLoop ) );
+ XnPropertyNames::newsticker::KScrollLoop ) );
- if( loopProp && loopProp->StringValue() == XnPropertyNames::KFalse )
+ TBool looping( ETrue );
+
+ if ( loopProp && loopProp->StringValue() == XnPropertyNames::KFalse )
{
- iScrollLooping = EFalse;
+ looping = EFalse;
}
- else
- {
- iScrollLooping = ETrue;
- }
+
+ iControl->SetScrollLooping( looping );
CXnProperty* restartProperty( iNode.GetPropertyL(
- XnPropertyNames::newsticker::KRestartAfterUpdate ) );
+ XnPropertyNames::newsticker::KRestartAfterUpdate ) );
if ( restartProperty && restartProperty->StringValue() == XnPropertyNames::KTrue )
{
iRestartAfterUpdate = ETrue;
}
- }
+ }
// ============================ MEMBER FUNCTIONS ===============================
@@ -269,7 +244,7 @@
iMarqueeControl->SetContainerWindowL( *aParent );
iMarqueeControl->ActivateL();
- iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+ iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityLow );
SetTextPropertiesL();
SetNewstickerPropertiesL();
@@ -281,39 +256,15 @@
{
CXnNodePluginIf* child( children[i] );
- CXnType* xnType = child->Type();
-
+ const TDesC8& type( child->Type()->Type() );
+
// We only care for <title> nodes
- if ( xnType && xnType->Type() == XnPropertyNames::title::KTitle )
+ if ( type == XnPropertyNames::title::KTitle )
{
- // Append title, if one is given from the theme use that.
- // If no content yet available create empty title so that
- // indexing is always current
- const TDesC8& pcData( child->GetPCData() );
-
- HBufC* pcData16 = CnvUtfConverter::ConvertToUnicodeFromUtf8L( pcData );
- CleanupStack::PushL( pcData16 );
-
- TPtr ptr( pcData16->Des() );
-
- CXnUtils::CollapseWhiteSpace( iNode, ptr );
-
- if( ptr.Length() > 0 )
- {
- iControl->AppendTitleL( *pcData16 );
- }
- else
- {
- iControl->AppendTitleL( KNullDesC );
- }
-
- CleanupStack::PopAndDestroy( pcData16 );
+ iControl->AppendTitleL( KNullDesC );
}
}
- CleanupStack::PopAndDestroy( &children );
-
- iControl->SetCurrentTitle( ETrue );
-
+ CleanupStack::PopAndDestroy( &children );
}
// -----------------------------------------------------------------------------
@@ -324,14 +275,13 @@
CXnNewstickerAdapter::CXnNewstickerAdapter( CXnControlAdapter* /*aParent*/,
CXnNodePluginIf& aNode )
: iNode( aNode ),
- iPowerSaveMode( ETrue ),
+ iPowerSaveMode( EFalse ),
iRestartAfterUpdate( EFalse ),
iTextColor( KRgbBlack ),
- iTextAlignment( ELayoutAlignLeft ),
+ iTextAlignment( CGraphicsContext::ELeft ),
iTextBaseline( 0 ),
iUnderlining( EUnderlineOff ),
- iStrikethrough( EStrikethroughOff ),
- iScrollLooping( ETrue ),
+ iStrikethrough( EStrikethroughOff ),
iRedraw( ETrue )
{
}
@@ -343,11 +293,6 @@
//
CXnNewstickerAdapter::~CXnNewstickerAdapter()
{
- if( iPeriodicTimer && iPeriodicTimer->IsActive() )
- {
- iPeriodicTimer->Cancel();
- }
-
delete iPeriodicTimer;
if( iFont && ( iReleaseFont == 1 ) )
@@ -358,7 +303,6 @@
delete iMarqueeControl;
delete iControl;
-
}
// -----------------------------------------------------------------------------
@@ -477,15 +421,13 @@
switch( alignment )
{
case EHCenterVCenter:
- iTextAlignment = ELayoutAlignCenter;
- break;
-
+ iTextAlignment = CGraphicsContext::ECenter;
+ break;
case EHRightVCenter:
- iTextAlignment = ELayoutAlignRight;
- break;
-
+ iTextAlignment = CGraphicsContext::ERight;
+ break;
default:
- iTextAlignment = ELayoutAlignLeft;
+ iTextAlignment = CGraphicsContext::ELeft;
break;
}
}
@@ -520,9 +462,8 @@
iNode.SetDirtyL();
if ( iRestartAfterUpdate )
- {
- Stop();
- Start();
+ {
+ Restart();
}
}
@@ -565,68 +506,63 @@
}
// -----------------------------------------------------------------------------
-// CXnNewstickerAdapter::SetCallbackInterfaceL
+// CXnNewstickerAdapter::Restart
// -----------------------------------------------------------------------------
//
-void CXnNewstickerAdapter::SetCallbackInterfaceL(
- XnNewstickerInterface::MXnNewstickerCallbackInterface* aCallback )
+void CXnNewstickerAdapter::Restart()
{
- iCallback = aCallback;
- }
-
-// -----------------------------------------------------------------------------
-// CXnNewstickerAdapter::TitleScrolled
-// -----------------------------------------------------------------------------
-//
-void CXnNewstickerAdapter::TitleScrolled( TInt aTitleIndex )
- {
- if( iCallback )
- {
- iCallback->TitleScrolled( aTitleIndex );
- }
+ Stop();
+ Start( ETrue );
}
// -----------------------------------------------------------------------------
-// CXnNewstickerAdapter::StartL
+// CXnNewstickerAdapter::Start
// -----------------------------------------------------------------------------
//
-void CXnNewstickerAdapter::Start()
+void CXnNewstickerAdapter::Start( TBool aSelectTitle )
{
- if( IsVisible() && !iPowerSaveMode )
+ if ( IsVisible() && !iPowerSaveMode && !iNode.Rect().IsEmpty() )
{
- if( iControl->TitleCount() < 1 )
+ if ( aSelectTitle )
{
- // Nothing to show
- return;
+ if ( iControl->SelectTitle() == KErrNotFound )
+ {
+ return;
+ }
}
- switch( iScrollBehaviour )
+ const TDesC& title( iControl->CurrentTitle() );
+
+ switch ( iScrollBehaviour )
{
case EScroll:
+ case EScrollAlternate:
{
iMarqueeControl->EnableMarquee( ETrue );
iRedraw = ETrue;
+
+ TInt textWidth(
+ iFont->TextWidthInPixels( title ) );
+
+ TInt rectWidth( iNode.Rect().Width() );
+
+ if ( textWidth < rectWidth )
+ {
+ StartAlternateCounter();
+ }
}
- break;
-
+ break;
case EAlternate:
{
iMarqueeControl->EnableMarquee( EFalse );
StartAlternateCounter();
}
- break;
-
- case EScrollAlternate:
- {
- iMarqueeControl->EnableMarquee( ETrue );
- StartAlternateCounter();
- iRedraw = ETrue;
- }
- break;
-
+ break;
default:
break;
}
+
+ DrawDeferred();
}
}
@@ -646,10 +582,7 @@
//
void CXnNewstickerAdapter::StopAlternateCounter()
{
- if( iPeriodicTimer && iPeriodicTimer->IsActive() )
- {
- iPeriodicTimer->Cancel();
- }
+ iPeriodicTimer->Cancel();
}
// -----------------------------------------------------------------------------
@@ -668,15 +601,12 @@
//
void CXnNewstickerAdapter::StartAlternateCounter()
{
- if( iPeriodicTimer && iPeriodicTimer->IsActive() )
- {
- iPeriodicTimer->Cancel();
- }
-
+ iPeriodicTimer->Cancel();
+
iPeriodicTimer->Start(
TTimeIntervalMicroSeconds32( iAlternateDelay ),
- TTimeIntervalMicroSeconds32( iAlternateInterval ),
- TCallBack( CXnNewstickerAdapter::PeriodicEventL, this ) );
+ TTimeIntervalMicroSeconds32( 0 ),
+ TCallBack( PeriodicEventL, this ) );
}
// -----------------------------------------------------------------------------
@@ -686,9 +616,17 @@
TInt CXnNewstickerAdapter::PeriodicEventL( TAny* aPtr )
{
__PRINTS( "CXnNewstickerAdapter::PeriodicEventL, timer runs" );
+
CXnNewstickerAdapter* self = static_cast< CXnNewstickerAdapter* >( aPtr );
- self->DoScroll();
+
+ self->iPeriodicTimer->Cancel();
+
+ TBool endOfLoop( self->iControl->SelectNextTitle() );
+
+ self->DoScroll( endOfLoop );
+ self->DrawNow();
+
return KErrNone;
}
@@ -700,9 +638,9 @@
{
CCoeControl::MakeVisible( aVisible );
- if( aVisible )
+ if ( aVisible )
{
- Start();
+ Restart();
}
else
{
@@ -719,7 +657,7 @@
CXnControlAdapter::SizeChanged();
iMarqueeControl->SetExtent( iNode.Rect().iTl, iNode.Rect().Size() );
- iTextBaseline = iNode.Rect().Height() / 2 + iFont->AscentInPixels() / 2;
+ iTextBaseline = iNode.Rect().Height() / 2 + iFont->AscentInPixels() / 2;
}
// -----------------------------------------------------------------------------
@@ -737,14 +675,12 @@
//
CCoeControl* CXnNewstickerAdapter::ComponentControl( TInt aIndex ) const
{
- switch ( aIndex )
+ if ( aIndex == 0 )
{
- case 0:
- return iMarqueeControl;
-
- default:
- return NULL;
+ return iMarqueeControl;
}
+
+ return NULL;
}
// -----------------------------------------------------------------------------
@@ -771,10 +707,11 @@
// CXnNewstickerAdapter::ReportNewstickerEventL
// -----------------------------------------------------------------------------
//
-void CXnNewstickerAdapter::ReportNewstickerEvent( const TDesC8& aEventName )
+void CXnNewstickerAdapter::ReportNewstickerEvent( const TDesC8& aEventName,
+ TInt aIndex )
{
- TBuf8<KByteLength>index( KNullDesC8 );
- index.Num( CurrentTitleIndex() );
+ TBuf8< KByteLength >index( KNullDesC8 );
+ index.Num( aIndex );
TRAP_IGNORE( iNode.ReportTriggerEventL( aEventName,
XnPropertyNames::action::trigger::name::KTitleIndex, index ); )
@@ -786,7 +723,14 @@
// -----------------------------------------------------------------------------
void CXnNewstickerAdapter::Draw( const TRect& aRect ) const
{
- const_cast<CXnNewstickerAdapter*>(this)->DrawText( iControl->SelectTitle(), aRect );
+ CXnControlAdapter::Draw( aRect );
+
+ if ( iControl->CurrentTitleIndex() != KErrNotFound )
+ {
+ const TDesC& title( iControl->CurrentTitle() );
+
+ const_cast< CXnNewstickerAdapter* >( this )->DrawText( title );
+ }
}
// -----------------------------------------------------------------------------
@@ -796,6 +740,7 @@
void CXnNewstickerAdapter::DoEnterPowerSaveModeL( TModeEvent /*aEvent*/ )
{
iPowerSaveMode = ETrue;
+
Stop();
}
@@ -807,9 +752,9 @@
{
iPowerSaveMode = EFalse;
- if( IsVisible() )
+ if ( IsVisible() )
{
- Start();
+ Restart();
}
}
@@ -817,61 +762,65 @@
// CXnNewstickerAdapter::DrawText
// Text drawing function is selected by scrolling behaviour
// -----------------------------------------------------------------------------
-void CXnNewstickerAdapter::DrawText( const TDesC& aText, const TRect& aRect )
+void CXnNewstickerAdapter::DrawText( const TDesC& aText )
{
- CWindowGc& gc = SystemGc();
+ CWindowGc& gc( SystemGc() );
- TRect rect = iNode.Rect();
-
- CXnControlAdapter::Draw( aRect );
-
+ TRect rect( iNode.Rect() );
+
gc.SetPenColor( iTextColor );
gc.UseFont( iFont );
gc.SetUnderlineStyle( iUnderlining );
gc.SetStrikethroughStyle( iStrikethrough );
- TInt textWidth = iFont->TextWidthInPixels( aText );
- TInt rectWidth = rect.Width();
+ TInt textWidth( iFont->TextWidthInPixels( aText ) );
+ TInt rectWidth( rect.Width() );
- switch( iScrollBehaviour )
+ switch ( iScrollBehaviour )
{
case EScroll:
case EScrollAlternate:
{
- if( !iRedraw || textWidth < rectWidth )
+ if ( !iRedraw || textWidth < rectWidth )
{
iMarqueeControl->Stop();
- DrawStaticText( gc, aText );
+ DrawStaticText( gc, aText );
}
else
{
iMarqueeControl->Start();
- TBool isLast = DrawMarqueeText( gc, aText );
-
- if( isLast )
+
+ iRedraw = !DrawMarqueeText( gc, aText );
+
+ if ( !iRedraw )
{
- if( !iScrollLooping )
+ // Marquee is in end
+ if ( iPeriodicTimer && !iPeriodicTimer->IsActive() )
{
- iRedraw = EFalse;
+ iPeriodicTimer->Start(
+ TTimeIntervalMicroSeconds32( 0 ),
+ TTimeIntervalMicroSeconds32( 0 ),
+ TCallBack( PeriodicEventL, this ) );
}
- iMarqueeControl->Reset();
- StartAlternateCounter();
- }
- }
+ TBool endOfLoop;
+
+ const TDesC& next( iControl->PeekNextTitle( endOfLoop ) );
+
+ DrawStaticText( gc, next, endOfLoop );
+ }
+ }
}
- break;
-
+ break;
case EAlternate:
{
DrawStaticText( gc, aText );
}
- break;
-
+ break;
default:
break;
}
- }
+ }
// -----------------------------------------------------------------------------
// CXnNewstickerAdapter::RedrawCallback
@@ -880,31 +829,35 @@
//
TInt CXnNewstickerAdapter::RedrawCallback( TAny* aPtr )
{
- CXnNewstickerAdapter* self = static_cast<CXnNewstickerAdapter*>( aPtr );
- self->DrawNow();
-
- return self->Redraw();
-
+ CXnNewstickerAdapter* self = static_cast< CXnNewstickerAdapter* >( aPtr );
+
+ if ( self->iRedraw )
+ {
+ self->DrawNow();
+ }
+
+ return self->iRedraw;
}
// -----------------------------------------------------------------------------
// CXnNewstickerAdapter::DoScroll
-// Scrolls alternative text. Function is called by periodic timer
+//
// -----------------------------------------------------------------------------
//
-void CXnNewstickerAdapter::DoScroll()
+void CXnNewstickerAdapter::DoScroll( TBool aEndOfLoop )
{
- ReportNewstickerEvent( XnPropertyNames::action::trigger::name::KTitleScrolled );
+ iMarqueeControl->Reset();
+
+ iRedraw = EFalse;
- if( iControl->SetCurrentTitle() )
+ if ( !aEndOfLoop )
+ {
+ Start();
+ }
+ else
{
- // stop alternate scrolling if current index is last
- StopAlternateCounter();
+ Stop();
}
-
- DrawNow();
-
- ReportNewstickerEvent( XnPropertyNames::action::trigger::name::KTitleToScroll );
}
// -----------------------------------------------------------------------------
@@ -912,17 +865,22 @@
// Draws text directly to screen when scrolling is not needed
// -----------------------------------------------------------------------------
//
-void CXnNewstickerAdapter::DrawStaticText( CWindowGc& aGc, const TDesC& aText ) const
+void CXnNewstickerAdapter::DrawStaticText( CWindowGc& aGc,
+ const TDesC& aText, TBool aTruncate ) const
{
HBufC* text = HBufC::New( aText.Length() + KAknBidiExtraSpacePerLine );
- if( text )
+ if ( text )
{
- TRect rect = iNode.Rect();
+ TRect rect = iNode.Rect();
TInt maxLength = rect.Width();
+
+ TChar clipChar( aTruncate ? KEllipsis : 0xFFFF );
+
TPtr ptr = text->Des();
AknBidiTextUtils::ConvertToVisualAndClip(
- aText, ptr, *iFont, maxLength, maxLength );
+ aText, ptr, *iFont, maxLength, maxLength,
+ AknBidiTextUtils::EImplicit, clipChar );
aGc.DrawText( *text, rect, iTextBaseline,
( CGraphicsContext::TTextAlign )iTextAlignment );
@@ -936,9 +894,10 @@
// Draws scrolling text to screen via marquee control
// -----------------------------------------------------------------------------
//
-TBool CXnNewstickerAdapter::DrawMarqueeText( CWindowGc& aGc, const TDesC& aText ) const
+TBool CXnNewstickerAdapter::DrawMarqueeText( CWindowGc& aGc,
+ const TDesC& aText ) const
{
- TRect rect = iNode.Rect();
+ TRect rect( iNode.Rect() );
// returns true when all loops have been executed
return iMarqueeControl->DrawText( aGc, rect, aText, iTextBaseline,
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -17,13 +17,9 @@
// INCLUDE FILES
-#include <AknUtils.h>
-#include <AknsDrawUtils.h>
-#include <AknBidiTextUtils.h>
-
#include "xnnewstickercontrol.h"
#include "xnnewstickeradapter.h"
-
+#include "xnproperty.h"
// CONSTANTS
@@ -36,8 +32,9 @@
// -----------------------------------------------------------------------------
//
CXnNewstickerControl::CXnNewstickerControl( CXnNewstickerAdapter* aAdapter ) :
- iCurrentTitleIndex( -1 ),
- iAdapter( aAdapter )
+ iCurrentTitleIndex( KErrNotFound ),
+ iAdapter( aAdapter ),
+ iScrollLooping( ETrue )
{
}
@@ -76,6 +73,16 @@
}
// -----------------------------------------------------------------------------
+// CXnNewstickerControl::SetScrollLooping()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnNewstickerControl::SetScrollLooping( TBool aLooping )
+ {
+ iScrollLooping = aLooping;
+ }
+
+// -----------------------------------------------------------------------------
// CXnNewstickerControl::AppendTitleL
// (other items were commented in a header).
// -----------------------------------------------------------------------------
@@ -143,7 +150,7 @@
if(count == 1)
{
iAdapter->Stop();
- iCurrentTitleIndex = -1;
+ iCurrentTitleIndex = KErrNotFound;
}
UpdateTitleL( KNullDesC, aIndex );
@@ -177,15 +184,18 @@
// CXnNewstickerControl::LastIndexWithContent
// -----------------------------------------------------------------------------
//
-TInt CXnNewstickerControl::LastIndexWithContent()
+TInt CXnNewstickerControl::LastIndexWithContent() const
{
for( TInt i(iTitleTexts.Count()-1); i>=0; --i )
{
- if ( iTitleTexts[ i ]->Des().Length() > 0 )
+ const TDesC& title( *iTitleTexts[i] );
+
+ if( title != KNullDesC() )
{
return i;
- }
+ }
}
+
return KErrNotFound;
}
@@ -196,7 +206,7 @@
void CXnNewstickerControl::ClearTitles()
{
iAdapter->Stop();
- iCurrentTitleIndex = -1;
+ iCurrentTitleIndex = KErrNotFound;
// Don't delete just clear the contents
for( TInt i=0; i < iTitleTexts.Count(); i++ )
{
@@ -214,26 +224,13 @@
}
// -----------------------------------------------------------------------------
-// CXnNewstickerControl::SelectTitle
+// CXnNewstickerControl::CurrentTitle
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
-const TDesC& CXnNewstickerControl::SelectTitle()
+const TDesC& CXnNewstickerControl::CurrentTitle() const
{
- if( IsVisibleTitles() )
- {
- if( iCurrentTitleIndex < 0 || iCurrentTitleIndex >= iTitleTexts.Count() )
- {
- // Get the last title
- TInt index =
- GetNextTitleWithContent( iTitleTexts.Count() - 1, ETrue );
- iCurrentTitleIndex = index;
- }
-
- return Title( iCurrentTitleIndex );
- }
-
- return KNullDesC;
+ return Title( iCurrentTitleIndex );
}
// -----------------------------------------------------------------------------
@@ -241,7 +238,7 @@
// -----------------------------------------------------------------------------
//
TInt CXnNewstickerControl::GetNextTitleWithContent( TInt aStartSearch,
- TBool aBackwards ) const
+ TBool aBackwards ) const
{
TInt dir = 1;
if( aBackwards )
@@ -251,59 +248,157 @@
for( TInt i = aStartSearch; i < iTitleTexts.Count() && i >= 0; i += dir )
{
- if( iTitleTexts[i]->Compare( KNullDesC ) != KErrNone )
+ const TDesC& title( *iTitleTexts[i] );
+
+ if( title != KNullDesC() )
{
return i;
}
}
- return aStartSearch;
+ return KErrNotFound;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNewstickerControl::SelectTitle
+// -----------------------------------------------------------------------------
+//
+TInt CXnNewstickerControl::SelectTitle()
+ {
+ TInt index( GetNextTitleWithContent( 0 ) );
+
+ TInt currentIndex( iCurrentTitleIndex );
+
+ iCurrentTitleIndex = index;
+
+ if ( currentIndex != iCurrentTitleIndex )
+ {
+ if ( currentIndex != KErrNotFound )
+ {
+ iAdapter->ReportNewstickerEvent(
+ XnPropertyNames::action::trigger::name::KTitleScrolled,
+ currentIndex );
+ }
+
+ if ( iCurrentTitleIndex != KErrNotFound )
+ {
+ iAdapter->ReportNewstickerEvent(
+ XnPropertyNames::action::trigger::name::KTitleToScroll,
+ iCurrentTitleIndex );
+ }
+ }
+
+ return iCurrentTitleIndex;
}
// -----------------------------------------------------------------------------
-// CXnNewstickerControl::SetCurrentTitle
+// CXnNewstickerControl::SelectNextTitle
// -----------------------------------------------------------------------------
//
-TBool CXnNewstickerControl::SetCurrentTitle( TBool aSetDefault )
+TBool CXnNewstickerControl::SelectNextTitle()
+ {
+ TBool ret( EFalse );
+ TInt lastIndex( iTitleTexts.Count() - 1 );
+ TInt lastIndexWithContent( LastIndexWithContent() );
+
+ TInt currentIndex( iCurrentTitleIndex );
+
+ if ( lastIndexWithContent == KErrNotFound )
+ {
+ // Loop done
+ ret = ETrue;
+ }
+ else if ( !iScrollLooping && iCurrentTitleIndex == lastIndexWithContent )
+ {
+ // Loop done
+ ret = ETrue;
+ }
+ else
+ {
+ if ( iCurrentTitleIndex + 1 > lastIndexWithContent )
+ {
+ // At the end, get first
+ iCurrentTitleIndex =
+ GetNextTitleWithContent( 0 );
+ }
+ else
+ {
+ // find next index with content
+ iCurrentTitleIndex =
+ GetNextTitleWithContent( iCurrentTitleIndex + 1 );
+ }
+ }
+
+ if ( ret )
+ {
+ if ( iCurrentTitleIndex != KErrNotFound )
+ {
+ iAdapter->ReportNewstickerEvent(
+ XnPropertyNames::action::trigger::name::KTitleScrolled,
+ iCurrentTitleIndex );
+ }
+ }
+ else
+ {
+ if ( currentIndex != iCurrentTitleIndex && currentIndex != KErrNotFound )
+ {
+ iAdapter->ReportNewstickerEvent(
+ XnPropertyNames::action::trigger::name::KTitleScrolled,
+ currentIndex );
+ }
+
+ if ( currentIndex != iCurrentTitleIndex && iCurrentTitleIndex != KErrNotFound )
+ {
+ iAdapter->ReportNewstickerEvent(
+ XnPropertyNames::action::trigger::name::KTitleToScroll,
+ iCurrentTitleIndex );
+ }
+ }
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CXnNewstickerControl::PeekNextTitle
+// -----------------------------------------------------------------------------
+//
+TPtrC CXnNewstickerControl::PeekNextTitle( TBool& aEndOfLoop ) const
{
TBool ret( EFalse );
TInt lastIndex( iTitleTexts.Count() - 1 );
TInt lastIndexWithContent = LastIndexWithContent();
+
+ TPtrC retval( KNullDesC() );
- if( aSetDefault )
- {
- // set last index as default
- iCurrentTitleIndex = GetNextTitleWithContent( lastIndex, ETrue );
+ if ( lastIndexWithContent == KErrNotFound )
+ {
+ // Loop done
+ ret = ETrue;
}
- else if( iCurrentTitleIndex >= lastIndex )
+ else if ( !iScrollLooping && iCurrentTitleIndex == lastIndexWithContent )
{
- // if iCurrentTitleIndex is in last position start from beginning
- iCurrentTitleIndex = GetNextTitleWithContent( 0 );
- }
+ // Loop done
+ ret = ETrue;
+
+ retval.Set( CurrentTitle() );
+ }
else
{
if ( iCurrentTitleIndex + 1 > lastIndexWithContent )
{
- // if lastIndexWithContent is creater than next item
- // it means all next items are empty strings
- iCurrentTitleIndex = lastIndexWithContent;
+ // At the end, get first
+ retval.Set( Title( GetNextTitleWithContent( 0 ) ) );
}
else
{
// find next index with content
- iCurrentTitleIndex
- = GetNextTitleWithContent( iCurrentTitleIndex + 1 );
- }
+ retval.Set( Title( GetNextTitleWithContent( iCurrentTitleIndex + 1 ) ) );
+ }
}
- if( iCurrentTitleIndex == lastIndexWithContent ||
- lastIndexWithContent == KErrNotFound )
- {
- // loop done stop periodic timer.
- ret = ETrue;
- }
+ aEndOfLoop = ret;
- return ret;
+ return retval;
}
// -----------------------------------------------------------------------------
@@ -312,9 +407,11 @@
//
TBool CXnNewstickerControl::IsVisibleTitles() const
{
- for( TInt i=0; i < iTitleTexts.Count(); i++ )
+ for( TInt i = 0; i < iTitleTexts.Count(); i++ )
{
- if( iTitleTexts[i]->Compare( KNullDesC ) != KErrNone )
+ const TDesC& title( *iTitleTexts[i] );
+
+ if( title != KNullDesC() )
{
return ETrue;
}
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h Wed Jun 09 09:29:04 2010 +0300
@@ -32,7 +32,7 @@
class CXnAppUiAdapter;
// CLASS DECLARATION
-class CXnTextEditorAdapter : public CXnControlAdapter
+class CXnTextEditorAdapter : public CXnControlAdapter, public MCoeControlBackground
{
public:
// constructor and destructor
@@ -125,13 +125,18 @@
*/
void HandleResourceChange( TInt aType );
-private:
- // from MCoeControlObserver
-
/**
- * See MCoeControlObserver documentation
- */
- void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
+ * See CCoeAppUiBase.
+ */
+ void HandleScreenDeviceChangedL();
+
+private: // from base classes
+
+ /**
+ * See MCoeControlBackground documentation
+ */
+ void Draw( CWindowGc& aGc, const CCoeControl& aControl,
+ const TRect& aRect ) const;
private:
// private constrcutors
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -57,12 +57,15 @@
ESplitInputEnabled = 1,
ESplitInputOpen = 2,
ESplitInputEditorInStack = 4,
+ EScreenDeviceChanged = 8
};
_LIT8( KCpsPublishing, "cpspublishing" );
_LIT8( KMaxLineAmount, "max-line-amount" );
_LIT8( KMaxCharAmount, "max-char-amount" );
_LIT8( KEnablePartialInput, "splitinputenabled" );
+_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" );
+_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" );
_LIT( KEnterChar, "\x2029" );
@@ -194,6 +197,7 @@
iEditor->SetContainerWindowL( *iParent );
iEditor->ConstructL( 0, maxChars, maxChars, iMaxLines );
+ iEditor->SetBackground( this );
// Set allowed input modes
iEditor->SetAknEditorAllowedInputModes( EAknEditorAllInputModes );
@@ -213,8 +217,6 @@
// Set numeric keymap
iEditor->SetAknEditorNumericKeymap( EAknEditorPlainNumberModeKeymap );
-
- iEditor->SetSuppressBackgroundDrawing( ETrue );
// Enable partial Screen
CXnProperty* enablepartialinput( iNode.GetPropertyL( KEnablePartialInput ) );
@@ -402,9 +404,10 @@
// Draws the editor component
// -----------------------------------------------------------------------------
//
-void CXnTextEditorAdapter::Draw( const TRect& aRect ) const
- {
- CXnControlAdapter::Draw( aRect );
+void CXnTextEditorAdapter::Draw( const TRect& /*aRect*/ ) const
+ {
+ // Do nothing.
+ // Background is drawn through MCoeControlBackground of CEikEdwin.
}
// -----------------------------------------------------------------------------
@@ -421,6 +424,15 @@
{
iUiEngine->EnablePartialTouchInput( iNode, ETrue );
SetFlag( iSplitInputFlags, ESplitInputOpen );
+ if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) )
+ {
+ TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenEnabledTrigger,
+ KNullDesC8, KNullDesC8) );
+ }
+ else
+ {
+ ClearFlag( iSplitInputFlags, EScreenDeviceChanged );
+ }
}
}
@@ -431,41 +443,58 @@
iUiEngine->EnablePartialTouchInput( iNode, EFalse );
ClearFlag( iSplitInputFlags, ESplitInputOpen );
- // If editor is not focused anymore, remove if from stack
- CXnNodePluginIf* focusedNode( NULL );
- TRAP_IGNORE( focusedNode = iUiEngine->FocusedNodeL() );
- if( focusedNode != &iNode &&
- IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) )
+ // Note that after orientation switch, split screen is first closed and
+ // then opened again. Therefore these must be discarded
+ if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) )
{
- iAppui->RemoveFromStack( iEditor );
- iEditor->SetFocus( EFalse );
- ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );
-
- // Forward keys to phone again
- RProperty::Set( KPSUidAiInformation,
- KActiveIdleForwardNumericKeysToPhone,
- EPSAiForwardNumericKeysToPhone );
+ TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenDisabledTrigger,
+ KNullDesC8, KNullDesC8) );
+
+ // If editor is not focused anymore, remove if from stack
+ CXnNodePluginIf* focusedNode( NULL );
+ TRAP_IGNORE( focusedNode = iUiEngine->FocusedNodeL() );
+ if( focusedNode != &iNode &&
+ IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) )
+ {
+ iAppui->RemoveFromStack( iEditor );
+ iEditor->SetFocus( EFalse );
+ ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );
+
+ // Forward keys to phone again
+ RProperty::Set( KPSUidAiInformation,
+ KActiveIdleForwardNumericKeysToPhone,
+ EPSAiForwardNumericKeysToPhone );
+ }
}
}
}
CCoeControl::HandleResourceChange( aType );
}
-
+
// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleControlEventL
-//
+// CXnTextEditorAdapter::HandleScreenDeviceChangedL
+//
// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleControlEventL( CCoeControl* aControl,
- TCoeEvent aEventType )
+//
+void CXnTextEditorAdapter::HandleScreenDeviceChangedL()
{
- if ( aControl == iEditor )
+ if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
{
- // If background drawing is suppressed, then we need to call draw here
- if ( aEventType == EEventStateChanged )
- {
- DrawNow();
- }
+ SetFlag( iSplitInputFlags, EScreenDeviceChanged );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// From MCoeControlBackground
+// CXnTextEditorAdapter::Draw
+// -----------------------------------------------------------------------------
+//
+void CXnTextEditorAdapter::Draw( CWindowGc& aGc, const CCoeControl& aControl,
+ const TRect& aRect) const
+ {
+ if( &aControl == iEditor )
+ {
+ CXnControlAdapter::Draw( aRect, aGc );
}
}
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h Wed Jun 09 09:29:04 2010 +0300
@@ -117,6 +117,8 @@
CXnNodePluginIf& iNode;
/** AppUi */
CXnAppUiAdapter& iAppUi;
+ /** HS foreground status*/
+ MXnUiStateObserver::TForegroundStatus iForegroundStatus;
};
#endif // _XNVIEWCONTROLADAPTER_H
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -44,6 +44,7 @@
#include <StringLoader.h>
#include <aknnotewrappers.h>
#include <bautils.h>
+#include <UTF.h>
#include <AknsUtils.h>
#include <AknsDrawUtils.h>
@@ -103,34 +104,32 @@
}
// -----------------------------------------------------------------------------
-// CreateSkinBitmapL
+// CreateBitmapFromColorL
+// Creates a bitmap object with the given size and fill color
// -----------------------------------------------------------------------------
//
-CFbsBitmap* CreateSkinBitmapL( TAknsItemID aId, TRect aRect )
+static CFbsBitmap* CreateBitmapFromColorL( TSize aSize, TRgb aColor )
{
CFbsBitmap* newBitmap = new ( ELeave ) CFbsBitmap;
- User::LeaveIfError( newBitmap->Create( aRect.Size(), EColor16M ) );
+ newBitmap->Create( aSize, EColor16M );
CleanupStack::PushL( newBitmap );
-
+
CFbsBitmapDevice* bitmapDev = CFbsBitmapDevice::NewL( newBitmap );
CleanupStack::PushL( bitmapDev );
- CBitmapContext* bc( NULL );
- User::LeaveIfError( bitmapDev->CreateBitmapContext( bc ) );
+ CFbsBitGc* bc = NULL;
+ User::LeaveIfError( bitmapDev->CreateContext( bc ) );
CleanupStack::PushL( bc );
- CAknsBasicBackgroundControlContext* context =
- CAknsBasicBackgroundControlContext::NewL( aId, aRect, EFalse );
- CleanupStack::PushL( context );
+ bc->SetBrushColor( aColor );
+ bc->Clear(); // area is filled with the brush color
- AknsDrawUtils::Background( AknsUtils::SkinInstance(),
- context, static_cast< CWindowGc& >( *bc ), aRect );
-
- CleanupStack::PopAndDestroy( 3, bitmapDev );
+ CleanupStack::PopAndDestroy( bc );
+ CleanupStack::PopAndDestroy( bitmapDev );
CleanupStack::Pop( newBitmap );
return newBitmap;
}
-
+
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
@@ -329,7 +328,9 @@
void CXnBackgroundManager::HandleNotifyDisk( TInt /*aError*/,
const TDiskEvent& aEvent )
{
- if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged )
+ if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged ||
+ aEvent.iType == MDiskNotifyHandlerCallback::EDiskAdded ||
+ aEvent.iType == MDiskNotifyHandlerCallback::EDiskRemoved )
{
if( !( aEvent.iInfo.iDriveAtt & KDriveAttInternal ) )
{
@@ -530,11 +531,18 @@
// Save wallpaper to HSPS
if( iType == EPageSpecific )
{
- TBuf8<KMaxFileName> wallpaper8;
CXnViewData& viewData( iViewManager.ActiveViewData() );
- wallpaper8.Copy( viewData.WallpaperImagePath() );
- SetSettingPropertyL( viewData.PluginId(), KWallpaper,
- KPath, wallpaper8 );
+
+ HBufC8* pUtf8String = CnvUtfConverter::ConvertFromUnicodeToUtf8L( viewData.WallpaperImagePath() );
+ CleanupStack::PushL( pUtf8String );
+
+ SetSettingPropertyL( viewData.PluginId(),
+ KWallpaper,
+ KPath,
+ *pUtf8String );
+
+ CleanupStack::PopAndDestroy( pUtf8String );
+ pUtf8String = NULL;
}
else
{
@@ -1156,16 +1164,23 @@
TRect spRect;
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane, spRect );
- iSpBitmap = CreateSkinBitmapL( KAknsIIDQsnBgScreenIdle, spRect );
+ MAknsSkinInstance* skinInstance( AknsUtils::SkinInstance() );
+
+ // Get Homescreen status area mask color (EAknsCIQsnOtherColorsCG23)
+ TRgb color;
+ User::LeaveIfError( AknsUtils::GetCachedColor( skinInstance, color,
+ KAknsIIDQsnOtherColors, EAknsCIQsnOtherColorsCG23 ) );
+
+ iSpBitmap = CreateBitmapFromColorL( spRect.Size(), color );
if ( Layout_Meta_Data::IsLandscapeOrientation() )
{
- iSpMask = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
+ iSpMask = AknsUtils::CreateBitmapL( skinInstance,
KAknsIIDQgnGrafBgLscTopMaskIcon );
}
else
{
- iSpMask = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
+ iSpMask = AknsUtils::CreateBitmapL( skinInstance,
KAknsIIDQgnGrafBgPrtTopMaskIcon );
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -17,6 +17,7 @@
// System includes
#include <s32file.h>
+#include <UTF.h>
// User includes
#include "xncomposer.h"
@@ -60,7 +61,9 @@
// --------------------------------------------------------------------------
//
static HBufC* ItemValueL( CHspsConfiguration& aConfiguration,
- const TDesC8& aItemId, const TDesC8& aName )
+ const TDesC8& aItemId,
+ const TDesC8& aName,
+ const TBool aUseUtfConversion = EFalse )
{
HBufC* ret = NULL;
@@ -86,8 +89,16 @@
if( property->Name() == aName )
{
- ret = HBufC::NewL( property->Value().Length() );
- ret->Des().Copy( property->Value() );
+ if( aUseUtfConversion )
+ {
+ ret = CnvUtfConverter::ConvertToUnicodeFromUtf8L( property->Value() );
+ }
+ else
+ {
+ ret = HBufC::NewL( property->Value().Length() );
+ ret->Des().Copy( property->Value() );
+ }
+
break;
}
}
@@ -639,7 +650,10 @@
// if page specific wallpaper feature is enabled
if( bgManager.WallpaperType() == CXnBackgroundManager::EPageSpecific )
{
- HBufC* bgImage = ItemValueL( *configuration, KWallpaper, KPath );
+ HBufC* bgImage = ItemValueL( *configuration,
+ KWallpaper,
+ KPath,
+ ETrue );
if ( bgImage )
{
CleanupStack::PushL( bgImage );
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -74,6 +74,8 @@
const TInt KDragThreshold = 20; // pixels
+const TReal KEps( 3e-16 ); // proximite EPS value for double FP numbers
+
// LOCAL FUNCTION PROTOTYPES
static TRgb ConvertHslToRgb( TInt aHue, TInt aSaturation, TInt aLightness );
static void ConvertRgbToHsl( TRgb aRGB, TUint& aHue, TUint& aSaturation,
@@ -3433,6 +3435,42 @@
}
// -----------------------------------------------------------------------------
+// Calculates scaled bitmap size (rect)
+// -----------------------------------------------------------------------------
+//
+void CalculateScaledBitmapRect( TSize& aScaledSize, const TSize& aDrawSize,
+ const TSize& aImageSize )
+ {
+ //no scaling as default
+ TReal scaleRatio( 1.0f );
+ aScaledSize.SetSize( aDrawSize.iWidth, aDrawSize.iHeight );
+
+ //If any dimension is 0, then we do not bother to scale
+ if ( aDrawSize.iWidth == 0 || aDrawSize.iHeight == 0 )
+ {
+ return;
+ }
+
+ TReal xRatio =
+ ( ( TReal )aImageSize.iWidth / ( TReal )aDrawSize.iWidth );
+ TReal yRatio =
+ ( ( TReal )aImageSize.iHeight / ( TReal )aDrawSize.iHeight );
+ //Find out appropriate scaling factor
+ xRatio > yRatio ? ( scaleRatio = xRatio ) : ( scaleRatio = yRatio );
+
+ // ratio is too small (can be considered as division by zero)
+ if ( scaleRatio < KEps && scaleRatio > -KEps )
+ {
+ return;
+ }
+
+ // Otherwise scaling can be done
+ aScaledSize.iWidth = ( TInt )( ( TReal )aImageSize.iWidth / scaleRatio );
+ aScaledSize.iHeight =
+ ( TInt )( ( TReal )aImageSize.iHeight / scaleRatio );
+ }
+
+// -----------------------------------------------------------------------------
// BuildSwipeTriggerNodeLC
// Build trigger node for swipe event
// -----------------------------------------------------------------------------
@@ -4479,7 +4517,7 @@
return;
}
- aGc.SetClippingRect( aRect );
+// aGc.SetClippingRect( aRect );
#ifdef _XN_DEBUG_
CXnComponent* comp = Component();
CXnNode& node = comp->Node()->Node();
@@ -4495,7 +4533,7 @@
aGc.DrawRect( contentRect );
#endif
TRAP_IGNORE( DoDrawL( aRect, aGc ) );
- aGc.CancelClippingRect();
+// aGc.CancelClippingRect();
}
// -----------------------------------------------------------------------------
@@ -4969,14 +5007,28 @@
TRect bitmapRect = rect;
bitmapRect.Move( -rect.iTl.iX, -rect.iTl.iY );
+ // Finds appropriate method of scaling
if ( AknIconUtils::IsMifIcon( iContentBitmap ) )
{
if ( preserveAspectRatio )
{
AknIconUtils::SetSize(
- iContentBitmap, bitmapRect.Size(), EAspectRatioPreserved );
+ iContentBitmap, bitmapRect.Size(),
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
AknIconUtils::SetSize(
- iContentMask, bitmapRect.Size(), EAspectRatioPreserved );
+ iContentMask, bitmapRect.Size(),
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ // In some cases resizing might fail with previous settings
+ if ( iContentBitmap->SizeInPixels().iHeight == 0 ||
+ iContentBitmap->SizeInPixels().iWidth == 0 )
+ {
+ AknIconUtils::SetSize(
+ iContentBitmap, bitmapRect.Size(),
+ EAspectRatioPreserved );
+ AknIconUtils::SetSize(
+ iContentMask, bitmapRect.Size(),
+ EAspectRatioPreserved );
+ }
}
else
{
@@ -4985,6 +5037,20 @@
AknIconUtils::SetSize(
iContentMask, bitmapRect.Size(), EAspectRatioNotPreserved );
}
+ // Set a new bitmap size
+ bitmapRect.SetSize( iContentBitmap->SizeInPixels() );
+ }
+ else
+ {
+ if ( preserveAspectRatio )
+ {
+ TSize newBitmapSize;
+ // scaling is done in bitmap drawing routine, here only the
+ // sacling rect is calculated
+ CalculateScaledBitmapRect( newBitmapSize, rect.Size(),
+ iContentBitmap->SizeInPixels() );
+ bitmapRect.SetSize( newBitmapSize );
+ }
}
// Calculate new point to start draw
@@ -4993,6 +5059,8 @@
( rect.Height() - bitmapRect.Height() ) / 2;
rect.iTl.iX +=
( rect.Width() - bitmapRect.Width() ) / 2;
+ // sets a new size to draw
+ rect.SetSize( bitmapRect.Size() );
if ( iContentBitmap && iContentMask )
{
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -807,10 +807,17 @@
StopDragL();
}
+
+ UpdateScreen();
+ }
- SetRect( iUiEngine.ClientRect() );
-
- UpdateScreen();
+// -----------------------------------------------------------------------------
+// CXnEditMode::HandleScreenDeviceChangedL
+// -----------------------------------------------------------------------------
+//
+void CXnEditMode::SetClientRect( TRect aRect )
+ {
+ SetRect( aRect );
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -366,16 +366,30 @@
iBgEffect = ETrue;
}
-
+
+ // because of changes in nga end has to call here. Effects below are
+ // grouped and those will be triggered when calling GfxTransEffect::EndGroup
if ( iLandscape )
{
GfxTransEffect::Begin( thisView, KGfxControlActionDisappearLsc );
GfxTransEffect::Begin( otherView, KGfxControlActionAppearLsc );
+
+ GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
+ GfxTransEffect::End( otherView );
+
+ GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
+ GfxTransEffect::End( thisView );
}
else
{
GfxTransEffect::Begin( thisView, KGfxControlActionDisappearPrt );
GfxTransEffect::Begin( otherView, KGfxControlActionAppearPrt );
+
+ GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
+ GfxTransEffect::End( otherView );
+
+ GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
+ GfxTransEffect::End( thisView );
}
return ETrue;
@@ -396,7 +410,7 @@
}
CXnControlAdapter* thisView( aThis.ViewNode()->Control() );
- CXnControlAdapter* otherView( aOther.ViewNode()->Control() );
+ CXnControlAdapter* otherView( aOther.ViewNode()->Control() );
if ( iBgEffect )
{
@@ -405,17 +419,11 @@
GfxTransEffect::SetDemarcation( bg, bg->Position() );
GfxTransEffect::End( bg );
}
-
- GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
- GfxTransEffect::End( thisView );
-
- GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
- GfxTransEffect::End( otherView );
GfxTransEffect::EndGroup( iGroupId );
+ GfxTransEffect::Deregister( otherView );
GfxTransEffect::Deregister( thisView );
- GfxTransEffect::Deregister( otherView );
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnlistquerydialogadapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnlistquerydialogadapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -344,6 +344,7 @@
if ( dialog->RunLD() )
{
+ iDialog = NULL;
ActivateItemL( selectedIndex );
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -61,6 +61,8 @@
_LIT8( KMenuBar, "menubar" );
_LIT8( KTextEditor, "texteditor" );
_LIT8( KPlugin, "plugin" );
+_LIT8( KTemplate, "template" );
+_LIT8( KIndex, "index" );
_LIT8( KActionsHandler, "actionshandler" );
@@ -424,9 +426,75 @@
TBool aInformChange = EFalse );
static TBool MatchTitleScrollTriggerL(
CXnNode& aEventData, CXnDomNode& aTriggerNode );
+static CXnDomNode* GetTemplateEventL(
+ const TDesC8& aTemplate,
+ CXnNode& aNode,
+ CXnDomNode& aEventNode );
// ============================= LOCAL FUNCTIONS ===============================
-
+// -----------------------------------------------------------------------------
+// GetTemplateEventL
+// -----------------------------------------------------------------------------
+//
+static CXnDomNode* GetTemplateEventL( const TDesC8& aTemplate, CXnNode& aNode,
+ CXnDomNode& aEventNode )
+ {
+ CXnDomNode* retval( NULL );
+
+ if ( aTemplate == KIndex() )
+ {
+ _LIT8( KTemplateIndex, "(#)" );
+
+ const TDesC8& eventString( aEventNode.AttributeValue( KName ) );
+
+ TInt index( eventString.Find( KTemplateIndex ) );
+
+ CXnNode* parent( aNode.Parent() );
+
+ if ( index != KErrNotFound && parent )
+ {
+ RPointerArray< CXnNode >& siblings( parent->Children() );
+
+ TInt itemindex( siblings.Find( &aNode ) );
+
+ if ( itemindex != KErrNotFound )
+ {
+ TBuf8< 4 > buf;
+ buf.AppendNum( itemindex );
+
+ CXnDomNode* clone(
+ aEventNode.CloneL( *aEventNode.StringPool() ) );
+ CleanupStack::PushL( clone );
+
+ HBufC8* templateString =
+ HBufC8::NewLC( eventString.Length() + 4 );
+
+ TPtr8 ptr( templateString->Des() );
+
+ ptr.Copy( eventString );
+ ptr.Delete( index + 1, 1 );
+ ptr.Insert( index + 1, buf );
+
+ CXnDomAttribute* attribute = static_cast< CXnDomAttribute* >
+ ( clone->AttributeList().FindByName(
+ XnPropertyNames::action::event::KName ) );
+
+ if ( attribute )
+ {
+ attribute->SetValueL( ptr );
+ }
+
+ CleanupStack::PopAndDestroy( templateString );
+
+ CleanupStack::Pop( clone );
+ retval = clone;
+ }
+ }
+ }
+
+ return retval;
+ }
+
// -----------------------------------------------------------------------------
// ResolveEffectId
// -----------------------------------------------------------------------------
@@ -2719,8 +2787,28 @@
{
CXnAppUiAdapter& adapter( aEngine.AppUiAdapter() );
- adapter.HandleXuikonEventL(
- aNode.AppIfL(), aEventData.AppIfL(), aTriggerNode, aEventNode );
+ // Check if event is template
+ const TDesC8& templateEvent( aEventNode.AttributeValue( KTemplate ) );
+
+ if ( templateEvent != KNullDesC8() )
+ {
+ CXnDomNode* event(
+ GetTemplateEventL( templateEvent, aNode, aEventNode ) );
+ CleanupStack::PushL( event );
+
+ if ( event )
+ {
+ adapter.HandleXuikonEventL(
+ aNode.AppIfL(), aEventData.AppIfL(), aTriggerNode, *event );
+ }
+
+ CleanupStack::PopAndDestroy( event );
+ }
+ else
+ {
+ adapter.HandleXuikonEventL(
+ aNode.AppIfL(), aEventData.AppIfL(), aTriggerNode, aEventNode );
+ }
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -8283,19 +8283,19 @@
{
rect = node->BorderRect();
}
- if ( adapter->Rect() != rect )
+
+ // popup calculates its position based on _s60-position-hint property
+ // This needs to be done even if popup's rect has not been changed
+ if( node->Type()->Type() == KPopUpNodeName )
+ {
+ adapter->DoHandlePropertyChangeL();
+ }
+ else if ( adapter->Rect() != rect )
{
AddToRedrawListL( node, rect );
- // popup calculates its position based on _s60-position-hint property
- if( node->Type()->Type() == KPopUpNodeName )
- {
- adapter->DoHandlePropertyChangeL();
- }
- else
- {
- adapter->SetRect( rect );
- }
+ adapter->SetRect( rect );
+
CXnProperty* prop = node->GetPropertyL(
XnPropertyNames::common::KSizeAware );
if ( prop && prop->StringValue() ==
@@ -9565,6 +9565,8 @@
UpdateInternalUnits( iHorizontalUnitInPixels, iVerticalUnitInPixels,
iClientRect );
+ iEditMode->SetClientRect( aRect );
+
if ( aDrawNow )
{
RootNode()->SetDirtyL();
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -557,26 +557,27 @@
{
return;
}
-
- // Get previous container and then deactivate it
- const CXnViewData* previous( iContainer );
- const CXnViewData& active( iAppUiAdapter.ViewManager().ActiveViewData() );
- DeactivateContainerL( EFalse );
-
if ( iFlags.IsClear( EIsActivated ) )
{
// Some other view than this in this appui is currently active,
// postpone container activation
return;
}
+
+ const CXnViewData& active( iAppUiAdapter.ViewManager().ActiveViewData() );
+
+ CXnEffectManager* mgr( iAppUiAdapter.EffectManager() );
+
+ CleanupStack::PushL( TCleanupItem( CleanupEffect, mgr ) );
+
+ TBool started(
+ mgr->BeginActivateViewEffect( active, aContainer, aEffect ) );
+
+ DeactivateContainerL( EFalse );
// Update
iContainer = &aContainer;
-
- CXnEffectManager* mgr( iAppUiAdapter.EffectManager() );
-
- CleanupStack::PushL( TCleanupItem( CleanupEffect, mgr ) );
// Disable layout and redraw until container activation is done
iAppUiAdapter.UiEngine().DisableRenderUiLC();
@@ -620,18 +621,7 @@
{
EnterEditStateL( aContainer, EFalse );
}
-
- TBool started(
- mgr->BeginActivateViewEffect( active, aContainer, aEffect ) );
-
- if ( previous )
- {
- CXnControlAdapter* previousControl(
- previous->Node()->LayoutNode()->Control() );
-
- previousControl->MakeVisible( EFalse );
- }
-
+
CXnControlAdapter* adapter( node->Control() );
adapter->MakeVisible( ETrue );
@@ -907,6 +897,11 @@
else
{
controls[i]->EnterPowerSaveModeL();
+ if ( controls[i]->LongTapDetector() &&
+ controls[i]->LongTapDetector()->IsActive() )
+ {
+ controls[i]->LongTapDetector()->Cancel();
+ }
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -41,11 +41,17 @@
const TPointerEvent& aEvent )
{
if ( aControl )
- {
+ {
CCoeControl* grabber( aControl->GrabbingComponent() );
if ( grabber )
- {
+ {
+ // cancel longtap detector before reset grabbing.
+ CAknLongTapDetector* detector = aControl->LongTapDetector();
+ if ( detector && detector->IsActive() )
+ {
+ detector->Cancel();
+ }
grabber->IgnoreEventsUntilNextPointerUp();
aControl->CCoeControl::HandlePointerEventL( aEvent );
@@ -53,7 +59,7 @@
CXnControlAdapter* adapter =
dynamic_cast< CXnControlAdapter* >( grabber );
- ResetGrabbingL( adapter, aEvent );
+ ResetGrabbingL( adapter, aEvent );
}
}
}
@@ -182,13 +188,16 @@
void CXnViewControlAdapter::HandlePointerEventL(
const TPointerEvent& aPointerEvent )
{
- iAppUi.UiEngine().DisableRenderUiLC();
+ if ( iForegroundStatus != EBackground )
+ {
+ iAppUi.UiEngine().DisableRenderUiLC();
+
+ CXnControlAdapter::HandlePointerEventL( aPointerEvent );
- CXnControlAdapter::HandlePointerEventL( aPointerEvent );
-
- iAppUi.UiEngine().RenderUIL();
-
- CleanupStack::PopAndDestroy();
+ iAppUi.UiEngine().RenderUIL();
+
+ CleanupStack::PopAndDestroy();
+ }
}
// -----------------------------------------------------------------------------
@@ -215,6 +224,7 @@
//
void CXnViewControlAdapter::NotifyForegroundChanged( TForegroundStatus aStatus )
{
+ iForegroundStatus = aStatus;
if ( aStatus == EBackground || aStatus == EPartialForeground )
{
ResetGrabbing();
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -22,6 +22,9 @@
#include <gfxtranseffect/gfxtranseffect.h>
#include <akntransitionutils.h>
#include <AknPriv.hrh>
+#ifdef RD_TACTILE_FEEDBACK
+#include <touchfeedback.h>
+#endif // RD_TACTILE_FEEDBACK
// User includes
#include "xnwidgetextensionadapter.h"
@@ -147,14 +150,12 @@
iPermanent = ETrue;
}
}
- else
+
+ if ( Window().SetTransparencyAlphaChannel() == KErrNone )
{
- if ( Window().SetTransparencyAlphaChannel() == KErrNone )
- {
- Window().SetBackgroundColor( ~0 );
- }
- }
-
+ Window().SetBackgroundColor( ~0 );
+ }
+
iUiEngine = iNode.Node().UiEngine();
CXnControlAdapter::ConstructL( iNode );
@@ -253,10 +254,11 @@
if ( iPopup )
{
// check if the tap was inside of popup
- TRect popupRect = this->Rect();
- popupRect.Move(this->Position() );
- TBool isInPopupWindow = popupRect.Contains(
- aPointerEvent.iParentPosition );
+ TRect popupRect( Rect() );
+ popupRect.Move( Position() );
+
+ TBool isInPopupWindow( popupRect.Contains(
+ aPointerEvent.iParentPosition ) );
if ( !isInPopupWindow )
{
@@ -267,15 +269,17 @@
if ( parentIdProp )
{
- const TDesC8& parentIdVal = parentIdProp->StringValue();
- CXnNode* parentN(iUiEngine->FindNodeByIdL( parentIdVal,
- iNode.Node().Namespace() ) );
+ const TDesC8& id( parentIdProp->StringValue() );
+
+ CXnNode* parent(
+ iUiEngine->FindNodeByIdL( id, iNode.Node().Namespace() ) );
+
- if ( parentN )
+ if ( parent )
{
- TRect clientRect =
- static_cast<CEikAppUi&> ( *iAppUiAdapter ).ClientRect();
- TRect parentRect = parentN->Rect();
+ TRect clientRect( iAppUiAdapter->ClientRect() );
+
+ TRect parentRect( parent->Rect() );
parentRect.Move( clientRect.iTl );
if ( !parentRect.Contains( aPointerEvent.iParentPosition ) )
@@ -284,6 +288,14 @@
// we can close it
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
+#ifdef RD_TACTILE_FEEDBACK
+ MTouchFeedback* fb( MTouchFeedback::Instance() );
+
+ if ( fb )
+ {
+ fb->InstantFeedback( ETouchFeedbackBasic );
+ }
+#endif
HidePopupL();
return;
}
@@ -294,17 +306,30 @@
// we pass the event to it after
// recalculating the taping point
TPointerEvent newPointerEvent;
+
newPointerEvent.Copy( aPointerEvent );
+
newPointerEvent.iPosition = TPoint(
- aPointerEvent.iParentPosition - clientRect.iTl );
- parentN->Control()->HandlePointerEventL( newPointerEvent );
- return;
+ aPointerEvent.iParentPosition - clientRect.iTl );
+
+ parent->Control()->HandlePointerEventL( newPointerEvent );
}
}
}
else
{
- HidePopupL();
+#ifdef RD_TACTILE_FEEDBACK
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ MTouchFeedback* fb( MTouchFeedback::Instance() );
+
+ if ( fb )
+ {
+ fb->InstantFeedback( ETouchFeedbackBasic );
+ }
+#endif
+ HidePopupL();
+ }
}
}
}
@@ -709,11 +734,6 @@
DrawableWindow()->FadeBehind( ETrue );
}
}
-
- else if( iPopup && aType == KAknSplitInputDisabled )
- {
- TRAP_IGNORE( HidePopupL() );
- }
}
// End of File
--- a/menufw/hierarchynavigator/hnengine/group/bld.inf Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnengine/group/bld.inf Wed Jun 09 09:29:04 2010 +0300
@@ -23,7 +23,6 @@
../inc/hncontrollerinterface.h |../../../inc/hncontrollerinterface.h
../inc/hnengine.h |../../../inc/hnengine.h
../inc/hninterface.h |../../../inc/hninterface.h
-../inc/hninstallnotifier.h |../../../inc/hninstallnotifier.h
../inc/hneventgenerator.h |../../../inc/hneventgenerator.h
../inc/menudebug.h |../../../inc/menudebug.h
--- a/menufw/hierarchynavigator/hnengine/group/hnengine.mmp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnengine/group/hnengine.mmp Wed Jun 09 09:29:04 2010 +0300
@@ -32,7 +32,6 @@
SOURCEPATH ../src
SOURCE hnengine.cpp
-SOURCE hninstallnotifier.cpp
USERINCLUDE ../inc
--- a/menufw/hierarchynavigator/hnengine/inc/hnengine.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnengine/inc/hnengine.h Wed Jun 09 09:29:04 2010 +0300
@@ -27,7 +27,6 @@
#include "hnglobals.h"
#include "hninterface.h"
#include "hnmdmodel.h"
-#include "hninstallnotifier.h"
class CHnMdModel;
class CHnSuiteModelContainer;
@@ -49,7 +48,6 @@
*/
NONSHARABLE_CLASS( CHnEngine ) : public CHnInterface,
public MHnMdModelEventObserver,
- public MHnInstallNotifierCallback,
public MHWRMLightObserver
{
public:
@@ -147,17 +145,6 @@
TInt HandleBackEventL( const TDesC& aGenre,
TInt aIterations = KModelCountForRoot );
- // from MHNMulModelInstallNotifierCallback
-
- /**
- * InstallChangeL is called when the subscribed key has been changed.
- *
- * @since S60 v5.0
- * @param aStatus Status of the installation event.
- */
- virtual void InstallChangeL( TInt aStatus );
-
-
/**
* Loads default root suite
*
@@ -389,15 +376,15 @@
* @param aUriFragment Descriptor containig parsed part of the uri.
*/
void HighlightPlacementFromUriL( const TDesC8& aUriFragment );
-
-
+
+
/**
* Loads folder and sets focus through CR.
- *
+ *
* @since S60 v5.0
*/
void LoadFromCrL( const TDesC8& aUri );
-
+
/**
* Handles loading suite from uri if suites names' are the same.
*
@@ -452,13 +439,7 @@
* Not own - Suite observer.
*/
MHnControllerInterface& iControllerInterface;
-
- /**
- * Installation observer.
- * Own.
- */
- CHnInstallNotifier* iInstObserver;
-
+
/**
* Edit mode
*/
--- a/menufw/hierarchynavigator/hnengine/inc/hninstallnotifier.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Sis package installation event listener
-*
-*/
-
-
-
-#ifndef HNINSTALLNOTIFIER_H
-#define HNINSTALLNOTIFIER_H
-
-#include <e32base.h>
-#include <e32property.h>
-
-/**
- * @ingroup group_hnengine
- * Interface for observing Sis installation events.
- *
- * @lib hnengine
- * @since S60 S60 v3.1
- */
-class MHnInstallNotifierCallback
- {
-
-public:
- /**
- * @ingroup group_hnengine
- * Enum defining the purpouse of the installation event.
- */
- enum TInstOp
- {
- EInstOpNone = 0x00,
- EInstOpInstall = 0x01,
- EInstOpUninstall = 0x02,
- EInstOpRestore = 0x04
- };
-
- /**
- * @ i ngroup group_hnengine
- * Enum defining the exit status of the installation event.
- */
-/* enum TInstOpStatus
- {
- EInstOpStatusNone = 0x0000,
- EInstOpStatusSuccess = 0x0100,
- EInstOpStatusAborted = 0x0200
- };*/
-
- /**
- * InstallChangeL is called when the subscribed key has been changed.
- *
- * @param aStatus Status of the installation event.
- */
- virtual void InstallChangeL( TInt aStatus ) = 0;
-
- };
-
-
-/**
- * @ingroup group_hnengine
- * Central Repository notifier.
- *
- * @lib hnengine
- * @since S60 S60 v3.1
- */
-NONSHARABLE_CLASS( CHnInstallNotifier ) : public CActive
- {
-
-public:
-
- /**
- * Creates an instance of CHnMulModelInstallNotifier implementation.
- *
- * @since S60 v5.0
- *
- * @param aCallback Reference to notifier interface.
- * @param aCategory Package uid.
- * @param aKey Key for central repository.
- * @return Fully constructed object.
- */
- static CHnInstallNotifier* NewL(
- MHnInstallNotifierCallback* aCallback,
- TUid aCategory,
- TUint aKey );
-
- /**
- * Default destructor.
- *
- * @since S60 v5.0
- */
- virtual ~CHnInstallNotifier();
-
-
-private:
- /**
- * Constructor.
- *
- * @since S60 v5.0
- *
- * @param aCallback Reference to notifier interface.
- * @param aCategory Package uid.
- * @param aKey Key for central repository.
- */
- CHnInstallNotifier(
- MHnInstallNotifierCallback* aCallback,
- TUid aCategory,
- TUint aKey );
-
- /**
- * Symbian 2nd phase constructor.
- *
- * @since S60 v5.0
- */
- void ConstructL();
-
- /**
- * From CActive. Implements cancellation of an outstanding request.
- *
- * @since S60 v5.0
- */
- void DoCancel();
-
- /**
- * From CActive. Handles an active object's request completion event.
- *
- * @since S60 v5.0
- */
- void RunL();
-
- /**
- * From CActive.
- *
- * @since S60 v5.0
- * @param aError The leave code.
- * @return Status code.
- */
- TInt RunError( TInt aError );
-
-
-private:
- /**
- * User side interface to Publish & Subscribe.
- */
- RProperty iProperty;
-
- /**
- * Interface for notifying changes in SWI.
- * Not own.
- */
- MHnInstallNotifierCallback* iCallback;
-
- /**
- * Category uid.
- */
- TUid iCategory;
-
- /**
- * Key identifier.
- */
- TUint iKey;
-
- };
-
-#endif // HNINSTALLNOTIFIER_H
-
-// End of File
--- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -56,8 +56,6 @@
iSuiteContainer = CHnSuiteModelContainer::NewL( *this , iControllerInterface );
iMetaDataModel = CHnMdModel::NewL( this, iSuiteContainer );
iLight = CHWRMLight::NewL(this);
- iInstObserver = CHnInstallNotifier::NewL( this,
- KUidSystemCategory, KSAUidSoftwareInstallKeyValue );
}
// ---------------------------------------------------------------------------
@@ -98,7 +96,6 @@
//
CHnEngine::~CHnEngine()
{
- delete iInstObserver;
delete iLight;
if( iSuiteContainer )
{
@@ -529,6 +526,11 @@
param->Value().Get( genre );
DEBUG16(("_MM_:\tSuite genre name: %S",&genre));
// load and evaluate the suite
+ if( genre.Compare( KFolderSuite) )
+ {
+ //only folder suite is supported
+ User::Leave( KErrNotSupported );
+ }
err = iMetaDataModel->LoadSuiteL( genre, &aParams );
if ( !err )
{
@@ -712,23 +714,22 @@
//
// ---------------------------------------------------------------------------
//
-void CHnEngine::InstallChangeL( TInt aStatus )
- {
- switch ( aStatus)
- {
- case EInstOpNone:
- {
- iMetaDataModel->HandleSisInstallationEventL( iSuiteContainer );
- break;
- }
- case EInstOpInstall:
- case EInstOpUninstall:
- {
- iMetaDataModel->ReleaseLocalization();
- break;
- }
- }
- }
+//void CHnEngine::InstallChangeL( TInt aStatus )
+// {
+// switch ( aStatus)
+// {
+// case EInstOpNone:
+// {
+// break;
+// }
+// case EInstOpInstall:
+// case EInstOpUninstall:
+// {
+// iMetaDataModel->ReleaseLocalization();
+// break;
+// }
+// }
+// }
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
--- a/menufw/hierarchynavigator/hnengine/src/hninstallnotifier.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Sis package installation event listener
-*
-*/
-
-
-#include <sacls.h>
-#include "hninstallnotifier.h"
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// -----------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::CHnMulModelInstallNotifier
-// C++ default constructor
-// -----------------------------------------------------------------------------
-//
-CHnInstallNotifier::CHnInstallNotifier(
- MHnInstallNotifierCallback* aCallback,
- TUid aCategory,
- TUint aKey ) : CActive( EPriorityNormal )
- {
- CActiveScheduler::Add( this );
-
- iCallback = aCallback;
- iCategory = aCategory;
- iKey = aKey;
- // Prepare automatically
- TInt err = iProperty.Attach( iCategory, iKey );
- SetActive();
- iStatus = KRequestPending;
- iProperty.Subscribe( iStatus );
- }
-
-// -----------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::ConstructL
-// S2nd phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CHnInstallNotifier::ConstructL()
- {
-
- }
-
-// ---------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::NewL
-// ---------------------------------------------------------------------------
-//
-CHnInstallNotifier* CHnInstallNotifier::
- NewL( MHnInstallNotifierCallback* aCallback,
- TUid aCategory,
- TUint aKey )
- {
- CHnInstallNotifier* self =
- new (ELeave) CHnInstallNotifier( aCallback,
- aCategory,
- aKey );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::~CHnMulModelInstallNotifier
-// ---------------------------------------------------------------------------
-//
-CHnInstallNotifier::~CHnInstallNotifier()
- {
- Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CHnInstallNotifier::DoCancel()
- {
- iProperty.Cancel();
- }
-
-// ---------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::RunError
-// ---------------------------------------------------------------------------
-//
-TInt CHnInstallNotifier::RunError( TInt /*aError*/ )
- {
- // No need to do anything
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// CHnMulModelInstallNotifier::RunL
-// ---------------------------------------------------------------------------
-//
-void CHnInstallNotifier::RunL()
- {
- // Re-issue request before notifying
- SetActive();
- iStatus = KRequestPending;
- iProperty.Subscribe( iStatus );
-
- TInt status;
- User::LeaveIfError( iProperty.Get( KUidSystemCategory,
- KSAUidSoftwareInstallKeyValue,status ));
-
- iCallback->InstallChangeL( status );
- }
-// End of File
--- a/menufw/hierarchynavigator/hnmetadatamodel/bwins/hnmetadatamodelu.def Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/bwins/hnmetadatamodelu.def Wed Jun 09 09:29:04 2010 +0300
@@ -4,50 +4,44 @@
?NewLC@CHnItemId@@SAPAV1@ABVTDesC16@@0@Z @ 3 NONAME ; class CHnItemId * CHnItemId::NewLC(class TDesC16 const &, class TDesC16 const &)
?GetAlternativeWidgetNumber@CHnMdSuite@@QAEHXZ @ 4 NONAME ; int CHnMdSuite::GetAlternativeWidgetNumber(void)
?GetSuiteParameters@CHnMdSuite@@QAEAAVCLiwGenericParamList@@XZ @ 5 NONAME ; class CLiwGenericParamList & CHnMdSuite::GetSuiteParameters(void)
- ?ReloadLocalizationL@CHnMdModel@@QAEXXZ @ 6 NONAME ; void CHnMdModel::ReloadLocalizationL(void)
- ?QueueForeground@CHnMdModel@@QAEXW4TForegroundGainTriggeringEvent@1@@Z @ 7 NONAME ; void CHnMdModel::QueueForeground(enum CHnMdModel::TForegroundGainTriggeringEvent)
- ?ReadFileL@HnUtils@@SAPAVHBufC8@@ABVTDesC16@@@Z @ 8 NONAME ; class HBufC8 * HnUtils::ReadFileL(class TDesC16 const &)
- ?GetModelL@CHnXmlModelProvider@@QAEHABVTDesC16@@AAVRXmlEngDocument@@@Z @ 9 NONAME ; int CHnXmlModelProvider::GetModelL(class TDesC16 const &, class RXmlEngDocument &)
- ?GetLastSuite@CHnMdModel@@QAEPAVCHnMdSuite@@XZ @ 10 NONAME ; class CHnMdSuite * CHnMdModel::GetLastSuite(void)
- ?GetColumnTextColumnCount@HnUtils@@SAHABVTDesC8@@VTChar@@@Z @ 11 NONAME ; int HnUtils::GetColumnTextColumnCount(class TDesC8 const &, class TChar)
- ?SetSuiteParametersL@CHnMdSuite@@QAEXAAVCLiwGenericParamList@@@Z @ 12 NONAME ; void CHnMdSuite::SetSuiteParametersL(class CLiwGenericParamList &)
- ?NewLC@CHnXmlModelProvider@@SAPAV1@XZ @ 13 NONAME ; class CHnXmlModelProvider * CHnXmlModelProvider::NewLC(void)
- ?NewLC@CHnMdModel@@SAPAV1@PAVMHnMdModelEventObserver@@PAVCHnSuiteModelContainer@@@Z @ 14 NONAME ; class CHnMdModel * CHnMdModel::NewLC(class MHnMdModelEventObserver *, class CHnSuiteModelContainer *)
- ?IsForegroundQueued@CHnMdModel@@QBEHXZ @ 15 NONAME ; int CHnMdModel::IsForegroundQueued(void) const
- ?NewL@CHnXmlModelProvider@@SAPAV1@XZ @ 16 NONAME ; class CHnXmlModelProvider * CHnXmlModelProvider::NewL(void)
- ?SetModeL@CHnMdModel@@QAEXW4TMdMode@@@Z @ 17 NONAME ; void CHnMdModel::SetModeL(enum TMdMode)
- ?AppendItemIdL@CHnFilter@@QAEXPAVCHnItemId@@@Z @ 18 NONAME ; void CHnFilter::AppendItemIdL(class CHnItemId *)
- ?HandleSisInstallationEventL@CHnMdModel@@QAEXPAVCHnSuiteModelContainer@@@Z @ 19 NONAME ; void CHnMdModel::HandleSisInstallationEventL(class CHnSuiteModelContainer *)
- ?ReadFileLC@HnUtils@@SAPAVHBufC8@@ABVTDesC16@@@Z @ 20 NONAME ; class HBufC8 * HnUtils::ReadFileLC(class TDesC16 const &)
- ?LoadSuiteL@CHnMdModel@@QAEHABVTDesC16@@PAVCLiwGenericParamList@@@Z @ 21 NONAME ; int CHnMdModel::LoadSuiteL(class TDesC16 const &, class CLiwGenericParamList *)
- ?SuiteModelExistsL@CHnMdModel@@QAEHABVTDesC8@@@Z @ 22 NONAME ; int CHnMdModel::SuiteModelExistsL(class TDesC8 const &)
- ?HandleBackEventL@CHnMdModel@@QAEHPAVCHnSuiteModelContainer@@ABVTDesC16@@H@Z @ 23 NONAME ; int CHnMdModel::HandleBackEventL(class CHnSuiteModelContainer *, class TDesC16 const &, int)
- ?SuiteName@CHnItemId@@QBEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CHnItemId::SuiteName(void) const
- ?Template@CHnMdItem@@QAEAAVTDesC8@@XZ @ 25 NONAME ; class TDesC8 & CHnMdItem::Template(void)
+ ?QueueForeground@CHnMdModel@@QAEXW4TForegroundGainTriggeringEvent@1@@Z @ 6 NONAME ; void CHnMdModel::QueueForeground(enum CHnMdModel::TForegroundGainTriggeringEvent)
+ ?ReadFileL@HnUtils@@SAPAVHBufC8@@ABVTDesC16@@@Z @ 7 NONAME ; class HBufC8 * HnUtils::ReadFileL(class TDesC16 const &)
+ ?GetModelL@CHnXmlModelProvider@@QAEHABVTDesC16@@AAVRXmlEngDocument@@@Z @ 8 NONAME ; int CHnXmlModelProvider::GetModelL(class TDesC16 const &, class RXmlEngDocument &)
+ ?GetLastSuite@CHnMdModel@@QAEPAVCHnMdSuite@@XZ @ 9 NONAME ; class CHnMdSuite * CHnMdModel::GetLastSuite(void)
+ ?GetColumnTextColumnCount@HnUtils@@SAHABVTDesC8@@VTChar@@@Z @ 10 NONAME ; int HnUtils::GetColumnTextColumnCount(class TDesC8 const &, class TChar)
+ ?SetSuiteParametersL@CHnMdSuite@@QAEXAAVCLiwGenericParamList@@@Z @ 11 NONAME ; void CHnMdSuite::SetSuiteParametersL(class CLiwGenericParamList &)
+ ?NewLC@CHnXmlModelProvider@@SAPAV1@XZ @ 12 NONAME ; class CHnXmlModelProvider * CHnXmlModelProvider::NewLC(void)
+ ?NewLC@CHnMdModel@@SAPAV1@PAVMHnMdModelEventObserver@@PAVCHnSuiteModelContainer@@@Z @ 13 NONAME ; class CHnMdModel * CHnMdModel::NewLC(class MHnMdModelEventObserver *, class CHnSuiteModelContainer *)
+ ?IsForegroundQueued@CHnMdModel@@QBEHXZ @ 14 NONAME ; int CHnMdModel::IsForegroundQueued(void) const
+ ?NewL@CHnXmlModelProvider@@SAPAV1@XZ @ 15 NONAME ; class CHnXmlModelProvider * CHnXmlModelProvider::NewL(void)
+ ?SetModeL@CHnMdModel@@QAEXW4TMdMode@@@Z @ 16 NONAME ; void CHnMdModel::SetModeL(enum TMdMode)
+ ?AppendItemIdL@CHnFilter@@QAEXPAVCHnItemId@@@Z @ 17 NONAME ; void CHnFilter::AppendItemIdL(class CHnItemId *)
+ ?ReadFileLC@HnUtils@@SAPAVHBufC8@@ABVTDesC16@@@Z @ 18 NONAME ; class HBufC8 * HnUtils::ReadFileLC(class TDesC16 const &)
+ ?LoadSuiteL@CHnMdModel@@QAEHABVTDesC16@@PAVCLiwGenericParamList@@@Z @ 19 NONAME ; int CHnMdModel::LoadSuiteL(class TDesC16 const &, class CLiwGenericParamList *)
+ ?SuiteModelExistsL@CHnMdModel@@QAEHABVTDesC8@@@Z @ 20 NONAME ; int CHnMdModel::SuiteModelExistsL(class TDesC8 const &)
+ ?HandleBackEventL@CHnMdModel@@QAEHPAVCHnSuiteModelContainer@@ABVTDesC16@@H@Z @ 21 NONAME ; int CHnMdModel::HandleBackEventL(class CHnSuiteModelContainer *, class TDesC16 const &, int)
+ ?SuiteName@CHnItemId@@QBEABVTDesC16@@XZ @ 22 NONAME ; class TDesC16 const & CHnItemId::SuiteName(void) const
+ ?Template@CHnMdItem@@QAEAAVTDesC8@@XZ @ 23 NONAME ; class TDesC8 & CHnMdItem::Template(void)
+ ?DeleteLastSuite@CHnMdModel@@QAEXXZ @ 24 NONAME ; void CHnMdModel::DeleteLastSuite(void)
+ ?NewLC@CHnFilter@@SAPAV1@XZ @ 25 NONAME ; class CHnFilter * CHnFilter::NewLC(void)
?SetAttributeL@HnUtils@@SAXABVTXmlEngElement@@AAVRBuf8@@@Z @ 26 NONAME ; void HnUtils::SetAttributeL(class TXmlEngElement const &, class RBuf8 &)
- ?ReleaseLocalization@CHnMdModel@@QAEXXZ @ 27 NONAME ; void CHnMdModel::ReleaseLocalization(void)
- ?DeleteLastSuite@CHnMdModel@@QAEXXZ @ 28 NONAME ; void CHnMdModel::DeleteLastSuite(void)
- ?NewLC@CHnFilter@@SAPAV1@XZ @ 29 NONAME ; class CHnFilter * CHnFilter::NewLC(void)
- ?EvaluateL@CHnMdModel@@QAEXXZ @ 30 NONAME ; void CHnMdModel::EvaluateL(void)
- ?SetAttributeL@HnUtils@@SAXABVTXmlEngElement@@ABVTDesC8@@AAVRBuf8@@@Z @ 31 NONAME ; void HnUtils::SetAttributeL(class TXmlEngElement const &, class TDesC8 const &, class RBuf8 &)
- ?Compare@CHnItemId@@QBEHABV1@@Z @ 32 NONAME ; int CHnItemId::Compare(class CHnItemId const &) const
- ?LocateFileLC@HnUtils@@SAPAVHBufC16@@ABVTDesC16@@@Z @ 33 NONAME ; class HBufC16 * HnUtils::LocateFileLC(class TDesC16 const &)
- ?Uid@CHnMdItem@@QAEAAVTDesC8@@XZ @ 34 NONAME ; class TDesC8 & CHnMdItem::Uid(void)
- ?SetEvaluateSuiteL@CHnFilter@@QAEXH@Z @ 35 NONAME ; void CHnFilter::SetEvaluateSuiteL(int)
- ?GetColumnTextLC@HnUtils@@SAPAVHBufC8@@HABVTDesC8@@VTChar@@@Z @ 36 NONAME ; class HBufC8 * HnUtils::GetColumnTextLC(int, class TDesC8 const &, class TChar)
- ?LocateNearestLanguageFileLC@HnUtils@@SAPAVHBufC16@@ABVTDesC16@@@Z @ 37 NONAME ; class HBufC16 * HnUtils::LocateNearestLanguageFileLC(class TDesC16 const &)
- ?SetSuiteId@CHnFilter@@QAEXH@Z @ 38 NONAME ; void CHnFilter::SetSuiteId(int)
- ?NewL@CHnFilter@@SAPAV1@XZ @ 39 NONAME ; class CHnFilter * CHnFilter::NewL(void)
- ?SuiteName@CHnMdSuite@@QAEABVTDesC16@@XZ @ 40 NONAME ; class TDesC16 const & CHnMdSuite::SuiteName(void)
- ?UpdateL@CHnItemId@@QAEXABV1@@Z @ 41 NONAME ; void CHnItemId::UpdateL(class CHnItemId const &)
- ?Type@CHnMdItem@@QAEAAVTDesC8@@XZ @ 42 NONAME ; class TDesC8 & CHnMdItem::Type(void)
- ?ReloadModelL@CHnXmlModelProvider@@QAEXXZ @ 43 NONAME ; void CHnXmlModelProvider::ReloadModelL(void)
- ??1CHnXmlModelProvider@@UAE@XZ @ 44 NONAME ; CHnXmlModelProvider::~CHnXmlModelProvider(void)
- ?NewL@CHnItemId@@SAPAV1@ABVTDesC16@@0@Z @ 45 NONAME ; class CHnItemId * CHnItemId::NewL(class TDesC16 const &, class TDesC16 const &)
- ?Id@CHnItemId@@QBEABVTDesC16@@XZ @ 46 NONAME ; class TDesC16 const & CHnItemId::Id(void) const
- ?EvaluateL@CHnMdModel@@QAEXAAVCHnFilter@@@Z @ 47 NONAME ; void CHnMdModel::EvaluateL(class CHnFilter &)
- ?NewL@CHnMdModel@@SAPAV1@PAVMHnMdModelEventObserver@@PAVCHnSuiteModelContainer@@@Z @ 48 NONAME ; class CHnMdModel * CHnMdModel::NewL(class MHnMdModelEventObserver *, class CHnSuiteModelContainer *)
- ?GetSuiteParameters@CHnMdModel@@QAEAAVCLiwGenericParamList@@H@Z @ 49 NONAME ; class CLiwGenericParamList & CHnMdModel::GetSuiteParameters(int)
- ?IgnoreEvaluations@CHnMdModel@@QAEXH@Z @ 50 NONAME ; void CHnMdModel::IgnoreEvaluations(int)
- ?GetCurrentUriL@CHnMdModel@@QAEXAAVTDes16@@@Z @ 51 NONAME ; void CHnMdModel::GetCurrentUriL(class TDes16 &)
+ ?EvaluateL@CHnMdModel@@QAEXXZ @ 27 NONAME ; void CHnMdModel::EvaluateL(void)
+ ?SetAttributeL@HnUtils@@SAXABVTXmlEngElement@@ABVTDesC8@@AAVRBuf8@@@Z @ 28 NONAME ; void HnUtils::SetAttributeL(class TXmlEngElement const &, class TDesC8 const &, class RBuf8 &)
+ ?Compare@CHnItemId@@QBEHABV1@@Z @ 29 NONAME ; int CHnItemId::Compare(class CHnItemId const &) const
+ ?Uid@CHnMdItem@@QAEAAVTDesC8@@XZ @ 30 NONAME ; class TDesC8 & CHnMdItem::Uid(void)
+ ?SetEvaluateSuiteL@CHnFilter@@QAEXH@Z @ 31 NONAME ; void CHnFilter::SetEvaluateSuiteL(int)
+ ?GetColumnTextLC@HnUtils@@SAPAVHBufC8@@HABVTDesC8@@VTChar@@@Z @ 32 NONAME ; class HBufC8 * HnUtils::GetColumnTextLC(int, class TDesC8 const &, class TChar)
+ ?LocateNearestLanguageFileLC@HnUtils@@SAPAVHBufC16@@ABVTDesC16@@@Z @ 33 NONAME ; class HBufC16 * HnUtils::LocateNearestLanguageFileLC(class TDesC16 const &)
+ ?SetSuiteId@CHnFilter@@QAEXH@Z @ 34 NONAME ; void CHnFilter::SetSuiteId(int)
+ ?NewL@CHnFilter@@SAPAV1@XZ @ 35 NONAME ; class CHnFilter * CHnFilter::NewL(void)
+ ?SuiteName@CHnMdSuite@@QAEABVTDesC16@@XZ @ 36 NONAME ; class TDesC16 const & CHnMdSuite::SuiteName(void)
+ ?UpdateL@CHnItemId@@QAEXABV1@@Z @ 37 NONAME ; void CHnItemId::UpdateL(class CHnItemId const &)
+ ?Type@CHnMdItem@@QAEAAVTDesC8@@XZ @ 38 NONAME ; class TDesC8 & CHnMdItem::Type(void)
+ ??1CHnXmlModelProvider@@UAE@XZ @ 39 NONAME ; CHnXmlModelProvider::~CHnXmlModelProvider(void)
+ ?NewL@CHnItemId@@SAPAV1@ABVTDesC16@@0@Z @ 40 NONAME ; class CHnItemId * CHnItemId::NewL(class TDesC16 const &, class TDesC16 const &)
+ ?Id@CHnItemId@@QBEABVTDesC16@@XZ @ 41 NONAME ; class TDesC16 const & CHnItemId::Id(void) const
+ ?EvaluateL@CHnMdModel@@QAEXAAVCHnFilter@@@Z @ 42 NONAME ; void CHnMdModel::EvaluateL(class CHnFilter &)
+ ?NewL@CHnMdModel@@SAPAV1@PAVMHnMdModelEventObserver@@PAVCHnSuiteModelContainer@@@Z @ 43 NONAME ; class CHnMdModel * CHnMdModel::NewL(class MHnMdModelEventObserver *, class CHnSuiteModelContainer *)
+ ?GetSuiteParameters@CHnMdModel@@QAEAAVCLiwGenericParamList@@H@Z @ 44 NONAME ; class CLiwGenericParamList & CHnMdModel::GetSuiteParameters(int)
+ ?IgnoreEvaluations@CHnMdModel@@QAEXH@Z @ 45 NONAME ; void CHnMdModel::IgnoreEvaluations(int)
--- a/menufw/hierarchynavigator/hnmetadatamodel/eabi/hnmetadatamodelu.def Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/eabi/hnmetadatamodelu.def Wed Jun 09 09:29:04 2010 +0300
@@ -1,54 +1,48 @@
EXPORTS
_ZN10CHnMdModel10LoadSuiteLERK7TDesC16P20CLiwGenericParamList @ 1 NONAME
_ZN10CHnMdModel12GetLastSuiteEv @ 2 NONAME
- _ZN10CHnMdModel14GetCurrentUriLER6TDes16 @ 3 NONAME
- _ZN10CHnMdModel15DeleteLastSuiteEv @ 4 NONAME
- _ZN10CHnMdModel15QueueForegroundENS_30TForegroundGainTriggeringEventE @ 5 NONAME
- _ZN10CHnMdModel16HandleBackEventLEP22CHnSuiteModelContainerRK7TDesC16i @ 6 NONAME
- _ZN10CHnMdModel17IgnoreEvaluationsEi @ 7 NONAME
- _ZN10CHnMdModel17SuiteModelExistsLERK6TDesC8 @ 8 NONAME
- _ZN10CHnMdModel18GetSuiteParametersEi @ 9 NONAME
- _ZN10CHnMdModel19ReleaseLocalizationEv @ 10 NONAME
- _ZN10CHnMdModel19ReloadLocalizationLEv @ 11 NONAME
- _ZN10CHnMdModel27HandleSisInstallationEventLEP22CHnSuiteModelContainer @ 12 NONAME
- _ZN10CHnMdModel4NewLEP23MHnMdModelEventObserverP22CHnSuiteModelContainer @ 13 NONAME
- _ZN10CHnMdModel5NewLCEP23MHnMdModelEventObserverP22CHnSuiteModelContainer @ 14 NONAME
- _ZN10CHnMdModel8SetModeLE7TMdMode @ 15 NONAME
- _ZN10CHnMdModel9EvaluateLER9CHnFilter @ 16 NONAME
- _ZN10CHnMdModel9EvaluateLEv @ 17 NONAME
- _ZN10CHnMdSuite18GetSuiteParametersEv @ 18 NONAME
- _ZN10CHnMdSuite19SetSuiteParametersLER20CLiwGenericParamList @ 19 NONAME
- _ZN10CHnMdSuite26GetAlternativeWidgetNumberEv @ 20 NONAME
- _ZN10CHnMdSuite9SuiteNameEv @ 21 NONAME
- _ZN19CHnXmlModelProvider12ReloadModelLEv @ 22 NONAME
- _ZN19CHnXmlModelProvider4NewLEv @ 23 NONAME
- _ZN19CHnXmlModelProvider5NewLCEv @ 24 NONAME
- _ZN19CHnXmlModelProvider9GetModelLERK7TDesC16R15RXmlEngDocument @ 25 NONAME
- _ZN19CHnXmlModelProviderD0Ev @ 26 NONAME
- _ZN19CHnXmlModelProviderD1Ev @ 27 NONAME
- _ZN19CHnXmlModelProviderD2Ev @ 28 NONAME
- _ZN7HnUtils10ReadFileLCERK7TDesC16 @ 29 NONAME
- _ZN7HnUtils12LocateFileLCERK7TDesC16 @ 30 NONAME
- _ZN7HnUtils13SetAttributeLERK14TXmlEngElementR5RBuf8 @ 31 NONAME
- _ZN7HnUtils13SetAttributeLERK14TXmlEngElementRK6TDesC8R5RBuf8 @ 32 NONAME
- _ZN7HnUtils15GetColumnTextLCEiRK6TDesC85TChar @ 33 NONAME
- _ZN7HnUtils24GetColumnTextColumnCountERK6TDesC85TChar @ 34 NONAME
- _ZN7HnUtils27LocateNearestLanguageFileLCERK7TDesC16 @ 35 NONAME
- _ZN7HnUtils9ReadFileLERK7TDesC16 @ 36 NONAME
- _ZN9CHnFilter10SetSuiteIdEi @ 37 NONAME
- _ZN9CHnFilter13AppendItemIdLEP9CHnItemId @ 38 NONAME
- _ZN9CHnFilter13SetSuiteNameLERK7TDesC16 @ 39 NONAME
- _ZN9CHnFilter17SetEvaluateSuiteLEi @ 40 NONAME
- _ZN9CHnFilter4NewLEv @ 41 NONAME
- _ZN9CHnFilter5NewLCEv @ 42 NONAME
- _ZN9CHnItemId4NewLERK7TDesC16S2_ @ 43 NONAME
- _ZN9CHnItemId5NewLCERK7TDesC16S2_ @ 44 NONAME
- _ZN9CHnItemId7UpdateLERKS_ @ 45 NONAME
- _ZN9CHnMdItem3UidEv @ 46 NONAME
- _ZN9CHnMdItem4TypeEv @ 47 NONAME
- _ZN9CHnMdItem8TemplateEv @ 48 NONAME
- _ZNK10CHnMdModel18IsForegroundQueuedEv @ 49 NONAME
- _ZNK9CHnItemId2IdEv @ 50 NONAME
- _ZNK9CHnItemId7CompareERKS_ @ 51 NONAME
- _ZNK9CHnItemId9SuiteNameEv @ 52 NONAME
+ _ZN10CHnMdModel15DeleteLastSuiteEv @ 3 NONAME
+ _ZN10CHnMdModel15QueueForegroundENS_30TForegroundGainTriggeringEventE @ 4 NONAME
+ _ZN10CHnMdModel16HandleBackEventLEP22CHnSuiteModelContainerRK7TDesC16i @ 5 NONAME
+ _ZN10CHnMdModel17IgnoreEvaluationsEi @ 6 NONAME
+ _ZN10CHnMdModel17SuiteModelExistsLERK6TDesC8 @ 7 NONAME
+ _ZN10CHnMdModel18GetSuiteParametersEi @ 8 NONAME
+ _ZN10CHnMdModel4NewLEP23MHnMdModelEventObserverP22CHnSuiteModelContainer @ 9 NONAME
+ _ZN10CHnMdModel5NewLCEP23MHnMdModelEventObserverP22CHnSuiteModelContainer @ 10 NONAME
+ _ZN10CHnMdModel8SetModeLE7TMdMode @ 11 NONAME
+ _ZN10CHnMdModel9EvaluateLER9CHnFilter @ 12 NONAME
+ _ZN10CHnMdModel9EvaluateLEv @ 13 NONAME
+ _ZN10CHnMdSuite18GetSuiteParametersEv @ 14 NONAME
+ _ZN10CHnMdSuite19SetSuiteParametersLER20CLiwGenericParamList @ 15 NONAME
+ _ZN10CHnMdSuite26GetAlternativeWidgetNumberEv @ 16 NONAME
+ _ZN10CHnMdSuite9SuiteNameEv @ 17 NONAME
+ _ZN19CHnXmlModelProvider4NewLEv @ 18 NONAME
+ _ZN19CHnXmlModelProvider5NewLCEv @ 19 NONAME
+ _ZN19CHnXmlModelProvider9GetModelLERK7TDesC16R15RXmlEngDocument @ 20 NONAME
+ _ZN19CHnXmlModelProviderD0Ev @ 21 NONAME
+ _ZN19CHnXmlModelProviderD1Ev @ 22 NONAME
+ _ZN19CHnXmlModelProviderD2Ev @ 23 NONAME
+ _ZN7HnUtils10ReadFileLCERK7TDesC16 @ 24 NONAME
+ _ZN7HnUtils13SetAttributeLERK14TXmlEngElementR5RBuf8 @ 25 NONAME
+ _ZN7HnUtils13SetAttributeLERK14TXmlEngElementRK6TDesC8R5RBuf8 @ 26 NONAME
+ _ZN7HnUtils15GetColumnTextLCEiRK6TDesC85TChar @ 27 NONAME
+ _ZN7HnUtils24GetColumnTextColumnCountERK6TDesC85TChar @ 28 NONAME
+ _ZN7HnUtils27LocateNearestLanguageFileLCERK7TDesC16 @ 29 NONAME
+ _ZN7HnUtils9ReadFileLERK7TDesC16 @ 30 NONAME
+ _ZN9CHnFilter10SetSuiteIdEi @ 31 NONAME
+ _ZN9CHnFilter13AppendItemIdLEP9CHnItemId @ 32 NONAME
+ _ZN9CHnFilter13SetSuiteNameLERK7TDesC16 @ 33 NONAME
+ _ZN9CHnFilter17SetEvaluateSuiteLEi @ 34 NONAME
+ _ZN9CHnFilter4NewLEv @ 35 NONAME
+ _ZN9CHnFilter5NewLCEv @ 36 NONAME
+ _ZN9CHnItemId4NewLERK7TDesC16S2_ @ 37 NONAME
+ _ZN9CHnItemId5NewLCERK7TDesC16S2_ @ 38 NONAME
+ _ZN9CHnItemId7UpdateLERKS_ @ 39 NONAME
+ _ZN9CHnMdItem3UidEv @ 40 NONAME
+ _ZN9CHnMdItem4TypeEv @ 41 NONAME
+ _ZN9CHnMdItem8TemplateEv @ 42 NONAME
+ _ZNK10CHnMdModel18IsForegroundQueuedEv @ 43 NONAME
+ _ZNK9CHnItemId2IdEv @ 44 NONAME
+ _ZNK9CHnItemId7CompareERKS_ @ 45 NONAME
+ _ZNK9CHnItemId9SuiteNameEv @ 46 NONAME
--- a/menufw/hierarchynavigator/hnmetadatamodel/group/hnmetadatamodel.mmp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/group/hnmetadatamodel.mmp Wed Jun 09 09:29:04 2010 +0300
@@ -71,7 +71,6 @@
SOURCE hnsimpleconditionhas.cpp
SOURCE hnsimpleconditionhasnot.cpp
SOURCE hnxmlmodelcache.cpp
-SOURCE hnxmlsuitefilesreg.cpp
SOURCE hnbitmapidcache.cpp
USERINCLUDE ../inc
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Wed Jun 09 09:29:04 2010 +0300
@@ -140,7 +140,11 @@
}
+//paths
+_LIT( KFolderSuitePath, "Z:\\private\\101F4CD2\\import\\suites\\foldersuite\\suite.xml" );
+_LIT( KFolderItemsPath, "Z:\\private\\101F4CD2\\import\\suites\\foldersuite\\items.xml" );
+//XML tags
_LIT8( KMm8, "mm" );
_LIT8( KContentElementName8, "content" );
_LIT8( KSuiteElementName8, "suite" );
@@ -324,6 +328,7 @@
// widget types
_LIT8 ( KSuite8, "suite" );
_LIT ( KFolderSuite, "foldersuite" );
+_LIT8 ( KFolderSuite8, "foldersuite" );
_LIT8 ( KWidgetType8, "type" );
_LIT8 ( KAllowedTypes8, "allowed_types" );
_LIT8 ( KWidgetTypeList8, "list" );
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdlocalization.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdlocalization.h Wed Jun 09 09:29:04 2010 +0300
@@ -97,20 +97,6 @@
HBufC* LoadL( const TDesC& aResourceName,
const CDesC16Array* aDesParams,
const CArrayFix<TInt>* aIntParams );
-
- /**
- * Realeses loaded resources.
- *
- * @since S60 5.0
- */
- void ReleaseResourceFiles();
- /**
- * Reloads realesed resources.
- *
- * @since S60 5.0
- */
- void ReloadResourceFilesL();
-
private:
/**
@@ -189,17 +175,7 @@
* Not own.
*/
CCoeEnv* iCoeEnv;
-
- /**
- * Own - Dynamic offset.
- */
- RArray< TInt > iDynamicOffset;
-
- /**
- * Own - Dynamic localization.
- */
- RPointerArray<CHnMdLocalizationElement> iDynamicLocalization;
-
+
/**
* Own - Internal offset.
*/
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Wed Jun 09 09:29:04 2010 +0300
@@ -394,21 +394,6 @@
*/
IMPORT_C void DeleteLastSuite();
-
- /**
- * Realeses localization files.
- *
- * @since S60 5.0
- */
- IMPORT_C void ReleaseLocalization();
-
- /**
- * Reloads localization.
- *
- * @since S60 5.0
- */
- IMPORT_C void ReloadLocalizationL();
-
/**
* Informs metadatamodel to ignore evaluations or
* to performing evaluations, according to the
@@ -453,16 +438,6 @@
void SuiteModelReadyToShowL( CHnSuiteModel* aJustEvaluatedSuite );
/**
- * Causes all of the loades suites except for the suite at the bottom
- * of the stack to be reloaded from their corresponding xml file
- * definitions.
- *
- * @since S60 5.0
- * @param aIgnore aModelContainer Model container object.
- */
- void ReloadStackSuitesL( CHnSuiteModelContainer* aModelContainer );
-
- /**
* Counts number of loaded suites.
*
* @since S60 5.0
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnutils.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnutils.h Wed Jun 09 09:29:04 2010 +0300
@@ -61,15 +61,6 @@
*/
IMPORT_C static HBufC8* ReadFileL(const TDesC& aPath);
- /**
- * Locates file.
- *
- * @since S60 v3.0
- * @param aFile File name.
- * @return File path.
- */
- IMPORT_C static HBufC* LocateFileLC( const TDesC& aFile );
-
/**
* Locates nearest Language file.
*
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnxmlmodelprovider.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnxmlmodelprovider.h Wed Jun 09 09:29:04 2010 +0300
@@ -36,7 +36,7 @@
* @since S60 5.0
* @ingroup group_hnmetadatamodel
*/
-NONSHARABLE_CLASS(CHnXmlModelProvider) : public CActive
+NONSHARABLE_CLASS(CHnXmlModelProvider) : public CBase
{
public:
/**
@@ -60,18 +60,6 @@
*/
IMPORT_C virtual ~CHnXmlModelProvider();
- /**
- * @see CAsctive::DoCancel
- */
- void DoCancel();
-
- /**
- * Services the suite synchronization steps according to class iterator.
- *
- * @see CAsctive::RunL
- */
- void RunL();
-
private:
/**
@@ -97,37 +85,26 @@
* Builds root of xml model from suite definition.
*
* @since S60 v5.0
- * @param aSuiteName Suite name.
* @param aXmlDoc XLM model of the suite.
* @return Error code.
*/
- TInt CollectSuiteL( const TDesC& aSuiteName, RXmlEngDocument& aXmlDoc );
+ TInt CollectSuiteL( RXmlEngDocument& aXmlDoc );
/**
* appends items to suite in model,
*
* @since S60 v5.0
- * @param aSuiteName Name of suite to append items to.
* @param aXmlDoc XLM model of the suite.
*/
- void CollectItemsL(const TDesC& aSuiteName, RXmlEngDocument& aXmlDoc );
-
- /**
- * Copies suites and items definitions to working dir.
- *
- * @since S60 v5.0
- * @return Error code.
- */
- TBool SynchronizeSuitesL();
-
+ void CollectItemsL( RXmlEngDocument& aXmlDoc );
+
/**
* Creates model from suite definition.
*
* @since S60 v5.0
- * @param aStr Name of suite.
* @param aXmlDoc XML model of the suite.
*/
- void CreateModelL( const TDesC& aStr, RXmlEngDocument& aXmlDoc );
+ void CreateModelL( RXmlEngDocument& aXmlDoc );
/**
* Changes event names to ids.
@@ -166,17 +143,7 @@
* @return RXmlEngDocument.
*/
RXmlEngDocument ParseFileL( const TDesC& aPath );
-
- /**
- * Resets cached models.
- */
- void ResetCache();
-
- /**
- * Reparses a document.
- */
- IMPORT_C void ReloadModelL();
-
+
/**
* Parses a document - searching proper suite.
*
@@ -193,41 +160,10 @@
* @return Event id.
*/
TInt GetNewEventId( HBufC* aEventName );
-
- /**
- * Check if suite exists.
- *
- * @since S60 5.0
- * @param aSuite Suite name.
- * @return ETrue if suite exists, otherwise EFalse.
- */
- TBool SuiteExistsL( const TDesC& aSuite );
-
+
private:
/**
- * Invoked after asynchronous synchronization is finished.
- */
- void SynchronizationFinishedL();
-
- /**
- * Sets up normal path to suites.
- *
- * @param aPath Path to be searched for suites.
- */
- void SearchPathForSuitesL( const TDesC& aPath );
-
- /**
- * Sets up normal path to suites.
- */
- void SetupSuitePathL();
-
- /**
- * Sets up fail sage path to suites.
- */
- void SetupFailSafeSuitePathL();
-
- /**
* Standard C++ constructor.
*/
CHnXmlModelProvider();
@@ -236,15 +172,6 @@
* Standard symbian 2nd phase constructor.
*/
void ConstructL();
-
- /**
- * Finds drive letter where suite definition is.
- *
- * @since S60 v5.0
- * @return Error code
- */
- void CheckDrivesL();
-
#ifdef _DEBUG
private:
@@ -265,49 +192,14 @@
RXmlEngDOMParser iDomParser;
/**
- * File server session
- */
- RFs iFs;
-
- /**
- * File manager
- */
- CFileMan* iFileMan;
-
- /**
- * List containing names of suites (suite name is same as dir name)
- * that should be installed from all drives
- */
- RHashSet< HBufC* > iInstSuites;
-
- /**
* Event map.
*/
RHashMap< HBufC*, TInt > iEventMap;
-
- /**
- * Main path.
- */
- RBuf iPath;
-
+
/**
* Cached suites.
*/
CHnXmlModelCache* iCache;
- /**
- * Own. Iterator used in synchronisation.
- * Indicates next suite name to be synchronised.
- */
- THashSetIter<HBufC*>* iSuiteSetIterator;
-
- /**
- * ETrue if suite files on the c: drive were updated during the
- * last synchronization. New suite files also count as updated.
- * EFalse if the last synchronization did not alter any files
- * on the c: drive.
- */
- TBool iSuiteFilesUpdated;
-
};
#endif // C_HNMULMODELPROVIDER_H
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnxmlsuitefilesreg.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
-*
-*/
-
-
-
-#ifndef C_HNXMLSUITEFILESREG_H
-#define C_HNXMLSUITEFILESREG_H
-
-#include <bautils.h>
-#include <e32hashtab.h>
-
-/**
- * Structure binding file information together.
- * All of this information is essential when synchronising suite files.
- */
-NONSHARABLE_STRUCT(THnFileInfo)
- {
- TBuf< KMaxFileName > iFileName;
- TBuf< KMaxPath > iFilePath;
- TTime iLastModified;
- TInt iSize;
- };
-
-/**
- * Registry of suite definition files.
- *
- * Keeps track of the suite files' sync.
- *
- * @lib hnmetadatamodel
- * @since S60 5.0
- * @ingroup group_hnmetadatamodel
- */
-NONSHARABLE_CLASS(CHnXmlSuiteFilesReg) : public CBase
- {
-public:
- /**
- * Standard factory method.
- *
- * @since S60 v5.0
- * @return Fully constructed object.
- */
- static TBool SynchronizeL( RFs & aFs, const TDesC &aSuiteName );
-
- /**
- * Standard virtual destructor.
- */
- virtual ~CHnXmlSuiteFilesReg();
-
-private:
-
- /**
- * Standard C++ constructor.
- */
- CHnXmlSuiteFilesReg( RFs & aFs );
-
- /**
- * Standard symbian 2nd phase constructor.
- */
- void ConstructL( const TDesC &aSuiteName );
-
- /**
- * Destroys suite file maps.
- */
- void DestroySuiteFilesMaps();
-
- /**
- * Returns the valid suite import dir.
- *
- * @param aDriveNumber Number of the drive for which to create path.
- * @return Path.
- */
- HBufC* GetSuiteImportDirL( TInt aDriveNumber ) const;
-
- /**
- * Searches all the drives for import files for this particular suite.
- */
- void SearchDrivesForSuiteFilesL();
-
- /**
- * Processes suite import dir.
- *
- * @param aSuitePath Path of the suite import.
- */
- void SearchDirForSuiteFilesL( const TDesC& aSuitePath );
-
- /**
- * Adds a file to the suite map. The logics in the methods always prefers
- * the newer files over the older. If a file by the same name already exists
- * with a newer date file will not be added.
- *
- * @param aDir Directory of the new file.
- * @param aFile New file entry.
- */
- void AddSuiteFileToMapL( const TDesC& aDir, const TEntry& aFile );
-
- /**
- * Calculates the current size of the dir in the installation.\
- *
- * @return Size in bytes.
- */
- TInt CalculateCurrentSuiteSizeL();
-
- /**
- * Calculates the size of the data to be synchronised.
- *
- * @return Size in bytes.
- */
- TInt CalculateSynchronizationSuiteSize();
-
- /**
- * Synchronizes the suite files.
- */
- TBool SynchronizeSuiteFilesL();
-
- /**
- * Constructs the valid installation path.
- *
- * @return The installation path.
- */
- HBufC* GetSuiteInstallPathL();
-
-private:
-
- /**
- * Name of the suite (suite folder).
- */
- RBuf iSuiteName;
-
- /**
- * File server session reference
- */
- RFs &iFs;
-
- /**
- * File manager
- */
- CFileMan* iFileMan;
-
- /**
- * Hashmap containing paths to the suite files.
- */
- RHashMap< const TDesC*, THnFileInfo* > iSuiteFiles;
-
- };
-#endif // C_HNXMLSUITEFILESREG_H
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdlocalization.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdlocalization.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -119,7 +119,6 @@
{
TInt count = iInternalLocalization.Count();
const CHnMdLocalizationElement* element = NULL;
-
for ( TInt i = 0; i < count; i++ )
{
const CHnMdLocalizationElement* tmp = iInternalLocalization[i];
@@ -129,21 +128,6 @@
break;
}
}
- if( !element )
- {
- count = iDynamicLocalization.Count();
-
- for ( TInt i = 0; i < count; i++ )
- {
- const CHnMdLocalizationElement* tmp = iDynamicLocalization[i];
- if ( !tmp->Namespace().Compare( aNamespace) )
- {
- element = tmp;
- break;
- }
- }
- }
-
return element;
}
@@ -161,13 +145,6 @@
//
CHnMdLocalization::~CHnMdLocalization()
{
- iDynamicLocalization.ResetAndDestroy();
- for( TInt i( 0 ); i < iDynamicOffset.Count(); i++ )
- {
- iCoeEnv->DeleteResourceFile( iDynamicOffset[i] );
- }
- iDynamicOffset.Close();
-
iInternalLocalization.ResetAndDestroy();
for( TInt i( 0 ); i < iInternalOffset.Count(); i++ )
{
@@ -179,42 +156,6 @@
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
-//
-void CHnMdLocalization::ReloadResourceFilesL()
- {
- for( TInt i( 0 ); i < iDynamicLocalization.Count(); i++ )
- {
- iDynamicLocalization[i]->LocateLanguageFileL();
- if( iDynamicLocalization[i]->SourcePath() )
- {
- TInt offset( 0 );
- TRAPD( err, offset = iCoeEnv->AddResourceFileL(
- *(iDynamicLocalization[i]->SourcePath()) ) );
- if ( !err )
- {
- iDynamicOffset.AppendL( offset );
- }
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnMdLocalization::ReleaseResourceFiles()
- {
- iDynamicLocalization.ResetAndDestroy();
- for( TInt i( 0 ); i < iDynamicOffset.Count(); i++ )
- {
- iCoeEnv->DeleteResourceFile( iDynamicOffset[i] );
- }
- iDynamicOffset.Reset();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
//
void CHnMdLocalization::AppendElementL( CHnMdLocalizationElement* aElement )
{
@@ -231,19 +172,6 @@
}
}
}
- else
- {
- iDynamicLocalization.AppendL( aElement );
- if( IsResourceFile (aElement->Source()) )
- {
- TInt offset( 0 );
- TRAPD( err, offset = iCoeEnv->AddResourceFileL( *(aElement->SourcePath()) ) );
- if ( !err )
- {
- iDynamicOffset.AppendL( offset );
- }
- }
- }
}
// ---------------------------------------------------------------------------
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -50,8 +50,6 @@
MMPERF(("CHnMetaDataModel::ConstructL - bitmap and mask ids cache ready"));
iBitmapIdCache = CHnBitmapIdCache::NewL();
MMPERF(("CHnMetaDataModel::ConstructL - model privider ready"));
- iXmlModelProvider->ReloadModelL();
- MMPERF(("CHnMetaDataModel::ConstructL - model reloaded"));
iCmnPtrs.iLocalization = iLocalization;
iCmnPtrs.iIdGenerator = &iIdGenerator;
@@ -165,102 +163,12 @@
//
// ---------------------------------------------------------------------------
//
-EXPORT_C void CHnMdModel::HandleSisInstallationEventL(
- CHnSuiteModelContainer* /*aModelContainer*/ )
- {
- iXmlModelProvider->ReloadModelL();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnMdModel::ReloadStackSuitesL( CHnSuiteModelContainer* aModelContainer )
- {
- RPointerArray< CLiwGenericParamList > paramsArray;
- CleanupResetAndDestroyPushL( paramsArray );
-
- TBool rootDisplayed( iLoadedSuites.Count() == 1 );
- while( iLoadedSuites.Count() > 0 )
- {
- // break loop to leave root suite on the stack
- if( ( iLoadedSuites.Count() == 1 && paramsArray.Count() > 0 )
- || rootDisplayed )
- {
- break;
- }
-
- CHnMdSuite* suite = GetLastSuite();
- if( iXmlModelProvider->SuiteExistsL( suite->SuiteName() ) )
- {
- CLiwGenericParamList* suiteParams = CLiwGenericParamList::NewL();
- CleanupStack::PushL( suiteParams );
- suiteParams->AppendL( suite->GetSuiteParameters() );
- paramsArray.Append( suiteParams );
- CleanupStack::Pop( suiteParams );
- }
- aModelContainer->PopSuiteModelL( suite->SuiteName() );
- DeleteLastSuite();
- }
-
- TInt err( KErrNone );
- CHnFilter* filter = CHnFilter::NewLC();
- filter->SetEvaluateSuiteL( ETrue );
-
- SetModeL( iMode );
-
- for( TInt i( paramsArray.Count() - 1 ); i >= 0 && !err; i-- )
- {
- CLiwGenericParamList* suiteParams = CLiwGenericParamList::NewL();
- CleanupStack::PushL(suiteParams);
- suiteParams->AppendL( *(paramsArray[ i ]));
- TInt pos( 0 );
- const TLiwGenericParam* param = suiteParams->FindFirst( pos, KSuiteName8 );
- if ( param && pos >= 0)
- {
- TPtrC suiteName;
- param->Value().Get( suiteName );
- err = LoadSuiteL( suiteName, suiteParams );
- }
- CleanupStack::PopAndDestroy( suiteParams );
-
- GetLastSuite()->SetModeL( iMode );
- GetLastSuite()->MarkEvaluationL(
- *filter, *iCmnPtrs.iContainer->GetLastSuiteModel() );
- GetLastSuite()->EvaluateL( *iCmnPtrs.iContainer->GetLastSuiteModel() );
- }
-
- CleanupStack::PopAndDestroy( filter );
- CleanupStack::PopAndDestroy( ¶msArray );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
EXPORT_C void CHnMdModel::DeleteLastSuite()
{
CHnMdSuite* tmpPtr = GetLastSuite();
iLoadedSuites.Remove( iLoadedSuites.Count() - 1 );
delete tmpPtr;
}
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CHnMdModel::ReleaseLocalization()
- {
- iLocalization->ReleaseResourceFiles();
- iXmlModelProvider->ResetCache();
- }
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CHnMdModel::ReloadLocalizationL()
- {
- iLocalization->ReloadResourceFilesL();
- }
// ---------------------------------------------------------------------------
//
@@ -461,10 +369,11 @@
EXPORT_C TBool CHnMdModel::SuiteModelExistsL( const TDesC8& aSuiteModel )
{
TBool res( EFalse );
- HBufC* suiteName = HnConvUtils::Str8ToStrLC( aSuiteModel );
- res = iXmlModelProvider->SuiteExistsL( *suiteName ) ||
- aSuiteModel.Compare( KRoot8 ) == KErrNone ;
- CleanupStack::PopAndDestroy( suiteName );
+ if( !aSuiteModel.Compare( KFolderSuite8 ) ||
+ !aSuiteModel.Compare( KRoot8 ) )
+ {
+ res = ETrue;
+ }
return res;
}
@@ -472,22 +381,6 @@
//
// ---------------------------------------------------------------------------
//
-EXPORT_C void CHnMdModel::GetCurrentUriL( TDes& aUri )
- {
- iXmlModelProvider->ReloadModelL();
-
- aUri.Append( KPrefMm );
- for( TInt i(0); i < iLoadedSuites.Count(); i++ )
- {
- aUri.Append( iLoadedSuites[ i ]->SuiteName() );
- aUri.Append( KSlash );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
void CHnMdModel::EvaluateTopSuiteL()
{
if ( !iIgnoreEvaluations )
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdvalueimage.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdvalueimage.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -36,6 +36,7 @@
#include "menudebug.h"
#include "hnbitmapidcache.h"
+_LIT( KGridRootMif, "gridroot.mif" );
// ======== MEMBER FUNCTIONS ========
// ---------------------------------------------------------------------------
@@ -277,26 +278,9 @@
HBufC* CHnMdValueImage::FindMatchigMifFileL( const RFs& aFs, TDesC& aFileName )
{
DEBUG16(("_MM_: CHnMdValueImage::FindMatchigMifFileL IN"));
-
- _LIT( KGridRootMif, "gridroot.mif" );
-
- // whole path to the mif file was not specified
+ HBufC* ret = NULL;
TDriveList driveList;
- HBufC* ret = NULL;
-
- if ( aFileName == KGridRootMif )
- {
- ret = HBufC::NewL(
- 1 + KRscPath().Length() + // 1 - drive letter len.
- aFileName.Length() );
- TPtr ptr( ret->Des() );
- TChar driveLetter;
- aFs.DriveToChar( EDriveZ, driveLetter );
- ptr.Append( driveLetter );
- ptr.Append( KRscPath );
- ptr.Append( aFileName );
- }
- else if ( KErrNone == aFs.DriveList( driveList ) )
+ if ( KErrNone == aFs.DriveList( driveList ) )
{
TInt driveNumber( EDriveY ); // start with drive Y
do // iterates through drives: Y, X, W, ..., C, B, A, Z
@@ -352,7 +336,21 @@
TInt errCode = HnLiwUtils::GetStringL( *iParamList, iMifFile8, iPos, tmpBuf );
if ( tmpBuf.Length() )
{
- if ( BaflUtils::FileExists( iCmnPtrs->iFs, tmpBuf ) )
+ TDriveList driveList;
+ if ( tmpBuf == KGridRootMif )
+ {
+ HBufC* temp = HBufC::NewL(
+ 1 + KRscPath().Length() + // 1 - drive letter len.
+ tmpBuf.Length() );
+ TPtr ptr( temp->Des() );
+ TChar driveLetter;
+ iCmnPtrs->iFs.DriveToChar( EDriveZ, driveLetter );
+ ptr.Append( driveLetter );
+ ptr.Append( KRscPath );
+ ptr.Append( tmpBuf );
+ ret = temp;
+ }
+ else if ( BaflUtils::FileExists( iCmnPtrs->iFs, tmpBuf ) )
{
// return fileName as it is
ret = tmpBuf.AllocL();
@@ -572,64 +570,4 @@
aKeyMask.Append( aMaskIdBuf );
}
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-//CGulIcon* CHnMdValueImage::GetIconL(
-// const CLiwGenericParamList* aQueriesResultsList, TInt aPos )
-// {
-// CGulIcon* gulIcon = NULL;
-//
-// iParamList = aQueriesResultsList;
-// iPos = aPos;
-//
-// // only to set iImageSource, to be optimized
-// SetImageSourceL();
-//
-// TSize defaultSize( KDefaultIconSize, KDefaultIconSize );
-//
-// CFbsBitmap* bitmap = NULL;
-// CFbsBitmap* mask = NULL;
-//
-// MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-//
-// switch( iImageSource )
-// {
-// case EImageSourceResource:
-// {
-// TInt bitmapId = 0;
-// TInt maskId = 0;
-// GetBitmapAndMaskIdL(bitmapId, maskId);
-// if ( iMifFileName && bitmapId != KErrNotFound )
-// {
-// AknsUtils::CreateIconL(
-// skin, SkinIdL(), bitmap, mask,
-// *iMifFileName, bitmapId, maskId );
-// }
-// }
-// break;
-// default:
-// {
-// User::Panic( KMatrixPanic , 1 );
-// }
-// }
-//
-// if ( EImageSourceUndefined != iImageSource )
-// {
-// if ( EImageSourceFile != iImageSource )
-// {
-// gulIcon = CGulIcon::NewL( bitmap, mask );
-// AknIconUtils::SetSize( mask, defaultSize );
-// AknIconUtils::SetSize( bitmap, defaultSize );
-// }
-// else
-// {
-// gulIcon = CGulIcon::NewL( bitmap );
-// AknIconUtils::SetSize( bitmap, defaultSize );
-// }
-// }
-//
-// return gulIcon;
-// }
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnutils.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnutils.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -75,44 +75,6 @@
//
// ---------------------------------------------------------------------------
//
-EXPORT_C HBufC* HnUtils::LocateFileLC( const TDesC& aFile )
- {
- HBufC* filePath = HBufC::NewLC(KMaxName);
- RFs& fs = CEikonEnv::Static()->FsSession();
-
- TDriveList driveList;
- TChar driveLetter;
- TInt driveNumber=EDriveY;
- User::LeaveIfError(fs.DriveList(driveList));
- for(; driveNumber>=EDriveA-1; driveNumber-- )
- {
- if (driveNumber==EDriveA-1)
- driveNumber = EDriveZ;
- if (driveList[driveNumber])
- {
- User::LeaveIfError(fs.DriveToChar(driveNumber, driveLetter));
- filePath->Des().Zero();
- filePath->Des().Append(driveLetter);
- filePath->Des().Append(KRscPath);
- filePath->Des().Append(aFile);
-
- if (BaflUtils::FileExists(fs,*filePath))
- {
- return filePath;
- }
- }
- if (driveNumber == EDriveZ)
- break;
- }
-
- User::Leave(KErrNotFound);
- return filePath;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
EXPORT_C HBufC* HnUtils::LocateNearestLanguageFileLC( const TDesC& aFile )
{
_LIT( KExtRSC, ".r");
@@ -122,31 +84,22 @@
RFs& fs = CEikonEnv::Static()->FsSession();
TDriveList driveList;
TChar driveLetter;
- TInt driveNumber=EDriveY;
- User::LeaveIfError(fs.DriveList(driveList));
+ //locate resources only on Z drive for foldersuite
+ //no need to scan all drives
+ TInt driveNumber=EDriveZ;
TFileName file;
- for(; driveNumber>=EDriveA-1; driveNumber-- )
+ User::LeaveIfError(fs.DriveToChar(driveNumber, driveLetter));
+ filePath->Des().Zero();
+ filePath->Des().Append(driveLetter);
+ filePath->Des().Append(KRscPath);
+ filePath->Des().Append(aFile);
+
+ file = *filePath;
+ BaflUtils::NearestLanguageFile( fs, file);
+ if( BaflUtils::FileExists( fs, file))
{
- if (driveNumber==EDriveA-1)
- driveNumber = EDriveZ;
- if (driveList[driveNumber])
- {
- User::LeaveIfError(fs.DriveToChar(driveNumber, driveLetter));
- filePath->Des().Zero();
- filePath->Des().Append(driveLetter);
- filePath->Des().Append(KRscPath);
- filePath->Des().Append(aFile);
-
- file = *filePath;
- BaflUtils::NearestLanguageFile( fs, file);
- if( BaflUtils::FileExists( fs, file))
- {
- CleanupStack::PopAndDestroy(filePath);
- return file.AllocLC();
- }
- }
- if (driveNumber == EDriveZ)
- break;
+ CleanupStack::PopAndDestroy(filePath);
+ return file.AllocLC();
}
CleanupStack::PopAndDestroy(filePath);
}
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnxmlmodelprovider.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnxmlmodelprovider.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -18,7 +18,6 @@
#include <sysutil.h>
#include "hnxmlmodelprovider.h"
#include "hnxmlmodelcache.h"
-#include "hnxmlsuitefilesreg.h"
#include "hnglobals.h"
#include "hnconvutils.h"
#include "menudebug.h"
@@ -36,79 +35,13 @@
{
iDomImpl.OpenL();
User::LeaveIfError(iDomParser.Open(iDomImpl));
- User::LeaveIfError(iFs.Connect());
- iFileMan = CFileMan::NewL(iFs);
-
- iPath.CreateL(KMaxPath);
- User::LeaveIfError(iFs.PrivatePath(iPath));
- iPath.Insert(0, KDrive);
- iPath.Append(KEntriesSuffix);
iCache = CHnXmlModelCache::NewL();
-
- CActiveScheduler::Add( this);
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::DoCancel()
- {
-
}
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
-void CHnXmlModelProvider::SynchronizationFinishedL()
- {
- ResetCache();
- THnMdCommonPointers &cmnPtr = *THnMdCommonPointers::Static();
- CHnMdModel* model = cmnPtr.iModel;
- if ( iSuiteFilesUpdated )
- {
- model->ReloadStackSuitesL( cmnPtr.iContainer );
- }
- }
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::RunL()
- {
- if ( !iSuiteSetIterator )
- {
- CheckDrivesL();
- iSuiteSetIterator = new ( ELeave ) THashSetIter<HBufC*>( iInstSuites );
- iSuiteSetIterator->Reset();
- iStatus = KRequestPending;
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- }
- else if ( iSuiteSetIterator->Next() )
- {
- TBool filesUpdated = CHnXmlSuiteFilesReg::SynchronizeL(
- iFs, **(iSuiteSetIterator->Current()) );
- iSuiteFilesUpdated = ( iSuiteFilesUpdated || filesUpdated );
- iStatus = KRequestPending;
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- }
- else
- {
- delete iSuiteSetIterator;
- iSuiteSetIterator = NULL;
- SynchronizationFinishedL();
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
EXPORT_C CHnXmlModelProvider* CHnXmlModelProvider::NewL()
{
CHnXmlModelProvider* self = CHnXmlModelProvider::NewLC();
@@ -132,11 +65,7 @@
//
// ---------------------------------------------------------------------------
//
-CHnXmlModelProvider::CHnXmlModelProvider() :
- CActive( EPriorityLow ),
- iInstSuites(&HBuf16Hash, &HBuf16Ident),
- iEventMap(&HBuf16Hash, &HBuf16Ident),
- iSuiteSetIterator( NULL )
+CHnXmlModelProvider::CHnXmlModelProvider(): iEventMap(&HBuf16Hash, &HBuf16Ident)
{
}
@@ -147,15 +76,9 @@
//
EXPORT_C CHnXmlModelProvider::~CHnXmlModelProvider()
{
- Cancel();
-
- delete iSuiteSetIterator;
delete iCache;
iDomParser.Close();
iDomImpl.Close();
- delete iFileMan;
- iFs.Close();
- iPath.Close();
// clean up eventmap
THashMapIter<HBufC*, TInt> iter(iEventMap);
@@ -164,14 +87,6 @@
delete *ptr;
}
iEventMap.Close();
-
- THashSetIter<HBufC*> iterSuites(iInstSuites);
- while ( iterSuites.Next())
- {
- delete *iterSuites.Current();
- }
- iInstSuites.Close();
-
}
#ifdef _DEBUG
@@ -275,7 +190,8 @@
HBufC8* CHnXmlModelProvider::ReadFileLC(const TDesC& aPath)
{
RFile file;
- User::LeaveIfError( file.Open(iFs, aPath, EFileRead) );
+ User::LeaveIfError( file.Open( CEikonEnv::Static()->FsSession(),
+ aPath, EFileRead) );
CleanupClosePushL( file );
TInt fileSize(0);
@@ -326,25 +242,13 @@
//
// ---------------------------------------------------------------------------
//
-TInt CHnXmlModelProvider::CollectSuiteL(const TDesC& aSuiteName,
- RXmlEngDocument& aXmlDoc)
+TInt CHnXmlModelProvider::CollectSuiteL( RXmlEngDocument& aXmlDoc )
{
- TInt err(KErrNotFound);
- TBuf<KMaxPath> filePath;
- TBuf<KMaxPath> KsuitePath;
- KsuitePath.Zero();
- KsuitePath.Copy(iPath);
- KsuitePath.Append(aSuiteName);
- KsuitePath.Append(Kbackslash);
-
- filePath.Zero();
- filePath.Copy(KsuitePath);
- filePath.Append(KSuiteDefFileName);
-
- RXmlEngDocument suiteDoc;
- CleanupClosePushL(suiteDoc);
-
- suiteDoc = ParseFileL(filePath);
+ TInt err(KErrNotFound);
+ RXmlEngDocument suiteDoc;
+ CleanupClosePushL( suiteDoc );
+ //hardcoded path for suites as there is only foldersuite
+ suiteDoc = ParseFileL( KFolderSuitePath );
// one suite per file
RXmlEngNodeList<TXmlEngElement> elements;
@@ -372,133 +276,86 @@
//
// ---------------------------------------------------------------------------
//
-TBool CHnXmlModelProvider::SuiteExistsL( const TDesC& aSuite )
- {
- TBuf<KMaxPath> filePath;
- TBuf<KMaxPath> KsuitePath;
- KsuitePath.Zero();
- KsuitePath.Copy( iPath );
- KsuitePath.Append( aSuite );
- KsuitePath.Append( Kbackslash );
-
- filePath.Zero();
- filePath.Copy( KsuitePath );
- filePath.Append( KSuiteDefFileName );
-
- return BaflUtils::FileExists( iFs, filePath );
- }
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::CollectItemsL( const TDesC& aSuiteName,
- RXmlEngDocument& aXmlDoc )
+void CHnXmlModelProvider::CollectItemsL( RXmlEngDocument& aXmlDoc )
{
- TBuf<KMaxPath> filePath;
- TBuf<KMaxPath> KsuitePath;
- KsuitePath.Zero();
- KsuitePath.Copy( iPath );
- KsuitePath.Append( aSuiteName );
- KsuitePath.Append( Kbackslash );
- CDir* fileList;
- iFs.GetDir( KsuitePath, KEntryAttMaskSupported, ESortByName, fileList);
- CleanupStack::PushL(fileList);
-
- //for each file with entries definitions
- for( TInt i(0); i<fileList->Count(); i++ )
- {
- TPtrC fileName = (*fileList)[i].iName;
+ RXmlEngDocument itemDoc;
+ CleanupClosePushL( itemDoc );
+ //hardcoded path for items as there is only foldersuite
+ TInt err( KErrNone );
+ TRAP( err , itemDoc = ParseFileL(KFolderItemsPath) );
+ if( !err )
+ {
+ RXmlEngNodeList< TXmlEngElement > children;
+ CleanupClosePushL(children);
+ itemDoc.DocumentElement().GetChildElements(children);
- if(!fileName.Compare(KSuiteDefFileName))
- continue;
-
- filePath.Zero();
- filePath.Copy(KsuitePath);
- filePath.Append(fileName);
-
- RXmlEngDocument itemDoc;
- CleanupClosePushL( itemDoc );
-
- TInt err( KErrNone );
- TRAP( err , itemDoc = ParseFileL(filePath) );
- if( !err )
- {
- RXmlEngNodeList< TXmlEngElement > children;
- CleanupClosePushL(children);
- itemDoc.DocumentElement().GetChildElements(children);
+ TPtrC8 itemGenre =
+ itemDoc.DocumentElement().AttributeNodeL(KGenreName8).Value();
- TPtrC8 itemGenre =
- itemDoc.DocumentElement().AttributeNodeL(KGenreName8).Value();
-
- TInt amount = children.Count();
- for( TInt i(0); i<amount; i++ )
+ TInt amount = children.Count();
+ for( TInt i(0); i<amount; i++ )
+ {
+ TXmlEngElement child = children.Next();
+ TPtrC8 tempChildName = child.Name();
+ // append localizations to root
+ if (!child.Name().Compare(KLocalizationName8))
{
- TXmlEngElement child = children.Next();
- TPtrC8 tempChildName = child.Name();
- // append localizations to root
- if (!child.Name().Compare(KLocalizationName8))
- {
- aXmlDoc.DocumentElement().AsElement().AppendChildL(child);
- child.ReconcileNamespacesL();
- }
- // append itmes to proper suite
- else if (!child.Name().Compare(KItemName8) )
- {
- // go througs item's children to change event names to ids
- ChangeEventsToIdsInChildrenL(child);
-
- // edit_mode item
- RXmlEngNodeList< TXmlEngElement > editModeItems;
- CleanupClosePushL( editModeItems );
- child.GetChildElements( editModeItems );
- TInt count = editModeItems.Count();
- for ( TInt ic( 0 ); ic < count; ic++ )
+ aXmlDoc.DocumentElement().AsElement().AppendChildL(child);
+ child.ReconcileNamespacesL();
+ }
+ // append itmes to proper suite
+ else if (!child.Name().Compare(KItemName8) )
+ {
+ // go througs item's children to change event names to ids
+ ChangeEventsToIdsInChildrenL(child);
+
+ // edit_mode item
+ RXmlEngNodeList< TXmlEngElement > editModeItems;
+ CleanupClosePushL( editModeItems );
+ child.GetChildElements( editModeItems );
+ TInt count = editModeItems.Count();
+ for ( TInt ic( 0 ); ic < count; ic++ )
+ {
+ TXmlEngElement editModeItem = editModeItems.Next();
+ if ( !editModeItem.Name().Compare( KEditModeItem8 ))
{
- TXmlEngElement editModeItem = editModeItems.Next();
- if ( !editModeItem.Name().Compare( KEditModeItem8 ))
- {
- editModeItem.AddNewAttributeL(KSuiteElementName8,
- itemGenre);
- }
- }
- CleanupStack::PopAndDestroy(&editModeItems);
- // edit_mode items - end
+ editModeItem.AddNewAttributeL(KSuiteElementName8,
+ itemGenre);
+ }
+ }
+ CleanupStack::PopAndDestroy(&editModeItems);
+ // edit_mode items - end
- RXmlEngNodeList<TXmlEngElement> suites;
- CleanupClosePushL(suites);
- aXmlDoc.DocumentElement().GetChildElements(suites);
- TInt amountSuites = suites.Count();
- for (TInt i(0); i < amountSuites; i++)
- {
- TXmlEngElement childSuite = suites.Next();
- TPtrC8 tempName = child.Name();
- //find suite
- if (!childSuite.Name().Compare(KTitleName8))
- {
- TPtrC8 suiteGenre = childSuite.AttributeNodeL(
- KGenreName8).Value();
+ RXmlEngNodeList<TXmlEngElement> suites;
+ CleanupClosePushL(suites);
+ aXmlDoc.DocumentElement().GetChildElements(suites);
+ TInt amountSuites = suites.Count();
+ for (TInt i(0); i < amountSuites; i++)
+ {
+ TXmlEngElement childSuite = suites.Next();
+ TPtrC8 tempName = child.Name();
+ //find suite
+ if (!childSuite.Name().Compare(KTitleName8))
+ {
+ TPtrC8 suiteGenre = childSuite.AttributeNodeL(
+ KGenreName8).Value();
- //find proper suite to append item
- if (!suiteGenre.Compare(itemGenre))
- {
- child.AddNewAttributeL(KSuiteElementName8,
- itemGenre);
- childSuite.AppendChildL(child);
- }
+ //find proper suite to append item
+ if (!suiteGenre.Compare(itemGenre))
+ {
+ child.AddNewAttributeL(KSuiteElementName8,
+ itemGenre);
+ childSuite.AppendChildL(child);
}
}
- aXmlDoc.DocumentElement().ReconcileNamespacesL();
- CleanupStack::PopAndDestroy( &suites );
- }
- }
- CleanupStack::PopAndDestroy( &children );
+ }
+ aXmlDoc.DocumentElement().ReconcileNamespacesL();
+ CleanupStack::PopAndDestroy( &suites );
+ }
}
- CleanupStack::PopAndDestroy( &itemDoc );
- }
-
- CleanupStack::PopAndDestroy(fileList);
+ CleanupStack::PopAndDestroy( &children );
+ }
+ CleanupStack::PopAndDestroy( &itemDoc );
}
@@ -672,111 +529,19 @@
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
-//
-TBool CHnXmlModelProvider::SynchronizeSuitesL()
- {
- MMPERF(("CHnXmlModelProvider::SynchronizeSuitesL - START"));
- iSuiteFilesUpdated = EFalse;
- TBool refresh( EFalse );
-
- if (IsActive())
- {
- Cancel();
- }
-
- delete iSuiteSetIterator;
- iSuiteSetIterator = NULL;
-
- iStatus = KRequestPending;
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
-
- MMPERF(("CHnXmlModelProvider::SynchronizeSuitesL - DONE"));
- return refresh;
- }
-
-// ---------------------------------------------------------------------------
//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::ResetCache()
- {
- iCache->Reset();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::SetupSuitePathL()
- {
- iPath.Close();
- iPath.CreateL(KMaxPath);
- User::LeaveIfError(iFs.PrivatePath(iPath));
- TChar drive;
- TBuf<1> driveLetter;
-
- iFs.DriveToChar( EDriveC, drive );
- iPath.Insert(0, KColon );
- driveLetter.Append( drive );
- iPath.Insert(0, driveLetter );
- iPath.Append(KEntriesSuffix);
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::SetupFailSafeSuitePathL()
- {
- iPath.Close();
- iPath.CreateL(KMaxPath);
- User::LeaveIfError(iFs.PrivatePath(iPath));
- TChar drive;
- TBuf<1> driveLetter;
-
- iFs.DriveToChar( EDriveZ, drive );
- iPath.Insert(0, KColon );
- driveLetter.Append( drive );
- iPath.Insert(0, driveLetter );
- iPath.Append(KSuitesDir);
- }
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CHnXmlModelProvider::ReloadModelL()
- {
- SynchronizeSuitesL();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::CreateModelL(const TDesC& aSuiteName,
- RXmlEngDocument& aXmlDoc )
+void CHnXmlModelProvider::CreateModelL( RXmlEngDocument& aXmlDoc )
{
MMPERF( ( "CHnXmlModelProvider::CreateModelL IN") );
MMPERF( ( " Suite name: %S", &aSuiteName ) );
TBool suiteCollected = EFalse;
-
- SetupSuitePathL();
- TRAPD( failSafeErr, suiteCollected = CollectSuiteL( aSuiteName, aXmlDoc ));
- if (failSafeErr)
- {
- SetupFailSafeSuitePathL();
- suiteCollected = CollectSuiteL( aSuiteName, aXmlDoc );
- }
+ suiteCollected = CollectSuiteL( aXmlDoc );
if ( !suiteCollected )
{
MMPERF(("CHnXmlModelProvider::CreateModelL - suite collected"));
- CollectItemsL( aSuiteName, aXmlDoc );
+ CollectItemsL( aXmlDoc );
MMPERF(("CHnXmlModelProvider::CreateModelL - items collected"));
}
MMPERF( ( "CHnXmlModelProvider::CreateModelL OUT") );
@@ -795,7 +560,7 @@
RXmlEngDocument newXmlDoc;
CleanupClosePushL( newXmlDoc );
- CreateModelL( aSuiteName, newXmlDoc );
+ CreateModelL( newXmlDoc );
#ifdef _DEBUG
DEBUG(("_MM_:CHnXmlModelProvider::GetModelL _DEBUG IN"));
@@ -814,68 +579,3 @@
return KErrNone;
}
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::SearchPathForSuitesL( const TDesC& aPath )
- {
- CDir* fileList = NULL;
- iFs.GetDir( aPath, KEntryAttMaskSupported, ESortByName, fileList );
- if ( fileList )
- {
- CleanupStack::PushL( fileList );
- for( TInt i( 0 ); i < fileList->Count(); i++ )
- {
- if ( (*fileList)[ i ].IsDir() )
- {
- HBufC* suiteName = (*fileList)[i].iName.AllocLC();
- if ( !iInstSuites.Find(suiteName) )
- {
- iInstSuites.InsertL( suiteName );
- CleanupStack::Pop(suiteName);
- }
- else
- {
- CleanupStack::PopAndDestroy(suiteName);
- }
- }
- }
- CleanupStack::PopAndDestroy( fileList );
- }
- }
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlModelProvider::CheckDrivesL()
- {
- TDriveList driveList;
- User::LeaveIfError( iFs.DriveList( driveList ) );
-
- TFixedArray< TInt, KMaxDrives > driveSearchOrder( KDriveSearchOrder, KMaxDrives );
- for(TInt iterator(0); iterator < driveSearchOrder.Count(); iterator++ )
- {
- if ( driveList[ driveSearchOrder[ iterator ] ] )
- {
- TBuf<KMaxPath> filePath;
-
- TChar driveLetter;
- User::LeaveIfError( iFs.DriveToChar( driveSearchOrder[ iterator ], driveLetter ) );
-
- TBuf< KSingleChar > driveLetterConst;
- driveLetterConst.Append( driveLetter );
- User::LeaveIfError( iFs.PrivatePath( filePath ) );
- filePath.Insert( 0, driveLetterConst );
- filePath.Insert( 1, KColon );
- filePath.Append( KSuitesDir );
-
- SearchPathForSuitesL( filePath );
- }
- }
-
- SearchPathForSuitesL( iPath );
- }
-
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnxmlsuitefilesreg.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,290 +0,0 @@
-/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-* Version : %version: 9 % << Don't touch! Updated by Synergy at check-out.
-*
-*/
-
-#include <sysutil.h>
-#include "hnxmlsuitefilesreg.h"
-#include "hnglobals.h"
-#include "hnconvutils.h"
-#include "menudebug.h"
-#include "hnhelper.inl"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TBool CHnXmlSuiteFilesReg::SynchronizeL( RFs & aFs, const TDesC &aSuiteName )
- {
- CHnXmlSuiteFilesReg* self = new (ELeave) CHnXmlSuiteFilesReg( aFs );
- CleanupStack::PushL(self);
- self->ConstructL( aSuiteName );
- TBool ret = self->SynchronizeSuiteFilesL();
- CleanupStack::PopAndDestroy( self );
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnXmlSuiteFilesReg::~CHnXmlSuiteFilesReg()
- {
- iSuiteName.Close();
- DestroySuiteFilesMaps();
- delete iFileMan;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CHnXmlSuiteFilesReg::CHnXmlSuiteFilesReg( RFs & aFs ) : iFs(aFs),
- iSuiteFiles(&TDesC16Hash, &TDesC16Ident)
- {
-
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-HBufC* CHnXmlSuiteFilesReg::GetSuiteInstallPathL()
- {
- TBuf<KMaxPath> installPath;
- User::LeaveIfError( iFs.PrivatePath(installPath) );
- TChar drive;
- TBuf<1> driveLetter;
- iFs.DriveToChar( EDriveC, drive );
- installPath.Insert(0, KColon );
- driveLetter.Append( drive );
- installPath.Insert(0, driveLetter );
- installPath.Append(KEntriesSuffix);
- installPath.Append( iSuiteName );
- installPath.Append( Kbackslash );
- return installPath.AllocL();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlSuiteFilesReg::ConstructL( const TDesC &aSuiteName )
- {
- iSuiteName.CreateL( aSuiteName );
- iFileMan = CFileMan::NewL(iFs);
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlSuiteFilesReg::DestroySuiteFilesMaps()
- {
- DestroyMapValue( iSuiteFiles );
- iSuiteFiles.Close();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-HBufC* CHnXmlSuiteFilesReg::GetSuiteImportDirL( TInt aDriveNumber ) const
- {
- TBuf<KMaxPath> outputDir;
-
- TChar driveLetter;
- User::LeaveIfError( iFs.DriveToChar( aDriveNumber, driveLetter ) );
-
- TBuf< KSingleChar > driveLetterConst;
- driveLetterConst.Append( driveLetter );
-
- User::LeaveIfError( iFs.PrivatePath( outputDir ) );
-
- outputDir.Insert( 0, driveLetterConst );
- outputDir.Insert( 1, KColon );
- outputDir.Append( KSuitesDir );
- outputDir.Append( iSuiteName );
- outputDir.Append( Kbackslash );
-
- return outputDir.AllocL();
- }
-
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlSuiteFilesReg::SearchDrivesForSuiteFilesL()
- {
- DestroySuiteFilesMaps();
-
- TDriveList driveList;
- User::LeaveIfError( iFs.DriveList( driveList ) );
- TFixedArray< TInt, KMaxDrives > driveSearchOrder( KDriveSearchOrder, KMaxDrives );
-
- for(TInt iterator(0); iterator < driveSearchOrder.Count(); iterator++ )
- {
- if ( driveList[ driveSearchOrder[ iterator ] ] )
- {
- RBuf filePath( GetSuiteImportDirL( driveSearchOrder[ iterator ] ) );
- CleanupClosePushL( filePath );
- SearchDirForSuiteFilesL(filePath);
- CleanupStack::PopAndDestroy( &filePath );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlSuiteFilesReg::SearchDirForSuiteFilesL( const TDesC& aSuitePath )
- {
- CDir* fileList = NULL;
- if (!iFs.GetDir( aSuitePath, KEntryAttMaskSupported, ESortByName, fileList ))
- {
- CleanupStack::PushL( fileList );
- for( TInt i( 0 ); i < fileList->Count(); i++ )
- {
- if (! (*fileList)[i].IsDir() )
- {
- AddSuiteFileToMapL( aSuitePath, (*fileList)[i] );
- }
- }
- CleanupStack::PopAndDestroy( fileList );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnXmlSuiteFilesReg::AddSuiteFileToMapL( const TDesC& aDir, const TEntry& aFile )
- {
- THnFileInfo fileInfo = { aFile.iName, aDir, aFile.iModified, aFile.iSize };
- fileInfo.iFilePath.Append( aFile.iName );
-
- THnFileInfo** existingFileInfo = iSuiteFiles.Find( &aFile.iName );
-
- TInt newFileDrive( KErrNotFound );
- iFs.CharToDrive( fileInfo.iFilePath[0], newFileDrive );
-
- TBool newerThanExisting( EFalse );
- TInt existingFileDrive( KErrNotFound );
- if ( existingFileInfo )
- {
- iFs.CharToDrive( (*existingFileInfo)->iFilePath[0], existingFileDrive);
- newerThanExisting =
- (*existingFileInfo)->iLastModified < fileInfo.iLastModified &&
- newFileDrive != EDriveZ;
- }
-
- if ( !existingFileInfo || newerThanExisting || existingFileDrive == EDriveZ )
- {
- if( existingFileInfo )
- {
- iSuiteFiles.Remove( &aFile.iName );
- }
- THnFileInfo* fileInfoPointer = new (ELeave) THnFileInfo( fileInfo );
- iSuiteFiles.InsertL( &fileInfo.iFileName, fileInfoPointer );
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHnXmlSuiteFilesReg::CalculateCurrentSuiteSizeL()
- {
- RBuf suiteInstallDir( GetSuiteInstallPathL() );
- CleanupClosePushL( suiteInstallDir );
- CDir* suiteFileList;
- iFs.GetDir( suiteInstallDir, KEntryAttMaskSupported, ESortByName, suiteFileList);
- CleanupStack::PushL(suiteFileList);
-
- TInt suiteSize(0);
- for( TInt i(0); suiteFileList && i< suiteFileList->Count(); i++ )
- {
- suiteSize+= (*suiteFileList)[i].iSize;
- }
- CleanupStack::PopAndDestroy( suiteFileList );
- CleanupStack::PopAndDestroy( &suiteInstallDir );
- return suiteSize;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHnXmlSuiteFilesReg::CalculateSynchronizationSuiteSize()
- {
- TInt retSize( 0 );
-
- THashMapIter< const TDesC*, THnFileInfo* > iter( iSuiteFiles );
-
- while ( iter.NextKey() )
- {
- const THnFileInfo& fileInfo = **(iter.CurrentValue());
- retSize += fileInfo.iSize;
- }
-
- return retSize;
- }
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TBool CHnXmlSuiteFilesReg::SynchronizeSuiteFilesL()
- {
- TBool ret( EFalse );
- SearchDrivesForSuiteFilesL();
-
- TInt spaceNeeded = CalculateSynchronizationSuiteSize() -
- CalculateCurrentSuiteSizeL();
-
- RBuf suiteInstallationDir( GetSuiteInstallPathL() );
- CleanupClosePushL( suiteInstallationDir );
- iFileMan->RmDir( suiteInstallationDir );
- if( iSuiteFiles.Count() && ( spaceNeeded < 0 || !SysUtil::DiskSpaceBelowCriticalLevelL(
- &iFs, spaceNeeded , EDriveC ) ) )
- {
- THashMapIter< const TDesC*, THnFileInfo* > iter( iSuiteFiles );
- iFs.MkDirAll( suiteInstallationDir );
- while( iter.NextKey() )
- {
- const THnFileInfo& fileInfo = **(iter.CurrentValue());
- TBuf<KMaxPath> filePath( suiteInstallationDir );
- filePath.Append( fileInfo.iFileName );
- if( filePath.Compare( fileInfo.iFilePath ) )
- {
- if( BaflUtils::FileExists( iFs, filePath ) )
- {
- iFs.SetAtt( filePath, NULL, KEntryAttReadOnly );
- iFs.Delete( filePath );
- }
- iFileMan->Copy(
- fileInfo.iFilePath,
- filePath, CFileMan::EOverWrite );
- ret = ETrue;
- }
- }
- }
- CleanupStack::PopAndDestroy( &suiteInstallationDir );
- return ret;
- }
--- a/menufw/hierarchynavigator/hnpresentationmodel/bwins/hnpresentationmodelu.def Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/bwins/hnpresentationmodelu.def Wed Jun 09 09:29:04 2010 +0300
@@ -8,69 +8,69 @@
?SetDimmed@CHnButtonModel@@QAEXH@Z @ 7 NONAME ; void CHnButtonModel::SetDimmed(int)
?GetModelItemCount@CHnItemsOrder@@QAEHXZ @ 8 NONAME ; int CHnItemsOrder::GetModelItemCount(void)
?SetEmptyTextL@CHnSuiteModel@@QAEXABVTDesC16@@@Z @ 9 NONAME ; void CHnSuiteModel::SetEmptyTextL(class TDesC16 const &)
- ?IsActive@CHnSuiteModel@@QAEHXZ @ 10 NONAME ; int CHnSuiteModel::IsActive(void)
- ?Get@CHnSuitesStack@@QAEPAVCHnSuiteModel@@H@Z @ 11 NONAME ; class CHnSuiteModel * CHnSuitesStack::Get(int)
- ?SetActiveL@CHnSuiteModel@@QAEXH@Z @ 12 NONAME ; void CHnSuiteModel::SetActiveL(int)
- ?IsItemMoveLocked@CHnSuiteModel@@QAEHH@Z @ 13 NONAME ; int CHnSuiteModel::IsItemMoveLocked(int)
- ?NewL@CHnAttributeImage@@SAPAV1@XZ @ 14 NONAME ; class CHnAttributeImage * CHnAttributeImage::NewL(void)
- ?CommandName@CHnActionModel@@QBEABVTDesC8@@XZ @ 15 NONAME ; class TDesC8 const & CHnActionModel::CommandName(void) const
- ?SetServiceL@CHnActionModel@@QAEXABVTDesC8@@@Z @ 16 NONAME ; void CHnActionModel::SetServiceL(class TDesC8 const &)
- ?SetBitmap@CHnAttributeImage@@QAEXPAVTLiwVariant@@@Z @ 17 NONAME ; void CHnAttributeImage::SetBitmap(class TLiwVariant *)
- ?SetTemplateL@CHnSuiteModel@@QAEXABVTDesC8@@@Z @ 18 NONAME ; void CHnSuiteModel::SetTemplateL(class TDesC8 const &)
- ?UpdateItemTemplateL@CHnSuiteModel@@QAEXH@Z @ 19 NONAME ; void CHnSuiteModel::UpdateItemTemplateL(int)
- ?SuiteEvaluated@CHnItemsOrder@@QAEXXZ @ 20 NONAME ; void CHnItemsOrder::SuiteEvaluated(void)
- ?Name@CHnAttributeBase@@QBEABVTDesC8@@XZ @ 21 NONAME ; class TDesC8 const & CHnAttributeBase::Name(void) const
- ?SetCustomId@CHnItemModel@@QAEX_J@Z @ 22 NONAME ; void CHnItemModel::SetCustomId(long long)
- ?CustomId@CHnItemModel@@QAE_JXZ @ 23 NONAME ; long long CHnItemModel::CustomId(void)
- ??1CHnSuiteModel@@UAE@XZ @ 24 NONAME ; CHnSuiteModel::~CHnSuiteModel(void)
- ?GetActions@CHnItemModel@@QAEPAV?$CArrayPtr@VCHnActionModel@@@@H@Z @ 25 NONAME ; class CArrayPtr<class CHnActionModel> * CHnItemModel::GetActions(int)
- ?SetGulIcon@CHnIconHolder@@QAEXPAVCGulIcon@@@Z @ 26 NONAME ; void CHnIconHolder::SetGulIcon(class CGulIcon *)
- ?SetValueL@CHnAttributeText@@QAEXABVTDesC8@@@Z @ 27 NONAME ; void CHnAttributeText::SetValueL(class TDesC8 const &)
- ?GetItemIdAt@CHnItemsOrder@@QAEHHH@Z @ 28 NONAME ; int CHnItemsOrder::GetItemIdAt(int, int)
- ?ClearAttributesL@CHnItemModel@@QAEXXZ @ 29 NONAME ; void CHnItemModel::ClearAttributesL(void)
- ?NewLC@CHnAttrImgProvFileImage@@SAPAV1@ABVTDesC16@@@Z @ 30 NONAME ; class CHnAttrImgProvFileImage * CHnAttrImgProvFileImage::NewLC(class TDesC16 const &)
- ?ExitMode@CHnSuiteModel@@QAE?AW4TExitMode@@XZ @ 31 NONAME ; enum TExitMode CHnSuiteModel::ExitMode(void)
- ?ServiceMode@CHnActionModel@@QBE?AW4TServiceMode@@XZ @ 32 NONAME ; enum TServiceMode CHnActionModel::ServiceMode(void) const
- ?GetIcon@CHnButtonModel@@QBEPAVCGulIcon@@XZ @ 33 NONAME ; class CGulIcon * CHnButtonModel::GetIcon(void) const
- ?GetSuiteHighlight@CHnSuiteModel@@QAEHXZ @ 34 NONAME ; int CHnSuiteModel::GetSuiteHighlight(void)
- ?PopSuiteModelL@CHnSuiteModelContainer@@QAEPAVCHnSuiteModel@@ABVTDesC16@@@Z @ 35 NONAME ; class CHnSuiteModel * CHnSuiteModelContainer::PopSuiteModelL(class TDesC16 const &)
- ?NewL@CHnSuiteModelContainer@@SAPAV1@AAVMHnMdModelEventObserver@@AAVMHnControllerInterface@@@Z @ 36 NONAME ; class CHnSuiteModelContainer * CHnSuiteModelContainer::NewL(class MHnMdModelEventObserver &, class MHnControllerInterface &)
- ?CommandLC@CHnActionModel@@QBEPAVCLiwGenericParamList@@XZ @ 37 NONAME ; class CLiwGenericParamList * CHnActionModel::CommandLC(void) const
- ?InsertItemIdToL@CHnItemsOrder@@QAEXHHH@Z @ 38 NONAME ; void CHnItemsOrder::InsertItemIdToL(int, int, int)
- ?SetBitmapId@CHnAttributeImage@@QAEXH@Z @ 39 NONAME ; void CHnAttributeImage::SetBitmapId(int)
- ?RefreshMulModelL@CHnSuiteModel@@QAEXH@Z @ 40 NONAME ; void CHnSuiteModel::RefreshMulModelL(int)
- ?UnregisterSuiteObserver@CHnSuiteModel@@QAEXPAVMHnSuiteObserver@@@Z @ 41 NONAME ; void CHnSuiteModel::UnregisterSuiteObserver(class MHnSuiteObserver *)
- ?SetApplicationUid@CHnAttributeImage@@QAEXVTUid@@@Z @ 42 NONAME ; void CHnAttributeImage::SetApplicationUid(class TUid)
- ?GetGulIcon@CHnIconHolder@@QBEPAVCGulIcon@@XZ @ 43 NONAME ; class CGulIcon * CHnIconHolder::GetGulIcon(void) const
- ?Command@CHnMenuItemModel@@QAEHXZ @ 44 NONAME ; int CHnMenuItemModel::Command(void)
- ?GetButton@CHnToolbarModel@@QBEPBVCHnButtonModel@@H@Z @ 45 NONAME ; class CHnButtonModel const * CHnToolbarModel::GetButton(int) const
- ?SetNameL@CHnAttributeBase@@QAEXABVTDesC8@@@Z @ 46 NONAME ; void CHnAttributeBase::SetNameL(class TDesC8 const &)
- ?GetSuiteModel@CHnSuiteModelContainer@@QAEPAVCHnSuiteModel@@ABVTDesC16@@@Z @ 47 NONAME ; class CHnSuiteModel * CHnSuiteModelContainer::GetSuiteModel(class TDesC16 const &)
- ?SetFileNameSrc@CHnAttributeImage@@QAEXPAVHBufC16@@@Z @ 48 NONAME ; void CHnAttributeImage::SetFileNameSrc(class HBufC16 *)
- ?PushL@CHnSuitesStack@@QAEHPAVCHnSuiteModel@@@Z @ 49 NONAME ; int CHnSuitesStack::PushL(class CHnSuiteModel *)
- ?OfferHnEventL@CHnSuiteModelContainer@@QAEHHHPAVCLiwGenericParamList@@@Z @ 50 NONAME ; int CHnSuiteModelContainer::OfferHnEventL(int, int, class CLiwGenericParamList *)
- ?RemoveLiwObjects@CHnSuiteModelContainer@@QAEXXZ @ 51 NONAME ; void CHnSuiteModelContainer::RemoveLiwObjects(void)
- ?HasButtons@CHnToolbarModel@@QBEHXZ @ 52 NONAME ; int CHnToolbarModel::HasButtons(void) const
- ?GetItemUid@CHnItemModel@@QAE?AVTUid@@XZ @ 53 NONAME ; class TUid CHnItemModel::GetItemUid(void)
- ?AddItemL@CHnSuiteModel@@QAEXHPAVCHnItemModel@@HH@Z @ 54 NONAME ; void CHnSuiteModel::AddItemL(int, class CHnItemModel *, int, int)
- ?GetDimmed@CHnButtonModel@@QBEHXZ @ 55 NONAME ; int CHnButtonModel::GetDimmed(void) const
- ?GetItemsOrder@CHnSuiteModel@@QAEPAVCHnItemsOrder@@XZ @ 56 NONAME ; class CHnItemsOrder * CHnSuiteModel::GetItemsOrder(void)
- ?PushNewSuiteModelL@CHnSuiteModelContainer@@QAEXABVTDesC16@@@Z @ 57 NONAME ; void CHnSuiteModelContainer::PushNewSuiteModelL(class TDesC16 const &)
- ?Interface@CHnActionModel@@QBEABVTDesC8@@XZ @ 58 NONAME ; class TDesC8 const & CHnActionModel::Interface(void) const
- ?GetAttribute@CHnItemModel@@QAEPAVCHnAttributeBase@@ABVTDesC8@@@Z @ 59 NONAME ; class CHnAttributeBase * CHnItemModel::GetAttribute(class TDesC8 const &)
- ?SetInterfaceL@CHnActionModel@@QAEXABVTDesC8@@@Z @ 60 NONAME ; void CHnActionModel::SetInterfaceL(class TDesC8 const &)
- ?HasNext@CHnMenuItemModel@@UAEHXZ @ 61 NONAME ; int CHnMenuItemModel::HasNext(void)
- ?Type@CHnAttributeBase@@QAE?AW4TAttributeType@@XZ @ 62 NONAME ; enum TAttributeType CHnAttributeBase::Type(void)
- ?RegisterSuiteObserverL@CHnSuiteModel@@QAEXPAVMHnSuiteObserver@@W4TThreadPriority@@@Z @ 63 NONAME ; void CHnSuiteModel::RegisterSuiteObserverL(class MHnSuiteObserver *, enum TThreadPriority)
- ?GetItemModelsCount@CHnSuiteModel@@QAEHXZ @ 64 NONAME ; int CHnSuiteModel::GetItemModelsCount(void)
- ?SetToolbarModel@CHnItemModel@@QAEXPAVCHnToolbarModel@@@Z @ 65 NONAME ; void CHnItemModel::SetToolbarModel(class CHnToolbarModel *)
- ?SetServiceModeL@CHnActionModel@@QAEXW4TServiceMode@@@Z @ 66 NONAME ; void CHnActionModel::SetServiceModeL(enum TServiceMode)
- ?SetMenuItemModel@CHnItemModel@@QAEXPAVCHnMenuItemModel@@@Z @ 67 NONAME ; void CHnItemModel::SetMenuItemModel(class CHnMenuItemModel *)
- ?SetHelpTextL@CHnButtonModel@@QAEXABVTDesC16@@@Z @ 68 NONAME ; void CHnButtonModel::SetHelpTextL(class TDesC16 const &)
- ?NewLC@CHnButtonModel@@SAPAV1@H@Z @ 69 NONAME ; class CHnButtonModel * CHnButtonModel::NewLC(int)
- ??ACHnItemsOrder@@QAEHH@Z @ 70 NONAME ; int CHnItemsOrder::operator[](int)
+ ?Get@CHnSuitesStack@@QAEPAVCHnSuiteModel@@H@Z @ 10 NONAME ; class CHnSuiteModel * CHnSuitesStack::Get(int)
+ ?IsItemMoveLocked@CHnSuiteModel@@QAEHH@Z @ 11 NONAME ; int CHnSuiteModel::IsItemMoveLocked(int)
+ ?NewL@CHnAttributeImage@@SAPAV1@XZ @ 12 NONAME ; class CHnAttributeImage * CHnAttributeImage::NewL(void)
+ ?CommandName@CHnActionModel@@QBEABVTDesC8@@XZ @ 13 NONAME ; class TDesC8 const & CHnActionModel::CommandName(void) const
+ ?SetServiceL@CHnActionModel@@QAEXABVTDesC8@@@Z @ 14 NONAME ; void CHnActionModel::SetServiceL(class TDesC8 const &)
+ ?SetBitmap@CHnAttributeImage@@QAEXPAVTLiwVariant@@@Z @ 15 NONAME ; void CHnAttributeImage::SetBitmap(class TLiwVariant *)
+ ?SetTemplateL@CHnSuiteModel@@QAEXABVTDesC8@@@Z @ 16 NONAME ; void CHnSuiteModel::SetTemplateL(class TDesC8 const &)
+ ?UpdateItemTemplateL@CHnSuiteModel@@QAEXH@Z @ 17 NONAME ; void CHnSuiteModel::UpdateItemTemplateL(int)
+ ?SuiteEvaluated@CHnItemsOrder@@QAEXXZ @ 18 NONAME ; void CHnItemsOrder::SuiteEvaluated(void)
+ ?Name@CHnAttributeBase@@QBEABVTDesC8@@XZ @ 19 NONAME ; class TDesC8 const & CHnAttributeBase::Name(void) const
+ ?SetCustomId@CHnItemModel@@QAEX_J@Z @ 20 NONAME ; void CHnItemModel::SetCustomId(long long)
+ ?CustomId@CHnItemModel@@QAE_JXZ @ 21 NONAME ; long long CHnItemModel::CustomId(void)
+ ??1CHnSuiteModel@@UAE@XZ @ 22 NONAME ; CHnSuiteModel::~CHnSuiteModel(void)
+ ?GetActions@CHnItemModel@@QAEPAV?$CArrayPtr@VCHnActionModel@@@@H@Z @ 23 NONAME ; class CArrayPtr<class CHnActionModel> * CHnItemModel::GetActions(int)
+ ?SetGulIcon@CHnIconHolder@@QAEXPAVCGulIcon@@@Z @ 24 NONAME ; void CHnIconHolder::SetGulIcon(class CGulIcon *)
+ ?SetValueL@CHnAttributeText@@QAEXABVTDesC8@@@Z @ 25 NONAME ; void CHnAttributeText::SetValueL(class TDesC8 const &)
+ ?GetItemIdAt@CHnItemsOrder@@QAEHHH@Z @ 26 NONAME ; int CHnItemsOrder::GetItemIdAt(int, int)
+ ?ClearAttributesL@CHnItemModel@@QAEXXZ @ 27 NONAME ; void CHnItemModel::ClearAttributesL(void)
+ ?NewLC@CHnAttrImgProvFileImage@@SAPAV1@ABVTDesC16@@@Z @ 28 NONAME ; class CHnAttrImgProvFileImage * CHnAttrImgProvFileImage::NewLC(class TDesC16 const &)
+ ?ExitMode@CHnSuiteModel@@QAE?AW4TExitMode@@XZ @ 29 NONAME ; enum TExitMode CHnSuiteModel::ExitMode(void)
+ ?ServiceMode@CHnActionModel@@QBE?AW4TServiceMode@@XZ @ 30 NONAME ; enum TServiceMode CHnActionModel::ServiceMode(void) const
+ ?GetIcon@CHnButtonModel@@QBEPAVCGulIcon@@XZ @ 31 NONAME ; class CGulIcon * CHnButtonModel::GetIcon(void) const
+ ?GetSuiteHighlight@CHnSuiteModel@@QAEHXZ @ 32 NONAME ; int CHnSuiteModel::GetSuiteHighlight(void)
+ ?PopSuiteModelL@CHnSuiteModelContainer@@QAEPAVCHnSuiteModel@@ABVTDesC16@@@Z @ 33 NONAME ; class CHnSuiteModel * CHnSuiteModelContainer::PopSuiteModelL(class TDesC16 const &)
+ ?NewL@CHnSuiteModelContainer@@SAPAV1@AAVMHnMdModelEventObserver@@AAVMHnControllerInterface@@@Z @ 34 NONAME ; class CHnSuiteModelContainer * CHnSuiteModelContainer::NewL(class MHnMdModelEventObserver &, class MHnControllerInterface &)
+ ?CommandLC@CHnActionModel@@QBEPAVCLiwGenericParamList@@XZ @ 35 NONAME ; class CLiwGenericParamList * CHnActionModel::CommandLC(void) const
+ ?InsertItemIdToL@CHnItemsOrder@@QAEXHHH@Z @ 36 NONAME ; void CHnItemsOrder::InsertItemIdToL(int, int, int)
+ ?SetBitmapId@CHnAttributeImage@@QAEXH@Z @ 37 NONAME ; void CHnAttributeImage::SetBitmapId(int)
+ ?RefreshMulModelL@CHnSuiteModel@@QAEXH@Z @ 38 NONAME ; void CHnSuiteModel::RefreshMulModelL(int)
+ ?UnregisterSuiteObserver@CHnSuiteModel@@QAEXPAVMHnSuiteObserver@@@Z @ 39 NONAME ; void CHnSuiteModel::UnregisterSuiteObserver(class MHnSuiteObserver *)
+ ?SetApplicationUid@CHnAttributeImage@@QAEXVTUid@@@Z @ 40 NONAME ; void CHnAttributeImage::SetApplicationUid(class TUid)
+ ?GetGulIcon@CHnIconHolder@@QBEPAVCGulIcon@@XZ @ 41 NONAME ; class CGulIcon * CHnIconHolder::GetGulIcon(void) const
+ ?Command@CHnMenuItemModel@@QAEHXZ @ 42 NONAME ; int CHnMenuItemModel::Command(void)
+ ?GetButton@CHnToolbarModel@@QBEPBVCHnButtonModel@@H@Z @ 43 NONAME ; class CHnButtonModel const * CHnToolbarModel::GetButton(int) const
+ ?SetNameL@CHnAttributeBase@@QAEXABVTDesC8@@@Z @ 44 NONAME ; void CHnAttributeBase::SetNameL(class TDesC8 const &)
+ ?GetSuiteModel@CHnSuiteModelContainer@@QAEPAVCHnSuiteModel@@ABVTDesC16@@@Z @ 45 NONAME ; class CHnSuiteModel * CHnSuiteModelContainer::GetSuiteModel(class TDesC16 const &)
+ ?SetFileNameSrc@CHnAttributeImage@@QAEXPAVHBufC16@@@Z @ 46 NONAME ; void CHnAttributeImage::SetFileNameSrc(class HBufC16 *)
+ ?PushL@CHnSuitesStack@@QAEHPAVCHnSuiteModel@@@Z @ 47 NONAME ; int CHnSuitesStack::PushL(class CHnSuiteModel *)
+ ?OfferHnEventL@CHnSuiteModelContainer@@QAEHHHPAVCLiwGenericParamList@@@Z @ 48 NONAME ; int CHnSuiteModelContainer::OfferHnEventL(int, int, class CLiwGenericParamList *)
+ ?RemoveLiwObjects@CHnSuiteModelContainer@@QAEXXZ @ 49 NONAME ; void CHnSuiteModelContainer::RemoveLiwObjects(void)
+ ?HasButtons@CHnToolbarModel@@QBEHXZ @ 50 NONAME ; int CHnToolbarModel::HasButtons(void) const
+ ?GetItemUid@CHnItemModel@@QAE?AVTUid@@XZ @ 51 NONAME ; class TUid CHnItemModel::GetItemUid(void)
+ ?AddItemL@CHnSuiteModel@@QAEXHPAVCHnItemModel@@HH@Z @ 52 NONAME ; void CHnSuiteModel::AddItemL(int, class CHnItemModel *, int, int)
+ ?GetDimmed@CHnButtonModel@@QBEHXZ @ 53 NONAME ; int CHnButtonModel::GetDimmed(void) const
+ ?GetItemsOrder@CHnSuiteModel@@QAEPAVCHnItemsOrder@@XZ @ 54 NONAME ; class CHnItemsOrder * CHnSuiteModel::GetItemsOrder(void)
+ ?PushNewSuiteModelL@CHnSuiteModelContainer@@QAEXABVTDesC16@@@Z @ 55 NONAME ; void CHnSuiteModelContainer::PushNewSuiteModelL(class TDesC16 const &)
+ ?Interface@CHnActionModel@@QBEABVTDesC8@@XZ @ 56 NONAME ; class TDesC8 const & CHnActionModel::Interface(void) const
+ ?GetAttribute@CHnItemModel@@QAEPAVCHnAttributeBase@@ABVTDesC8@@@Z @ 57 NONAME ; class CHnAttributeBase * CHnItemModel::GetAttribute(class TDesC8 const &)
+ ?GetNextSpecific@CHnMenuItemModel@@UAEPAV1@XZ @ 58 NONAME ; class CHnMenuItemModel * CHnMenuItemModel::GetNextSpecific(void)
+ ?SetInterfaceL@CHnActionModel@@QAEXABVTDesC8@@@Z @ 59 NONAME ; void CHnActionModel::SetInterfaceL(class TDesC8 const &)
+ ?HasNext@CHnMenuItemModel@@UAEHXZ @ 60 NONAME ; int CHnMenuItemModel::HasNext(void)
+ ?Type@CHnAttributeBase@@QAE?AW4TAttributeType@@XZ @ 61 NONAME ; enum TAttributeType CHnAttributeBase::Type(void)
+ ?RegisterSuiteObserverL@CHnSuiteModel@@QAEXPAVMHnSuiteObserver@@W4TThreadPriority@@@Z @ 62 NONAME ; void CHnSuiteModel::RegisterSuiteObserverL(class MHnSuiteObserver *, enum TThreadPriority)
+ ?GetItemModelsCount@CHnSuiteModel@@QAEHXZ @ 63 NONAME ; int CHnSuiteModel::GetItemModelsCount(void)
+ ?SetToolbarModel@CHnItemModel@@QAEXPAVCHnToolbarModel@@@Z @ 64 NONAME ; void CHnItemModel::SetToolbarModel(class CHnToolbarModel *)
+ ?SetServiceModeL@CHnActionModel@@QAEXW4TServiceMode@@@Z @ 65 NONAME ; void CHnActionModel::SetServiceModeL(enum TServiceMode)
+ ?SetMenuItemModel@CHnItemModel@@QAEXPAVCHnMenuItemModel@@@Z @ 66 NONAME ; void CHnItemModel::SetMenuItemModel(class CHnMenuItemModel *)
+ ?SetHelpTextL@CHnButtonModel@@QAEXABVTDesC16@@@Z @ 67 NONAME ; void CHnButtonModel::SetHelpTextL(class TDesC16 const &)
+ ?NewLC@CHnButtonModel@@SAPAV1@H@Z @ 68 NONAME ; class CHnButtonModel * CHnButtonModel::NewLC(int)
+ ??ACHnItemsOrder@@QAEHH@Z @ 69 NONAME ; int CHnItemsOrder::operator[](int)
+ ?GetToolbarModel@CHnItemModel@@QBEPBVCHnToolbarModel@@XZ @ 70 NONAME ; class CHnToolbarModel const * CHnItemModel::GetToolbarModel(void) const
?ClearFlags@CHnItemModel@@QAEXXZ @ 71 NONAME ; void CHnItemModel::ClearFlags(void)
- ?GetToolbarModel@CHnItemModel@@QBEPBVCHnToolbarModel@@XZ @ 72 NONAME ; class CHnToolbarModel const * CHnItemModel::GetToolbarModel(void) const
+ ?SetMenuItemType@CHnMenuItemModel@@QAEXW4THnMenuItemType@1@@Z @ 72 NONAME ; void CHnMenuItemModel::SetMenuItemType(enum CHnMenuItemModel::THnMenuItemType)
?GetActions@CHnSuiteModel@@QAEPAV?$CArrayPtr@VCHnActionModel@@@@H@Z @ 73 NONAME ; class CArrayPtr<class CHnActionModel> * CHnSuiteModel::GetActions(int)
?WidgetType@CHnSuiteModel@@QBEHXZ @ 74 NONAME ; int CHnSuiteModel::WidgetType(void) const
?Reset@CHnMenuItemModel@@UAEXXZ @ 75 NONAME ; void CHnMenuItemModel::Reset(void)
@@ -137,52 +137,49 @@
?SetMifFile@CHnAttributeImage@@QAEXPAVHBufC16@@@Z @ 136 NONAME ; void CHnAttributeImage::SetMifFile(class HBufC16 *)
?GetSuiteModelCount@CHnSuiteModelContainer@@QBEHXZ @ 137 NONAME ; int CHnSuiteModelContainer::GetSuiteModelCount(void) const
?HasToolbar@CHnSuiteModel@@QBEHXZ @ 138 NONAME ; int CHnSuiteModel::HasToolbar(void) const
- ?SetAttributeL@CHnItemModel@@QAEXPAVCHnAttributeBase@@@Z @ 139 NONAME ; void CHnItemModel::SetAttributeL(class CHnAttributeBase *)
- ?SetEventId@CHnButtonModel@@QAEXH@Z @ 140 NONAME ; void CHnButtonModel::SetEventId(int)
- ?GetLastSuiteModel@CHnSuiteModelContainer@@QAEPAVCHnSuiteModel@@XZ @ 141 NONAME ; class CHnSuiteModel * CHnSuiteModelContainer::GetLastSuiteModel(void)
- ?NewL@CHnAttrImgProvSvgImage@@SAPAV1@ABVTDesC16@@@Z @ 142 NONAME ; class CHnAttrImgProvSvgImage * CHnAttrImgProvSvgImage::NewL(class TDesC16 const &)
- ?RemoveItemL@CHnSuiteModel@@QAEXH@Z @ 143 NONAME ; void CHnSuiteModel::RemoveItemL(int)
- ?GetTemplate@CHnItemModel@@QAEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CHnItemModel::GetTemplate(void)
- ?SetMaskId@CHnAttributeImage@@QAEXH@Z @ 145 NONAME ; void CHnAttributeImage::SetMaskId(int)
- ?GetActions@CHnSuiteModel@@QAEAAV?$RHashMap@HPAV?$CArrayPtr@VCHnActionModel@@@@@@XZ @ 146 NONAME ; class RHashMap<int, class CArrayPtr<class CHnActionModel> *> & CHnSuiteModel::GetActions(void)
- ?GetItemType@CHnItemModel@@QAE?AW4TMcsItemType@@XZ @ 147 NONAME ; enum TMcsItemType CHnItemModel::GetItemType(void)
- ?GetButtonText@CHnButtonModel@@QBEABVTDesC16@@XZ @ 148 NONAME ; class TDesC16 const & CHnButtonModel::GetButtonText(void) const
- ?NewL@CHnAttributeText@@SAPAV1@XZ @ 149 NONAME ; class CHnAttributeText * CHnAttributeText::NewL(void)
- ?GetNext@CHnMenuItemModel@@UAEPAV1@XZ @ 150 NONAME ; class CHnMenuItemModel * CHnMenuItemModel::GetNext(void)
- ?DefineModelItemCountL@CHnItemsOrder@@QAEXH@Z @ 151 NONAME ; void CHnItemsOrder::DefineModelItemCountL(int)
- ?SuiteEvaluationFinishedL@CHnSuiteModel@@QAEHXZ @ 152 NONAME ; int CHnSuiteModel::SuiteEvaluationFinishedL(void)
- ?ItemEvaluationFinishedL@CHnSuiteModel@@QAEHH@Z @ 153 NONAME ; int CHnSuiteModel::ItemEvaluationFinishedL(int)
- ?NewL@CHnMenuItemModel@@SAPAV1@ABVTDesC16@@@Z @ 154 NONAME ; class CHnMenuItemModel * CHnMenuItemModel::NewL(class TDesC16 const &)
- ?ReorderItemsL@CHnSuiteModel@@QAEHHH@Z @ 155 NONAME ; int CHnSuiteModel::ReorderItemsL(int, int)
- ?GetIdsForL@CHnItemsOrder@@QAEXHAAV?$RArray@H@@@Z @ 156 NONAME ; void CHnItemsOrder::GetIdsForL(int, class RArray<int> &)
- ?NewLC@CHnAttrImgProvThemeMif@@SAPAV1@VTAknsItemID@@ABVTDesC16@@HH@Z @ 157 NONAME ; class CHnAttrImgProvThemeMif * CHnAttrImgProvThemeMif::NewLC(class TAknsItemID, class TDesC16 const &, int, int)
- ?SetWidgetType@CHnSuiteModel@@QAEXW4THnSuiteWidgetType@@@Z @ 158 NONAME ; void CHnSuiteModel::SetWidgetType(enum THnSuiteWidgetType)
- ?NotifyObserversL@CHnSuiteModel@@QAEXW4THnCustomSuiteEvent@@@Z @ 159 NONAME ; void CHnSuiteModel::NotifyObserversL(enum THnCustomSuiteEvent)
- ?DeleteAllActionModels@CHnItemModel@@QAEXXZ @ 160 NONAME ; void CHnItemModel::DeleteAllActionModels(void)
- ?SetSuiteHighlightL@CHnSuiteModel@@QAEXH@Z @ 161 NONAME ; void CHnSuiteModel::SetSuiteHighlightL(int)
- ?SetCustomId@CHnSuiteModel@@QAEX_J@Z @ 162 NONAME ; void CHnSuiteModel::SetCustomId(long long)
- ?SetCommandNameL@CHnActionModel@@QAEXABVTDesC8@@@Z @ 163 NONAME ; void CHnActionModel::SetCommandNameL(class TDesC8 const &)
- ?NewLC@CHnItemsOrder@@SAPAV1@XZ @ 164 NONAME ; class CHnItemsOrder * CHnItemsOrder::NewLC(void)
- ?SetCommand@CHnActionModel@@QAEXPAVCHnMdBaseKey@@@Z @ 165 NONAME ; void CHnActionModel::SetCommand(class CHnMdBaseKey *)
- ?NewL@CHnAttrImgProvAppImage@@SAPAV1@VTUid@@@Z @ 166 NONAME ; class CHnAttrImgProvAppImage * CHnAttrImgProvAppImage::NewL(class TUid)
- ?NewLC@CHnAttributeText@@SAPAV1@XZ @ 167 NONAME ; class CHnAttributeText * CHnAttributeText::NewLC(void)
- ?NewLC@CHnSuiteModelContainer@@SAPAV1@AAVMHnMdModelEventObserver@@AAVMHnControllerInterface@@@Z @ 168 NONAME ; class CHnSuiteModelContainer * CHnSuiteModelContainer::NewLC(class MHnMdModelEventObserver &, class MHnControllerInterface &)
- ?IsRunning@CHnItemModel@@QAEHXZ @ 169 NONAME ; int CHnItemModel::IsRunning(void)
- ?NewL@CHnActionModel@@SAPAV1@XZ @ 170 NONAME ; class CHnActionModel * CHnActionModel::NewL(void)
- ?AddButtonL@CHnToolbarModel@@QAEXPAVCHnButtonModel@@@Z @ 171 NONAME ; void CHnToolbarModel::AddButtonL(class CHnButtonModel *)
- ?SetItemUidL@CHnItemModel@@QAEXABVTDesC8@@@Z @ 172 NONAME ; void CHnItemModel::SetItemUidL(class TDesC8 const &)
- ?SetType@CHnItemModel@@QAEXABVTDesC8@@@Z @ 173 NONAME ; void CHnItemModel::SetType(class TDesC8 const &)
- ?SetSkinId@CHnAttributeImage@@QAEXVTAknsItemID@@@Z @ 174 NONAME ; void CHnAttributeImage::SetSkinId(class TAknsItemID)
- ?NameL@CHnMenuItemModel@@QAEABVTDesC16@@XZ @ 175 NONAME ; class TDesC16 const & CHnMenuItemModel::NameL(void)
- ?PopL@CHnSuitesStack@@QAEPAVCHnSuiteModel@@XZ @ 176 NONAME ; class CHnSuiteModel * CHnSuitesStack::PopL(void)
- ?SetVisibleL@CHnSuiteModel@@QAEXH@Z @ 177 NONAME ; void CHnSuiteModel::SetVisibleL(int)
- ?SetIcon@CHnButtonModel@@QAEXPAVCHnAttributeBase@@@Z @ 178 NONAME ; void CHnButtonModel::SetIcon(class CHnAttributeBase *)
- ?NewL@CHnAttrImgProvThemeMif@@SAPAV1@VTAknsItemID@@ABVTDesC16@@HH@Z @ 179 NONAME ; class CHnAttrImgProvThemeMif * CHnAttrImgProvThemeMif::NewL(class TAknsItemID, class TDesC16 const &, int, int)
- ?NewLC@CHnAttrImgProvLiwImage@@SAPAV1@AAPAVTLiwVariant@@0@Z @ 180 NONAME ; class CHnAttrImgProvLiwImage * CHnAttrImgProvLiwImage::NewLC(class TLiwVariant * &, class TLiwVariant * &)
- ?GetTemplate@CHnSuiteModel@@QBEABVTDesC8@@XZ @ 181 NONAME ; class TDesC8 const & CHnSuiteModel::GetTemplate(void) const
- ?GetActions@CHnItemModel@@QAEAAV?$RHashMap@HPAV?$CArrayPtr@VCHnActionModel@@@@@@XZ @ 182 NONAME ; class RHashMap<int, class CArrayPtr<class CHnActionModel> *> & CHnItemModel::GetActions(void)
- ?SetMenuItemType@CHnMenuItemModel@@QAEXW4THnMenuItemType@1@@Z @ 183 NONAME ; void CHnMenuItemModel::SetMenuItemType(enum CHnMenuItemModel::THnMenuItemType)
- ?HasNextSpecific@CHnMenuItemModel@@UAEHXZ @ 184 NONAME ; int CHnMenuItemModel::HasNextSpecific(void)
- ?GetNextSpecific@CHnMenuItemModel@@UAEPAV1@XZ @ 185 NONAME ; class CHnMenuItemModel * CHnMenuItemModel::GetNextSpecific(void)
- ?MenuItemType@CHnMenuItemModel@@QAE?AW4THnMenuItemType@1@XZ @ 186 NONAME ; enum CHnMenuItemModel::THnMenuItemType CHnMenuItemModel::MenuItemType(void)
+ ?MenuItemType@CHnMenuItemModel@@QAE?AW4THnMenuItemType@1@XZ @ 139 NONAME ; enum CHnMenuItemModel::THnMenuItemType CHnMenuItemModel::MenuItemType(void)
+ ?SetAttributeL@CHnItemModel@@QAEXPAVCHnAttributeBase@@@Z @ 140 NONAME ; void CHnItemModel::SetAttributeL(class CHnAttributeBase *)
+ ?SetEventId@CHnButtonModel@@QAEXH@Z @ 141 NONAME ; void CHnButtonModel::SetEventId(int)
+ ?GetLastSuiteModel@CHnSuiteModelContainer@@QAEPAVCHnSuiteModel@@XZ @ 142 NONAME ; class CHnSuiteModel * CHnSuiteModelContainer::GetLastSuiteModel(void)
+ ?NewL@CHnAttrImgProvSvgImage@@SAPAV1@ABVTDesC16@@@Z @ 143 NONAME ; class CHnAttrImgProvSvgImage * CHnAttrImgProvSvgImage::NewL(class TDesC16 const &)
+ ?RemoveItemL@CHnSuiteModel@@QAEXH@Z @ 144 NONAME ; void CHnSuiteModel::RemoveItemL(int)
+ ?GetTemplate@CHnItemModel@@QAEABVTDesC8@@XZ @ 145 NONAME ; class TDesC8 const & CHnItemModel::GetTemplate(void)
+ ?SetMaskId@CHnAttributeImage@@QAEXH@Z @ 146 NONAME ; void CHnAttributeImage::SetMaskId(int)
+ ?GetActions@CHnSuiteModel@@QAEAAV?$RHashMap@HPAV?$CArrayPtr@VCHnActionModel@@@@@@XZ @ 147 NONAME ; class RHashMap<int, class CArrayPtr<class CHnActionModel> *> & CHnSuiteModel::GetActions(void)
+ ?GetItemType@CHnItemModel@@QAE?AW4TMcsItemType@@XZ @ 148 NONAME ; enum TMcsItemType CHnItemModel::GetItemType(void)
+ ?GetButtonText@CHnButtonModel@@QBEABVTDesC16@@XZ @ 149 NONAME ; class TDesC16 const & CHnButtonModel::GetButtonText(void) const
+ ?NewL@CHnAttributeText@@SAPAV1@XZ @ 150 NONAME ; class CHnAttributeText * CHnAttributeText::NewL(void)
+ ?GetNext@CHnMenuItemModel@@UAEPAV1@XZ @ 151 NONAME ; class CHnMenuItemModel * CHnMenuItemModel::GetNext(void)
+ ?DefineModelItemCountL@CHnItemsOrder@@QAEXH@Z @ 152 NONAME ; void CHnItemsOrder::DefineModelItemCountL(int)
+ ?SuiteEvaluationFinishedL@CHnSuiteModel@@QAEHXZ @ 153 NONAME ; int CHnSuiteModel::SuiteEvaluationFinishedL(void)
+ ?HasNextSpecific@CHnMenuItemModel@@UAEHXZ @ 154 NONAME ; int CHnMenuItemModel::HasNextSpecific(void)
+ ?ItemEvaluationFinishedL@CHnSuiteModel@@QAEHH@Z @ 155 NONAME ; int CHnSuiteModel::ItemEvaluationFinishedL(int)
+ ?NewL@CHnMenuItemModel@@SAPAV1@ABVTDesC16@@@Z @ 156 NONAME ; class CHnMenuItemModel * CHnMenuItemModel::NewL(class TDesC16 const &)
+ ?ReorderItemsL@CHnSuiteModel@@QAEHHH@Z @ 157 NONAME ; int CHnSuiteModel::ReorderItemsL(int, int)
+ ?GetIdsForL@CHnItemsOrder@@QAEXHAAV?$RArray@H@@@Z @ 158 NONAME ; void CHnItemsOrder::GetIdsForL(int, class RArray<int> &)
+ ?NewLC@CHnAttrImgProvThemeMif@@SAPAV1@VTAknsItemID@@ABVTDesC16@@HH@Z @ 159 NONAME ; class CHnAttrImgProvThemeMif * CHnAttrImgProvThemeMif::NewLC(class TAknsItemID, class TDesC16 const &, int, int)
+ ?SetWidgetType@CHnSuiteModel@@QAEXW4THnSuiteWidgetType@@@Z @ 160 NONAME ; void CHnSuiteModel::SetWidgetType(enum THnSuiteWidgetType)
+ ?NotifyObserversL@CHnSuiteModel@@QAEXW4THnCustomSuiteEvent@@@Z @ 161 NONAME ; void CHnSuiteModel::NotifyObserversL(enum THnCustomSuiteEvent)
+ ?DeleteAllActionModels@CHnItemModel@@QAEXXZ @ 162 NONAME ; void CHnItemModel::DeleteAllActionModels(void)
+ ?SetSuiteHighlightL@CHnSuiteModel@@QAEXH@Z @ 163 NONAME ; void CHnSuiteModel::SetSuiteHighlightL(int)
+ ?SetCustomId@CHnSuiteModel@@QAEX_J@Z @ 164 NONAME ; void CHnSuiteModel::SetCustomId(long long)
+ ?SetCommandNameL@CHnActionModel@@QAEXABVTDesC8@@@Z @ 165 NONAME ; void CHnActionModel::SetCommandNameL(class TDesC8 const &)
+ ?NewLC@CHnItemsOrder@@SAPAV1@XZ @ 166 NONAME ; class CHnItemsOrder * CHnItemsOrder::NewLC(void)
+ ?SetCommand@CHnActionModel@@QAEXPAVCHnMdBaseKey@@@Z @ 167 NONAME ; void CHnActionModel::SetCommand(class CHnMdBaseKey *)
+ ?NewL@CHnAttrImgProvAppImage@@SAPAV1@VTUid@@@Z @ 168 NONAME ; class CHnAttrImgProvAppImage * CHnAttrImgProvAppImage::NewL(class TUid)
+ ?NewLC@CHnAttributeText@@SAPAV1@XZ @ 169 NONAME ; class CHnAttributeText * CHnAttributeText::NewLC(void)
+ ?NewLC@CHnSuiteModelContainer@@SAPAV1@AAVMHnMdModelEventObserver@@AAVMHnControllerInterface@@@Z @ 170 NONAME ; class CHnSuiteModelContainer * CHnSuiteModelContainer::NewLC(class MHnMdModelEventObserver &, class MHnControllerInterface &)
+ ?IsRunning@CHnItemModel@@QAEHXZ @ 171 NONAME ; int CHnItemModel::IsRunning(void)
+ ?NewL@CHnActionModel@@SAPAV1@XZ @ 172 NONAME ; class CHnActionModel * CHnActionModel::NewL(void)
+ ?AddButtonL@CHnToolbarModel@@QAEXPAVCHnButtonModel@@@Z @ 173 NONAME ; void CHnToolbarModel::AddButtonL(class CHnButtonModel *)
+ ?SetItemUidL@CHnItemModel@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CHnItemModel::SetItemUidL(class TDesC8 const &)
+ ?SetType@CHnItemModel@@QAEXABVTDesC8@@@Z @ 175 NONAME ; void CHnItemModel::SetType(class TDesC8 const &)
+ ?SetSkinId@CHnAttributeImage@@QAEXVTAknsItemID@@@Z @ 176 NONAME ; void CHnAttributeImage::SetSkinId(class TAknsItemID)
+ ?NameL@CHnMenuItemModel@@QAEABVTDesC16@@XZ @ 177 NONAME ; class TDesC16 const & CHnMenuItemModel::NameL(void)
+ ?PopL@CHnSuitesStack@@QAEPAVCHnSuiteModel@@XZ @ 178 NONAME ; class CHnSuiteModel * CHnSuitesStack::PopL(void)
+ ?SetIcon@CHnButtonModel@@QAEXPAVCHnAttributeBase@@@Z @ 179 NONAME ; void CHnButtonModel::SetIcon(class CHnAttributeBase *)
+ ?NewL@CHnAttrImgProvThemeMif@@SAPAV1@VTAknsItemID@@ABVTDesC16@@HH@Z @ 180 NONAME ; class CHnAttrImgProvThemeMif * CHnAttrImgProvThemeMif::NewL(class TAknsItemID, class TDesC16 const &, int, int)
+ ?NewLC@CHnAttrImgProvLiwImage@@SAPAV1@AAPAVTLiwVariant@@0@Z @ 181 NONAME ; class CHnAttrImgProvLiwImage * CHnAttrImgProvLiwImage::NewLC(class TLiwVariant * &, class TLiwVariant * &)
+ ?GetTemplate@CHnSuiteModel@@QBEABVTDesC8@@XZ @ 182 NONAME ; class TDesC8 const & CHnSuiteModel::GetTemplate(void) const
+ ?GetActions@CHnItemModel@@QAEAAV?$RHashMap@HPAV?$CArrayPtr@VCHnActionModel@@@@@@XZ @ 183 NONAME ; class RHashMap<int, class CArrayPtr<class CHnActionModel> *> & CHnItemModel::GetActions(void)
--- a/menufw/hierarchynavigator/hnpresentationmodel/eabi/hnpresentationmodelu.def Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/eabi/hnpresentationmodelu.def Wed Jun 09 09:29:04 2010 +0300
@@ -46,156 +46,153 @@
_ZN13CHnSuiteModel10GetActionsEi @ 45 NONAME
_ZN13CHnSuiteModel10GetActionsEv @ 46 NONAME
_ZN13CHnSuiteModel10QueueFocusEi @ 47 NONAME
- _ZN13CHnSuiteModel10SetActiveLEi @ 48 NONAME
- _ZN13CHnSuiteModel11GetItemTypeEi @ 49 NONAME
- _ZN13CHnSuiteModel11RemoveItemLEi @ 50 NONAME
- _ZN13CHnSuiteModel11SetCustomIdEx @ 51 NONAME
- _ZN13CHnSuiteModel11SetExitModeE9TExitMode @ 52 NONAME
- _ZN13CHnSuiteModel11SetVisibleLEi @ 53 NONAME
- _ZN13CHnSuiteModel12GetItemModelEi @ 54 NONAME
- _ZN13CHnSuiteModel12SetTemplateLERK6TDesC8 @ 55 NONAME
- _ZN13CHnSuiteModel13GetItemsOrderEv @ 56 NONAME
- _ZN13CHnSuiteModel13ReorderItemsLEii @ 57 NONAME
- _ZN13CHnSuiteModel13SetEmptyTextLERK7TDesC16 @ 58 NONAME
- _ZN13CHnSuiteModel13SetWidgetTypeE18THnSuiteWidgetType @ 59 NONAME
- _ZN13CHnSuiteModel14RemoveAllItemsEv @ 60 NONAME
- _ZN13CHnSuiteModel16IsItemMoveLockedEi @ 61 NONAME
- _ZN13CHnSuiteModel16NotifyObserversLE19THnCustomSuiteEvent @ 62 NONAME
- _ZN13CHnSuiteModel16RefreshMulModelLEi @ 63 NONAME
- _ZN13CHnSuiteModel17GetMenuStructureLEi @ 64 NONAME
- _ZN13CHnSuiteModel17GetSuiteHighlightEv @ 65 NONAME
- _ZN13CHnSuiteModel18GetItemModelsCountEv @ 66 NONAME
- _ZN13CHnSuiteModel18SetSuiteHighlightLEi @ 67 NONAME
- _ZN13CHnSuiteModel19UpdateItemTemplateLEi @ 68 NONAME
- _ZN13CHnSuiteModel21GetMatchingItemModelLExRi @ 69 NONAME
- _ZN13CHnSuiteModel22RegisterSuiteObserverLEP16MHnSuiteObserver15TThreadPriority @ 70 NONAME
- _ZN13CHnSuiteModel23IsItemBetweenMoveLockedEii @ 71 NONAME
- _ZN13CHnSuiteModel23ItemEvaluationFinishedLEi @ 72 NONAME
- _ZN13CHnSuiteModel23UnregisterSuiteObserverEP16MHnSuiteObserver @ 73 NONAME
- _ZN13CHnSuiteModel24SuiteEvaluationFinishedLEv @ 74 NONAME
- _ZN13CHnSuiteModel4NewLER15CHnEventHandlerRK7TDesC16 @ 75 NONAME
- _ZN13CHnSuiteModel8AddItemLEiP12CHnItemModelii @ 76 NONAME
- _ZN13CHnSuiteModel8CustomIdEv @ 77 NONAME
- _ZN13CHnSuiteModel8ExitModeEv @ 78 NONAME
- _ZN13CHnSuiteModel8IsActiveEv @ 79 NONAME
- _ZN13CHnSuiteModel9IdByIndexEi @ 80 NONAME
- _ZN13CHnSuiteModel9SetTitleLERK7TDesC16 @ 81 NONAME
- _ZN13CHnSuiteModelD0Ev @ 82 NONAME
- _ZN13CHnSuiteModelD1Ev @ 83 NONAME
- _ZN13CHnSuiteModelD2Ev @ 84 NONAME
- _ZN14CHnActionModel10SetCommandEP12CHnMdBaseKey @ 85 NONAME
- _ZN14CHnActionModel11SetServiceLERK6TDesC8 @ 86 NONAME
- _ZN14CHnActionModel13ConstructorLCEv @ 87 NONAME
- _ZN14CHnActionModel13SetInterfaceLERK6TDesC8 @ 88 NONAME
- _ZN14CHnActionModel15SetCommandNameLERK6TDesC8 @ 89 NONAME
- _ZN14CHnActionModel15SetConstructorLEP12CHnMdBaseKey @ 90 NONAME
- _ZN14CHnActionModel15SetServiceModeLE12TServiceMode @ 91 NONAME
- _ZN14CHnActionModel4NewLEv @ 92 NONAME
- _ZN14CHnButtonModel10SetEventIdEi @ 93 NONAME
- _ZN14CHnButtonModel12SetHelpTextLERK7TDesC16 @ 94 NONAME
- _ZN14CHnButtonModel5NewLCEi @ 95 NONAME
- _ZN14CHnButtonModel7SetIconEP16CHnAttributeBase @ 96 NONAME
- _ZN14CHnButtonModel9SetDimmedEi @ 97 NONAME
- _ZN14CHnButtonModelD0Ev @ 98 NONAME
- _ZN14CHnButtonModelD1Ev @ 99 NONAME
- _ZN14CHnButtonModelD2Ev @ 100 NONAME
- _ZN14CHnSuitesStack12GetRootSuiteEv @ 101 NONAME
- _ZN14CHnSuitesStack3GetEi @ 102 NONAME
- _ZN14CHnSuitesStack4NewLER22MHnControllerInterface @ 103 NONAME
- _ZN14CHnSuitesStack4PopLEv @ 104 NONAME
- _ZN14CHnSuitesStack5CountEv @ 105 NONAME
- _ZN14CHnSuitesStack5PushLEP13CHnSuiteModel @ 106 NONAME
- _ZN14CHnSuitesStack7GetLastEv @ 107 NONAME
- _ZN14CHnSuitesStack7IsEmptyEv @ 108 NONAME
- _ZN15CHnEventHandler14ExecuteActionLEP14CHnActionModel @ 109 NONAME
- _ZN15CHnToolbarModel10AddButtonLEP14CHnButtonModel @ 110 NONAME
- _ZN15CHnToolbarModel5NewLCEv @ 111 NONAME
- _ZN15CHnToolbarModelD0Ev @ 112 NONAME
- _ZN15CHnToolbarModelD1Ev @ 113 NONAME
- _ZN15CHnToolbarModelD2Ev @ 114 NONAME
- _ZN16CHnAttributeBase4TypeEv @ 115 NONAME
- _ZN16CHnAttributeBase5ValueEv @ 116 NONAME
- _ZN16CHnAttributeBase7GetIconEP5TSize @ 117 NONAME
- _ZN16CHnAttributeBase8SetNameLERK6TDesC8 @ 118 NONAME
- _ZN16CHnAttributeText4NewLEv @ 119 NONAME
- _ZN16CHnAttributeText5NewLCEv @ 120 NONAME
- _ZN16CHnAttributeText9SetValueLERK6TDesC8 @ 121 NONAME
- _ZN16CHnMenuItemModel10SetCommandEi @ 122 NONAME
- _ZN16CHnMenuItemModel11SetPositionEi @ 123 NONAME
- _ZN16CHnMenuItemModel16AppendChildMenuLEPS_ @ 124 NONAME
- _ZN16CHnMenuItemModel16GetMenuStructureEv @ 125 NONAME
- _ZN16CHnMenuItemModel4NewLERK7TDesC16 @ 126 NONAME
- _ZN16CHnMenuItemModel5NameLEv @ 127 NONAME
- _ZN16CHnMenuItemModel5ResetEv @ 128 NONAME
- _ZN16CHnMenuItemModel7CommandEv @ 129 NONAME
- _ZN16CHnMenuItemModel7GetNextEv @ 130 NONAME
- _ZN16CHnMenuItemModel7HasNextEv @ 131 NONAME
- _ZN16CHnMenuItemModel8PositionEv @ 132 NONAME
- _ZN17CHnAttributeImage10SetMifFileEP7HBufC16 @ 133 NONAME
- _ZN17CHnAttributeImage11SetBitmapIdEi @ 134 NONAME
- _ZN17CHnAttributeImage14SetFileNameSrcEP7HBufC16 @ 135 NONAME
- _ZN17CHnAttributeImage17SetApplicationUidE4TUid @ 136 NONAME
- _ZN17CHnAttributeImage4NewLEv @ 137 NONAME
- _ZN17CHnAttributeImage5NewLCEv @ 138 NONAME
- _ZN17CHnAttributeImage7GetIconEP5TSize @ 139 NONAME
- _ZN17CHnAttributeImage7SetMaskEP11TLiwVariant @ 140 NONAME
- _ZN17CHnAttributeImage9SetBitmapEP11TLiwVariant @ 141 NONAME
- _ZN17CHnAttributeImage9SetMaskIdEi @ 142 NONAME
- _ZN17CHnAttributeImage9SetSkinIdE11TAknsItemID @ 143 NONAME
- _ZN19CHnExtBmpIconHolder10SetGulIconEP8CGulIconP16CLiwBitmapBufferS3_ @ 144 NONAME
- _ZN22CHnAttrImgProvAppImage4NewLE4TUid @ 145 NONAME
- _ZN22CHnAttrImgProvAppImage5NewLCE4TUid @ 146 NONAME
- _ZN22CHnAttrImgProvLiwImage4NewLERP11TLiwVariantS2_ @ 147 NONAME
- _ZN22CHnAttrImgProvLiwImage5NewLCERP11TLiwVariantS2_ @ 148 NONAME
- _ZN22CHnAttrImgProvSvgImage4NewLERK7TDesC16 @ 149 NONAME
- _ZN22CHnAttrImgProvSvgImage5NewLCERK7TDesC16 @ 150 NONAME
- _ZN22CHnAttrImgProvThemeMif4NewLE11TAknsItemIDRK7TDesC16ii @ 151 NONAME
- _ZN22CHnAttrImgProvThemeMif5NewLCE11TAknsItemIDRK7TDesC16ii @ 152 NONAME
- _ZN22CHnSuiteModelContainer13GetSuiteModelERK7TDesC16 @ 153 NONAME
- _ZN22CHnSuiteModelContainer13GetSuiteModelEi @ 154 NONAME
- _ZN22CHnSuiteModelContainer13OfferHnEventLEiiP20CLiwGenericParamList @ 155 NONAME
- _ZN22CHnSuiteModelContainer14PopSuiteModelLERK7TDesC16 @ 156 NONAME
- _ZN22CHnSuiteModelContainer16RemoveLiwObjectsEv @ 157 NONAME
- _ZN22CHnSuiteModelContainer17GetLastSuiteModelEv @ 158 NONAME
- _ZN22CHnSuiteModelContainer18PushNewSuiteModelLERK7TDesC16 @ 159 NONAME
- _ZN22CHnSuiteModelContainer19GetParentSuiteModelEv @ 160 NONAME
- _ZN22CHnSuiteModelContainer21GetMatchingSuiteModelEx @ 161 NONAME
- _ZN22CHnSuiteModelContainer4NewLER23MHnMdModelEventObserverR22MHnControllerInterface @ 162 NONAME
- _ZN22CHnSuiteModelContainer5NewLCER23MHnMdModelEventObserverR22MHnControllerInterface @ 163 NONAME
- _ZN23CHnAttrImgProvFileImage4NewLERK7TDesC16 @ 164 NONAME
- _ZN23CHnAttrImgProvFileImage5NewLCERK7TDesC16 @ 165 NONAME
- _ZNK12CHnItemModel15GetToolbarModelEv @ 166 NONAME
- _ZNK13CHnIconHolder10GetGulIconEv @ 167 NONAME
- _ZNK13CHnItemsOrder10GetSuiteIdEv @ 168 NONAME
- _ZNK13CHnSuiteModel10HasToolbarEv @ 169 NONAME
- _ZNK13CHnSuiteModel10WidgetTypeEv @ 170 NONAME
- _ZNK13CHnSuiteModel11GetTemplateEv @ 171 NONAME
- _ZNK13CHnSuiteModel5TitleEv @ 172 NONAME
- _ZNK13CHnSuiteModel9EmptyTextEv @ 173 NONAME
- _ZNK13CHnSuiteModel9SuiteNameEv @ 174 NONAME
- _ZNK14CHnActionModel11CommandNameEv @ 175 NONAME
- _ZNK14CHnActionModel11ServiceModeEv @ 176 NONAME
- _ZNK14CHnActionModel7ServiceEv @ 177 NONAME
- _ZNK14CHnActionModel9CommandLCEv @ 178 NONAME
- _ZNK14CHnActionModel9InterfaceEv @ 179 NONAME
- _ZNK14CHnButtonModel10GetEventIdEv @ 180 NONAME
- _ZNK14CHnButtonModel13GetButtonTextEv @ 181 NONAME
- _ZNK14CHnButtonModel7GetIconEv @ 182 NONAME
- _ZNK14CHnButtonModel8GetIndexEv @ 183 NONAME
- _ZNK14CHnButtonModel9GetDimmedEv @ 184 NONAME
- _ZNK15CHnToolbarModel10HasButtonsEv @ 185 NONAME
- _ZNK15CHnToolbarModel9GetButtonEi @ 186 NONAME
- _ZNK16CHnAttributeBase4NameEv @ 187 NONAME
- _ZNK22CHnSuiteModelContainer18GetSuiteModelCountEv @ 188 NONAME
- _ZTI19CHnExtBmpIconHolder @ 189 NONAME
- _ZTV19CHnExtBmpIconHolder @ 190 NONAME
- _ZThn4_N16CHnMenuItemModel5ResetEv @ 191 NONAME
- _ZThn4_N16CHnMenuItemModel7GetNextEv @ 192 NONAME
- _ZThn4_N16CHnMenuItemModel7HasNextEv @ 193 NONAME
- _ZN16CHnMenuItemModel15GetNextSpecificEv @ 194 NONAME
- _ZN16CHnMenuItemModel15HasNextSpecificEv @ 195 NONAME
- _ZN16CHnMenuItemModel15SetMenuItemTypeENS_15THnMenuItemTypeE @ 196 NONAME
- _ZThn4_N16CHnMenuItemModel15GetNextSpecificEv @ 197 NONAME
- _ZThn4_N16CHnMenuItemModel15HasNextSpecificEv @ 198 NONAME
- _ZN16CHnMenuItemModel12MenuItemTypeEv @ 199 NONAME
+ _ZN13CHnSuiteModel11GetItemTypeEi @ 48 NONAME
+ _ZN13CHnSuiteModel11RemoveItemLEi @ 49 NONAME
+ _ZN13CHnSuiteModel11SetCustomIdEx @ 50 NONAME
+ _ZN13CHnSuiteModel11SetExitModeE9TExitMode @ 51 NONAME
+ _ZN13CHnSuiteModel12GetItemModelEi @ 52 NONAME
+ _ZN13CHnSuiteModel12SetTemplateLERK6TDesC8 @ 53 NONAME
+ _ZN13CHnSuiteModel13GetItemsOrderEv @ 54 NONAME
+ _ZN13CHnSuiteModel13ReorderItemsLEii @ 55 NONAME
+ _ZN13CHnSuiteModel13SetEmptyTextLERK7TDesC16 @ 56 NONAME
+ _ZN13CHnSuiteModel13SetWidgetTypeE18THnSuiteWidgetType @ 57 NONAME
+ _ZN13CHnSuiteModel14RemoveAllItemsEv @ 58 NONAME
+ _ZN13CHnSuiteModel16IsItemMoveLockedEi @ 59 NONAME
+ _ZN13CHnSuiteModel16NotifyObserversLE19THnCustomSuiteEvent @ 60 NONAME
+ _ZN13CHnSuiteModel16RefreshMulModelLEi @ 61 NONAME
+ _ZN13CHnSuiteModel17GetMenuStructureLEi @ 62 NONAME
+ _ZN13CHnSuiteModel17GetSuiteHighlightEv @ 63 NONAME
+ _ZN13CHnSuiteModel18GetItemModelsCountEv @ 64 NONAME
+ _ZN13CHnSuiteModel18SetSuiteHighlightLEi @ 65 NONAME
+ _ZN13CHnSuiteModel19UpdateItemTemplateLEi @ 66 NONAME
+ _ZN13CHnSuiteModel21GetMatchingItemModelLExRi @ 67 NONAME
+ _ZN13CHnSuiteModel22RegisterSuiteObserverLEP16MHnSuiteObserver15TThreadPriority @ 68 NONAME
+ _ZN13CHnSuiteModel23IsItemBetweenMoveLockedEii @ 69 NONAME
+ _ZN13CHnSuiteModel23ItemEvaluationFinishedLEi @ 70 NONAME
+ _ZN13CHnSuiteModel23UnregisterSuiteObserverEP16MHnSuiteObserver @ 71 NONAME
+ _ZN13CHnSuiteModel24SuiteEvaluationFinishedLEv @ 72 NONAME
+ _ZN13CHnSuiteModel4NewLER15CHnEventHandlerRK7TDesC16 @ 73 NONAME
+ _ZN13CHnSuiteModel8AddItemLEiP12CHnItemModelii @ 74 NONAME
+ _ZN13CHnSuiteModel8CustomIdEv @ 75 NONAME
+ _ZN13CHnSuiteModel8ExitModeEv @ 76 NONAME
+ _ZN13CHnSuiteModel9IdByIndexEi @ 77 NONAME
+ _ZN13CHnSuiteModel9SetTitleLERK7TDesC16 @ 78 NONAME
+ _ZN13CHnSuiteModelD0Ev @ 79 NONAME
+ _ZN13CHnSuiteModelD1Ev @ 80 NONAME
+ _ZN13CHnSuiteModelD2Ev @ 81 NONAME
+ _ZN14CHnActionModel10SetCommandEP12CHnMdBaseKey @ 82 NONAME
+ _ZN14CHnActionModel11SetServiceLERK6TDesC8 @ 83 NONAME
+ _ZN14CHnActionModel13ConstructorLCEv @ 84 NONAME
+ _ZN14CHnActionModel13SetInterfaceLERK6TDesC8 @ 85 NONAME
+ _ZN14CHnActionModel15SetCommandNameLERK6TDesC8 @ 86 NONAME
+ _ZN14CHnActionModel15SetConstructorLEP12CHnMdBaseKey @ 87 NONAME
+ _ZN14CHnActionModel15SetServiceModeLE12TServiceMode @ 88 NONAME
+ _ZN14CHnActionModel4NewLEv @ 89 NONAME
+ _ZN14CHnButtonModel10SetEventIdEi @ 90 NONAME
+ _ZN14CHnButtonModel12SetHelpTextLERK7TDesC16 @ 91 NONAME
+ _ZN14CHnButtonModel5NewLCEi @ 92 NONAME
+ _ZN14CHnButtonModel7SetIconEP16CHnAttributeBase @ 93 NONAME
+ _ZN14CHnButtonModel9SetDimmedEi @ 94 NONAME
+ _ZN14CHnButtonModelD0Ev @ 95 NONAME
+ _ZN14CHnButtonModelD1Ev @ 96 NONAME
+ _ZN14CHnButtonModelD2Ev @ 97 NONAME
+ _ZN14CHnSuitesStack12GetRootSuiteEv @ 98 NONAME
+ _ZN14CHnSuitesStack3GetEi @ 99 NONAME
+ _ZN14CHnSuitesStack4NewLER22MHnControllerInterface @ 100 NONAME
+ _ZN14CHnSuitesStack4PopLEv @ 101 NONAME
+ _ZN14CHnSuitesStack5CountEv @ 102 NONAME
+ _ZN14CHnSuitesStack5PushLEP13CHnSuiteModel @ 103 NONAME
+ _ZN14CHnSuitesStack7GetLastEv @ 104 NONAME
+ _ZN14CHnSuitesStack7IsEmptyEv @ 105 NONAME
+ _ZN15CHnEventHandler14ExecuteActionLEP14CHnActionModel @ 106 NONAME
+ _ZN15CHnToolbarModel10AddButtonLEP14CHnButtonModel @ 107 NONAME
+ _ZN15CHnToolbarModel5NewLCEv @ 108 NONAME
+ _ZN15CHnToolbarModelD0Ev @ 109 NONAME
+ _ZN15CHnToolbarModelD1Ev @ 110 NONAME
+ _ZN15CHnToolbarModelD2Ev @ 111 NONAME
+ _ZN16CHnAttributeBase4TypeEv @ 112 NONAME
+ _ZN16CHnAttributeBase5ValueEv @ 113 NONAME
+ _ZN16CHnAttributeBase7GetIconEP5TSize @ 114 NONAME
+ _ZN16CHnAttributeBase8SetNameLERK6TDesC8 @ 115 NONAME
+ _ZN16CHnAttributeText4NewLEv @ 116 NONAME
+ _ZN16CHnAttributeText5NewLCEv @ 117 NONAME
+ _ZN16CHnAttributeText9SetValueLERK6TDesC8 @ 118 NONAME
+ _ZN16CHnMenuItemModel10SetCommandEi @ 119 NONAME
+ _ZN16CHnMenuItemModel11SetPositionEi @ 120 NONAME
+ _ZN16CHnMenuItemModel12MenuItemTypeEv @ 121 NONAME
+ _ZN16CHnMenuItemModel15GetNextSpecificEv @ 122 NONAME
+ _ZN16CHnMenuItemModel15HasNextSpecificEv @ 123 NONAME
+ _ZN16CHnMenuItemModel15SetMenuItemTypeENS_15THnMenuItemTypeE @ 124 NONAME
+ _ZN16CHnMenuItemModel16AppendChildMenuLEPS_ @ 125 NONAME
+ _ZN16CHnMenuItemModel16GetMenuStructureEv @ 126 NONAME
+ _ZN16CHnMenuItemModel4NewLERK7TDesC16 @ 127 NONAME
+ _ZN16CHnMenuItemModel5NameLEv @ 128 NONAME
+ _ZN16CHnMenuItemModel5ResetEv @ 129 NONAME
+ _ZN16CHnMenuItemModel7CommandEv @ 130 NONAME
+ _ZN16CHnMenuItemModel7GetNextEv @ 131 NONAME
+ _ZN16CHnMenuItemModel7HasNextEv @ 132 NONAME
+ _ZN16CHnMenuItemModel8PositionEv @ 133 NONAME
+ _ZN17CHnAttributeImage10SetMifFileEP7HBufC16 @ 134 NONAME
+ _ZN17CHnAttributeImage11SetBitmapIdEi @ 135 NONAME
+ _ZN17CHnAttributeImage14SetFileNameSrcEP7HBufC16 @ 136 NONAME
+ _ZN17CHnAttributeImage17SetApplicationUidE4TUid @ 137 NONAME
+ _ZN17CHnAttributeImage4NewLEv @ 138 NONAME
+ _ZN17CHnAttributeImage5NewLCEv @ 139 NONAME
+ _ZN17CHnAttributeImage7GetIconEP5TSize @ 140 NONAME
+ _ZN17CHnAttributeImage7SetMaskEP11TLiwVariant @ 141 NONAME
+ _ZN17CHnAttributeImage9SetBitmapEP11TLiwVariant @ 142 NONAME
+ _ZN17CHnAttributeImage9SetMaskIdEi @ 143 NONAME
+ _ZN17CHnAttributeImage9SetSkinIdE11TAknsItemID @ 144 NONAME
+ _ZN19CHnExtBmpIconHolder10SetGulIconEP8CGulIconP16CLiwBitmapBufferS3_ @ 145 NONAME
+ _ZN22CHnAttrImgProvAppImage4NewLE4TUid @ 146 NONAME
+ _ZN22CHnAttrImgProvAppImage5NewLCE4TUid @ 147 NONAME
+ _ZN22CHnAttrImgProvLiwImage4NewLERP11TLiwVariantS2_ @ 148 NONAME
+ _ZN22CHnAttrImgProvLiwImage5NewLCERP11TLiwVariantS2_ @ 149 NONAME
+ _ZN22CHnAttrImgProvSvgImage4NewLERK7TDesC16 @ 150 NONAME
+ _ZN22CHnAttrImgProvSvgImage5NewLCERK7TDesC16 @ 151 NONAME
+ _ZN22CHnAttrImgProvThemeMif4NewLE11TAknsItemIDRK7TDesC16ii @ 152 NONAME
+ _ZN22CHnAttrImgProvThemeMif5NewLCE11TAknsItemIDRK7TDesC16ii @ 153 NONAME
+ _ZN22CHnSuiteModelContainer13GetSuiteModelERK7TDesC16 @ 154 NONAME
+ _ZN22CHnSuiteModelContainer13GetSuiteModelEi @ 155 NONAME
+ _ZN22CHnSuiteModelContainer13OfferHnEventLEiiP20CLiwGenericParamList @ 156 NONAME
+ _ZN22CHnSuiteModelContainer14PopSuiteModelLERK7TDesC16 @ 157 NONAME
+ _ZN22CHnSuiteModelContainer16RemoveLiwObjectsEv @ 158 NONAME
+ _ZN22CHnSuiteModelContainer17GetLastSuiteModelEv @ 159 NONAME
+ _ZN22CHnSuiteModelContainer18PushNewSuiteModelLERK7TDesC16 @ 160 NONAME
+ _ZN22CHnSuiteModelContainer19GetParentSuiteModelEv @ 161 NONAME
+ _ZN22CHnSuiteModelContainer21GetMatchingSuiteModelEx @ 162 NONAME
+ _ZN22CHnSuiteModelContainer4NewLER23MHnMdModelEventObserverR22MHnControllerInterface @ 163 NONAME
+ _ZN22CHnSuiteModelContainer5NewLCER23MHnMdModelEventObserverR22MHnControllerInterface @ 164 NONAME
+ _ZN23CHnAttrImgProvFileImage4NewLERK7TDesC16 @ 165 NONAME
+ _ZN23CHnAttrImgProvFileImage5NewLCERK7TDesC16 @ 166 NONAME
+ _ZNK12CHnItemModel15GetToolbarModelEv @ 167 NONAME
+ _ZNK13CHnIconHolder10GetGulIconEv @ 168 NONAME
+ _ZNK13CHnItemsOrder10GetSuiteIdEv @ 169 NONAME
+ _ZNK13CHnSuiteModel10HasToolbarEv @ 170 NONAME
+ _ZNK13CHnSuiteModel10WidgetTypeEv @ 171 NONAME
+ _ZNK13CHnSuiteModel11GetTemplateEv @ 172 NONAME
+ _ZNK13CHnSuiteModel5TitleEv @ 173 NONAME
+ _ZNK13CHnSuiteModel9EmptyTextEv @ 174 NONAME
+ _ZNK13CHnSuiteModel9SuiteNameEv @ 175 NONAME
+ _ZNK14CHnActionModel11CommandNameEv @ 176 NONAME
+ _ZNK14CHnActionModel11ServiceModeEv @ 177 NONAME
+ _ZNK14CHnActionModel7ServiceEv @ 178 NONAME
+ _ZNK14CHnActionModel9CommandLCEv @ 179 NONAME
+ _ZNK14CHnActionModel9InterfaceEv @ 180 NONAME
+ _ZNK14CHnButtonModel10GetEventIdEv @ 181 NONAME
+ _ZNK14CHnButtonModel13GetButtonTextEv @ 182 NONAME
+ _ZNK14CHnButtonModel7GetIconEv @ 183 NONAME
+ _ZNK14CHnButtonModel8GetIndexEv @ 184 NONAME
+ _ZNK14CHnButtonModel9GetDimmedEv @ 185 NONAME
+ _ZNK15CHnToolbarModel10HasButtonsEv @ 186 NONAME
+ _ZNK15CHnToolbarModel9GetButtonEi @ 187 NONAME
+ _ZNK16CHnAttributeBase4NameEv @ 188 NONAME
+ _ZNK22CHnSuiteModelContainer18GetSuiteModelCountEv @ 189 NONAME
+ _ZTI19CHnExtBmpIconHolder @ 190 NONAME
+ _ZTV19CHnExtBmpIconHolder @ 191 NONAME
+ _ZThn4_N16CHnMenuItemModel15GetNextSpecificEv @ 192 NONAME
+ _ZThn4_N16CHnMenuItemModel15HasNextSpecificEv @ 193 NONAME
+ _ZThn4_N16CHnMenuItemModel5ResetEv @ 194 NONAME
+ _ZThn4_N16CHnMenuItemModel7GetNextEv @ 195 NONAME
+ _ZThn4_N16CHnMenuItemModel7HasNextEv @ 196 NONAME
--- a/menufw/hierarchynavigator/hnpresentationmodel/group/hnpresentationmodel.mmp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/group/hnpresentationmodel.mmp Wed Jun 09 09:29:04 2010 +0300
@@ -49,7 +49,6 @@
SOURCE hneventhandler.cpp
SOURCE hnitemsorder.cpp
SOURCE hnattrimgprovsvgimage.cpp
-SOURCE hnitemfocushandler.cpp
SOURCE hniconholder.cpp
SOURCE hnextbmpiconholder.cpp
--- a/menufw/hierarchynavigator/hnpresentationmodel/inc/hnitemfocushandler.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Application UI class
-* Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
-*/
-#ifndef HNITEMFOCUSHANDLER_H
-#define HNITEMFOCUSHANDLER_H
-
-#include <e32base.h>
-#include <e32std.h>
-
-class CHnSuiteModel;
-
-/**
- * Class representing the focus item to be queued.
- *
- * @lib hnpresentationmodel
- * @since S60 5.0
- * @ingroup group_hnpresentationmodel
- */
-class TFocusQueueItem
- {
-public:
-
- /**
- * Constructor. Sets the trigger time on construction.
- *
- * @since S60 v5.0
- * @param aItemId Index of the item in the suite model.
- */
- TFocusQueueItem( TInt aItemId, TInt aEventId );
-
- /**
- * Fetches the focus item trigger time.
- *
- * @since S60 v5.0
- * @return Time when the event was triggered.
- */
- TTime TriggerTime();
-
- /**
- * Fetches the focus/unfocus item id.
- *
- * @since S60 v5.0
- * @return Suite model item id of the focused/unfocused item.
- */
- TInt ItemId();
-
- /**
- * Fetches the focus/unfocus item id.
- *
- * @since S60 v5.0
- * @return Suite model item id of the focused/unfocused item.
- */
- TInt EventId();
-
- /**
- * Compares queued items by triggered time.
- *
- * @since S60 v5.0
- * @param aItem1 First item to compare.
- * @param aItem2 Second item to compare.
- * @return 1 if aItem1 was triggered earlier than aItem2.
- * -1 if aItem1 was triggered later than aItem2.
- * 0 if aItem1 was triggered at the same time as aItem2.
- */
- static TInt CompareByTriggerTime( const TFocusQueueItem& aItem1,
- const TFocusQueueItem& aItem2 );
- /**
- * Compares queued items by triggered time.
- *
- * @since S60 v5.0
- * @param aItem1 First item to compare.
- * @param aItem2 Second item to compare.
- * @return ETrue if aItem1 is equal to aItem2 regarding the item id.
- * EFalse if aItem1 is not equal to aItem2 regarding the item id.
- */
- static TBool CompareByItemId( const TFocusQueueItem& aItem1,
- const TFocusQueueItem& aItem2 );
-
-private:
-
- /**
- * Item id.
- * Own.
- */
- TInt iItemId;
-
- /**
- * Trigger time.
- * Own.
- */
- TTime iTriggerTime;
-
- /**
- * Event type.
- */
- TInt iEventId;
-
- };
-
-/**
- * Item focus handler class.
- *
- * This is an active object which handles focus/unfocus event triggering.
- * This class causes focus/unfocus events to be run without performance impact
- * on the UI. The focus/unfocus events are queued. If incoming events logically
- * cancel the queued events, the appropriate events are removed from the queue.
- *
- * @lib hnpresentationmodel
- * @since S60 5.0
- * @ingroup group_hnpresentationmodel
- */
-NONSHARABLE_CLASS( CHnItemFocusHandler ) : public CActive
- {
-public:
-
- /**
- * Virtual Destructor.
- *
- * @since S60 5.0
- */
- ~CHnItemFocusHandler();
-
- /**
- * Two-phased constructor.
- *
- * @since S60 5.0
- * @param aSuiteModel The suite model for which focus events are handled.
- */
- static CHnItemFocusHandler* NewL( CHnSuiteModel* aSuiteModel );
-
- /**
- * Two-phased constructor.
- *
- * @since S60 5.0
- * @param aSuiteModel The suite model for which focus events are handled.
- */
- static CHnItemFocusHandler* NewLC( CHnSuiteModel* aSuiteModel );
-
-public:
-
- /**
- * Called to initiate item focus action handling.
- *
- * @since S60 v5.0
- * @param aEventId The type of event. Can be KIdFocusGain or KIdFocusLost. Otherwise focus actions are not triggered.
- * @param aItemId Index of the item in the suite model.
- */
- void SetFocusL( TInt aEventId, TBool aItemId );
-
-private:
-
- /**
- * C++ default constructor.
- *
- * @since S60 v5.0
- */
- CHnItemFocusHandler();
-
- /**
- * Second-phase constructor.
- *
- * @since S60 v5.0
- * @param aSuiteModel The suite model for which focus events are handled.
- */
- void ConstructL( CHnSuiteModel* aSuiteModel );
-
-private:
-
- /**
- * Handles completion. In fact the request is completed immediately after activating the object.
- * This method calls focus/unfocus action events.
- *
- * @since S60 v5.0
- */
- void RunL();
-
- /**
- * Run when request is cancelled.
- */
- void DoCancel();
-
- /**
- * Overriden to handle leaves from RunL(). Default implementation causes
- * the active scheduler to panic.
- *
- * @since S60 v5.0
- * @param aError The Error code.
- * @return Id The eroor code.
- */
- TInt RunError(TInt aError);
-
- /**
- * Removes duplicated items. E.g. if a request to focus an item has been triggered
- * when there is still a request to unfocus that item pending in the queue. Then the unfocus
- * event will be removed from the queue and the event and only the focus event is triggered.
- *
- * @since S60 v5.0
- * @param aFocusItem The item to be compared.
- * @param aEventId focus or unfocus event.
- */
- void RemoveDuplicatedItem( const TFocusQueueItem& aFocusItem );
-
-private:
-
- /**
- * The suite model for which focus events are handled.
- * Not own.
- */
- CHnSuiteModel* iSuiteModel;
-
- /**
- * Focus Queue.
- * Own.
- */
- RArray<TFocusQueueItem> iFocusQueue;
-
- };
-
-#endif // HNITEMFOCUSHANDLER_H
--- a/menufw/hierarchynavigator/hnpresentationmodel/inc/hnsuitemodel.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/inc/hnsuitemodel.h Wed Jun 09 09:29:04 2010 +0300
@@ -378,32 +378,6 @@
* @return Custom identifier of the suite.
*/
IMPORT_C TInt64 CustomId();
-
- /**
- * Activates highlight handling.
- * Used for highlight events for items.
- *
- * @since S60 v5.0
- * @param aActive ETrue if active.
- */
- IMPORT_C void SetActiveL( TBool aActive );
-
- /**
- * Returns the state of the suite.
- *
- * @since S60 v5.0
- * @return ETrue if active.
- */
- IMPORT_C TBool IsActive();
-
- /**
- * Notifies the model that the suite is visible.
- * Used for highlight events for items.
- *
- * @since S60 v5.0
- * @param aVisible ETrue if visible.
- */
- IMPORT_C void SetVisibleL( TBool aVisible );
/**
* Returns item model matching given criteria.
@@ -468,17 +442,7 @@
* @param aGenreName Genre name for model
*/
void ConstructL( const TDesC& aGenreName );
-
- /**
- * Launches the appropriate action if allowed.
- * Used for highlight events for items.
- *
- * @since S60 v5.0
- * @param aItemId ID of the item.
- * @param aFocused ETrue if focused.
- */
- void HandleItemFocusL( TInt aItemId, TBool aFocused );
-
+
/**
* Set highlight on item.
*
@@ -572,18 +536,6 @@
* Not Own.
*/
CHnEventHandler& iEventHandler;
-
- /**
- * Indicates if the suite is active.
- * Used for handling highlight events for items.
- */
- TBool iIsActive;
-
- /**
- * Indicates if the suite is visible.
- * Used for handling highlight events for items.
- */
- TBool iIsVisible;
/**
* Exit mode.
--- a/menufw/hierarchynavigator/hnpresentationmodel/src/hnattributeimage.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/src/hnattributeimage.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -187,6 +187,10 @@
{
iAttrImgProvider = CHnAttrImgProvAppImage::NewL( iApplicationUid );
}
+ else if ( IsLiwImage() )
+ {
+ iAttrImgProvider = CHnAttrImgProvLiwImage::NewL( iBitmap, iMask );
+ }
else if ( IsFileImageL() )
{
if ( iFileNameSrc.Find( KSvgFileExtension() ) != KErrNotFound )
@@ -198,10 +202,6 @@
iAttrImgProvider = CHnAttrImgProvFileImage::NewL( iFileNameSrc );
}
}
- else if ( IsLiwImage() )
- {
- iAttrImgProvider = CHnAttrImgProvLiwImage::NewL( iBitmap, iMask );
- }
// if strin couldn't be resolved then provide empty one
else
{
--- a/menufw/hierarchynavigator/hnpresentationmodel/src/hnitemfocushandler.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Application UI class
-* Version : %version: 3 % << Don't touch! Updated by Synergy at check-out.
-*/
-
-
-#include "hnitemfocushandler.h"
-#include "hnglobals.h"
-#include "hnsuitemodel.h"
-
-// ---------------------------------------------------------------------------
-// TFocusQueueItem::TFocusQueueItem( TInt aItemId, TInt aEventId )
-// ---------------------------------------------------------------------------
-//
-TFocusQueueItem::TFocusQueueItem( TInt aItemId, TInt aEventId ):
- iItemId( aItemId ), iEventId( aEventId )
- {
- iTriggerTime.HomeTime();
- }
-
-// ---------------------------------------------------------------------------
-// TFocusQueueItem::TriggerTime()
-// ---------------------------------------------------------------------------
-//
-TTime TFocusQueueItem::TriggerTime()
- {
- return iTriggerTime;
- }
-
-// ---------------------------------------------------------------------------
-// TFocusQueueItem::ItemId()
-// ---------------------------------------------------------------------------
-//
-TInt TFocusQueueItem::ItemId()
- {
- return iItemId;
- }
-
-// ---------------------------------------------------------------------------
-// TFocusQueueItem::EventId()
-// ---------------------------------------------------------------------------
-//
-TInt TFocusQueueItem::EventId()
- {
- return iEventId;
- }
-
-// ---------------------------------------------------------------------------
-// TFocusQueueItem::CompareByTriggerTime( const TFocusQueueItem& aItem1,
-// const TFocusQueueItem& aItem2 )
-// ---------------------------------------------------------------------------
-//
-TInt TFocusQueueItem::CompareByTriggerTime( const TFocusQueueItem& aItem1,
- const TFocusQueueItem& aItem2 )
- {
- if ( aItem1.iTriggerTime < aItem2.iTriggerTime )
- {
- return -1;
- }
- else
- {
- return 1;
- }
- }
-
-// ---------------------------------------------------------------------------
-// TFocusQueueItem::CompareByItemId( const TFocusQueueItem& aItem1,
-// const TFocusQueueItem& aItem2 )
-// ---------------------------------------------------------------------------
-//
-TBool TFocusQueueItem::CompareByItemId( const TFocusQueueItem& aItem1,
- const TFocusQueueItem& aItem2 )
- {
- return aItem1.iItemId == aItem2.iItemId;
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::CHnItemFocusHandler()
-// ---------------------------------------------------------------------------
-//
-CHnItemFocusHandler::CHnItemFocusHandler() :
- CActive(EPriorityLow) // Standard priority
- {
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler* CHnItemFocusHandler::NewLC()
-// ---------------------------------------------------------------------------
-//
-CHnItemFocusHandler* CHnItemFocusHandler::NewLC( CHnSuiteModel* aSuiteModel )
- {
- CHnItemFocusHandler* self = new (ELeave) CHnItemFocusHandler();
- CleanupStack::PushL(self);
- self->ConstructL( aSuiteModel );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler* CHnItemFocusHandler::NewL()
-// ---------------------------------------------------------------------------
-//
-CHnItemFocusHandler* CHnItemFocusHandler::NewL( CHnSuiteModel* aSuiteModel )
- {
- CHnItemFocusHandler* self = CHnItemFocusHandler::NewLC( aSuiteModel );
- CleanupStack::Pop(); // self;
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CHnItemFocusHandler::ConstructL( CHnSuiteModel* aSuiteModel )
- {
- CActiveScheduler::Add( this); // Add to scheduler
- iSuiteModel = aSuiteModel;
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::~CHnItemFocusHandler(
-// ---------------------------------------------------------------------------
-//
-CHnItemFocusHandler::~CHnItemFocusHandler()
- {
- Cancel(); // Cancel any request, if outstanding
-
-// handle all pending unfocus events synchronously.
- for(TInt i = 0; i < iFocusQueue.Count(); i++ )
- {
- if ( KIdFocusLost == iFocusQueue[i].EventId() )
- {
- if( iSuiteModel )
- {
- TRAP_IGNORE( iSuiteModel->OfferHnEventL(
- KIdFocusLost, iFocusQueue[i].ItemId(), NULL ) );
- }
- }
- }
- iFocusQueue.Reset();
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CHnItemFocusHandler::DoCancel()
- {
-// TRequestStatus* status = &iStatus;
-// User::RequestComplete( status, KErrCancel);
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::StartL(TTimeIntervalMicroSeconds32 aDelay)
-// ---------------------------------------------------------------------------
-//
-void CHnItemFocusHandler::SetFocusL( TInt aEventId, TBool aItemId )
- {
- TLinearOrder<TFocusQueueItem> byTriggerTime(
- TFocusQueueItem::CompareByTriggerTime );
- TFocusQueueItem focusItem(aItemId, aEventId);
- RemoveDuplicatedItem( focusItem );
- iFocusQueue.InsertInOrderL( focusItem, byTriggerTime );
- if ( !IsActive() )
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::RunL()
-// ---------------------------------------------------------------------------
-//
-void CHnItemFocusHandler::RunL()
- {
- TRAP_IGNORE( iSuiteModel->OfferHnEventL(
- iFocusQueue[0].EventId(), iFocusQueue[0].ItemId() , NULL ) );
- iFocusQueue.Remove(0);
-
- if ( iFocusQueue.Count() > 0)
- {
- SetActive(); // Tell scheduler a request is active
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CHnItemFocusHandler::RunError(TInt aError)
-// ---------------------------------------------------------------------------
-//
-TInt CHnItemFocusHandler::RunError(TInt aError)
- {
- return aError;
- }
-
-// ---------------------------------------------------------------------------
-// RemoveDuplicatedItem( const TFocusQueueItem& aFocusItem )
-// ---------------------------------------------------------------------------
-//
-void CHnItemFocusHandler::RemoveDuplicatedItem( const TFocusQueueItem& aFocusItem )
- {
- if ( iFocusQueue.Count() != 0 )
- {
- TIdentityRelation< TFocusQueueItem > byItemId(
- TFocusQueueItem::CompareByItemId );
- TInt itemPosition;
- itemPosition = iFocusQueue.Find( aFocusItem, byItemId );
- if ( KErrNotFound != itemPosition )
- {
- iFocusQueue.Remove( itemPosition );
- }
- }
- }
-
-// End of file
-
--- a/menufw/hierarchynavigator/hnpresentationmodel/src/hnsuitemodel.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/hierarchynavigator/hnpresentationmodel/src/hnsuitemodel.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -30,7 +30,6 @@
#include "hnattributetext.h"
#include "hnitemsorder.h"
#include "hneventhandler.h"
-#include "hnitemfocushandler.h"
// ============================ MEMBER FUNCTIONS =============================
@@ -73,11 +72,6 @@
TRAP_IGNORE( iSuiteObservers[i]->HandleSuiteEventL( ESuiteModelDestroyed, this ) );
}
- if ( iIsVisible && iIsActive )
- {
- TRAP_IGNORE( HandleItemFocusL( iSuiteHighlight.iItemId, EFalse ) );
- }
- delete iItemFocusHandler;
TRAP_IGNORE( OfferHnEventL( KIdSuiteUnLoad,
GetItemsOrder()->GetSuiteId(), NULL ) );
@@ -697,13 +691,6 @@
newCustomId = itemModel->CustomId();
}
- if ( ( newCustomId != iSuiteHighlight.iCustomId ||
- newItemId != iSuiteHighlight.iItemId ) && ( iIsActive && iIsVisible ) )
- {
- HandleItemFocusL( iSuiteHighlight.iItemId, EFalse );
- HandleItemFocusL( newItemId, ETrue );
- }
-
iSuiteHighlight.iCustomId = newCustomId;
iSuiteHighlight.iItemId = newItemId;
iSuiteHighlight.iWidgetIndex = aHighLight;
@@ -845,83 +832,6 @@
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
-//
-EXPORT_C void CHnSuiteModel::SetActiveL( TBool aActive )
- {
- DEBUG16(("_MM_:CHnSuiteModel::SetActiveL %S - IN",iSuiteName));
- DEBUG(("\t_MM_:aActive: %d",aActive));
- DEBUG(("\t_MM_:iIsActive: %d",iIsActive));
-
- if ( aActive != iIsActive )
- {
- iIsActive = aActive;
- if ( iIsVisible )
- {
- HandleItemFocusL( iSuiteHighlight.iItemId, aActive );
- }
- }
-
- DEBUG(("_MM_:CHnSuiteModel::SetActiveL - OUT"));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CHnSuiteModel::IsActive()
- {
- return iIsActive;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CHnSuiteModel::SetVisibleL( TBool aVisible )
- {
- DEBUG16(("_MM_:CHnSuiteModel::SetVisible %S - IN",iSuiteName));
- DEBUG(("\t_MM_:aVisible: %d",aVisible));
- DEBUG(("\t_MM_:iIsVisible: %d",iIsVisible));
-
- if ( aVisible != iIsVisible )
- {
- iIsVisible = aVisible;
- if ( iIsActive )
- {
- HandleItemFocusL( iSuiteHighlight.iItemId, aVisible );
- }
- }
-
- DEBUG(("_MM_:CHnSuiteModel::SetVisible - OUT"));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnSuiteModel::HandleItemFocusL( TInt aItemId, TBool aFocused )
- {
- DEBUG16(("_MM_:CHnSuiteModel::HandleItemFocusL %S - IN",iSuiteName));
- DEBUG(("\t_MM_:aItemIndex: %d",aItemId));
- DEBUG(("\t_MM_:aFocused: %d",aFocused));
-
- if ( aItemId >= 0 )
- {
- if ( !iItemFocusHandler )
- {
- iItemFocusHandler = CHnItemFocusHandler::NewL( this );
- }
- TInt eventId = aFocused ? KIdFocusGain : KIdFocusLost;
- iItemFocusHandler->SetFocusL( eventId, aItemId );
-// TRAP_IGNORE( OfferHnEventL( eventId, aItemId, NULL ) );
- }
-
- DEBUG(("_MM_:CHnSuiteModel::HandleItemFocusL - OUT"));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
//
EXPORT_C CHnItemModel* CHnSuiteModel::GetMatchingItemModelL( TInt64 aCustomId,
TInt& aIndex )
--- a/menufw/menufwui/matrixmenu/src/mmappui.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,8 +12,8 @@
* Contributors:
*
* Description: Application UI class
-* Version : %version: MM_176.1.28.1.78 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_176.1.28.1.78 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.82 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_176.1.28.1.82 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -77,6 +77,8 @@
EMenuCloseFolderEffect = 1002
};
+#define AI_UID3_AIFW_COMMON 0x102750F0
+
// ============================ MEMBER FUNCTIONS =============================
// ---------------------------------------------------------------------------
@@ -112,10 +114,9 @@
iDummyContainer = CMmWidgetContainer::NewGridContainerL( ClientRect(),
this, iDummyTemplateLib );
iDummyContainer->SetEmptyTextL( KNullDesC );
+ iDummyContainer->MakeVisible( EFalse );
AddToStackL( iDummyContainer, ECoeStackPriorityDefault,
ECoeStackFlagRefusesFocus | ECoeStackFlagRefusesAllKeys );
- iDummyContainer->MakeVisible( ETrue );
- iDummyContainer->DrawNow();
iHNInterface = CHnEngine::NewL( *this );
iTemplateLibrary = CMmTemplateLibrary::NewL();
@@ -785,10 +786,6 @@
{
DEBUG(("_Mm_:CMmAppUi::NotifyUiRefreshL - ELightOn"));
iScreenOn = ETrue;
- if ( IsForeground() && iCurrentSuiteModel )
- {
- iCurrentSuiteModel->SetVisibleL( ETrue );
- }
if ( iCurrentContainer )
{
iCurrentContainer->HandleForegroundGainedL();
@@ -807,11 +804,6 @@
iCurrentContainer->CancelDragL(EFalse);
}
}
- if (iCurrentSuiteModel)
- {
- iCurrentSuiteModel->SetVisibleL(EFalse);
- }
-
}
break;
case ERemoveLiwObjects:
@@ -1225,9 +1217,9 @@
HandleHighlightItemSingleClickedL( iCurrentContainer->Widget()->CurrentItemIndex() );
}
else if ( aEventType == MEikListBoxObserver::EEventPanningStarted )
- {
- iKeyClickLocked = ETrue;
- }
+ {
+ iKeyClickLocked = ETrue;
+ }
DEBUG(("_Mm_:CMmAppUi::HandleListBoxEventL OUT"));
}
@@ -1488,25 +1480,25 @@
{
TInt itemId( KErrNotFound );
TBool suiteModelHasItems = iCurrentContainer->GetSuiteModelL()->GetItemModelsCount() > 1;
- TBool highlightVisible = iCurrentContainer->IsHighlightVisible();
- if ( !highlightVisible && suiteModelHasItems )
- {
+ TBool highlightVisible = iCurrentContainer->IsHighlightVisible();
+ if ( !highlightVisible && suiteModelHasItems )
+ {
// if there is no highlight, but there are items, show menuitems for logically
// current suite highlight fetched from suite model.
- TInt suiteHighlight = iCurrentSuiteModel->GetSuiteHighlight();
- ASSERT( suiteHighlight != KErrNotFound );
- itemId = iCurrentSuiteModel->IdByIndex( suiteHighlight );
- ignoreItemSpecific = ETrue;
- }
- else
- {
- TBool idByContainer = highlightVisible && suiteModelHasItems;
- itemId = idByContainer ?
- iCurrentSuiteModel->IdByIndex( iCurrentContainer->GetHighlight() ) :
- iCurrentSuiteModel->IdByIndex( KErrNotFound );
- }
+ TInt suiteHighlight = iCurrentSuiteModel->GetSuiteHighlight();
+ ASSERT( suiteHighlight != KErrNotFound );
+ itemId = iCurrentSuiteModel->IdByIndex( suiteHighlight );
+ ignoreItemSpecific = ETrue;
+ }
+ else
+ {
+ TBool idByContainer = highlightVisible && suiteModelHasItems;
+ itemId = idByContainer
+ ? iCurrentSuiteModel->IdByIndex( iCurrentContainer->GetHighlight() )
+ : iCurrentSuiteModel->IdByIndex( KErrNotFound );
+ }
menuIterator = iCurrentSuiteModel->GetMenuStructureL( itemId );
- }
+ }
// check if there is a menu structure available
// for the specified item
@@ -1536,42 +1528,42 @@
{
CHnMenuItemModel* menuItem = menuIterator->GetNext();
if ( (menuItem->MenuItemType() == CHnMenuItemModel::EItemApplication) || !ignoreItemSpecific )
- {
- CEikMenuPaneItem::SData menuData;
- menuData.iCommandId = menuItem->Command();
- menuData.iText = menuItem->NameL().
- Left( CEikMenuPaneItem::SData::ENominalTextLength );
- menuData.iFlags = 0;
+ {
+ CEikMenuPaneItem::SData menuData;
+ menuData.iCommandId = menuItem->Command();
+ menuData.iText = menuItem->NameL().
+ Left( CEikMenuPaneItem::SData::ENominalTextLength );
+ menuData.iFlags = 0;
- //check for children
- MHnMenuItemModelIterator* childIterator =
- menuItem->GetMenuStructure();
- if ( childIterator->HasNext() )
- {
- //this is a cascade item
- //one menu item can contain only one cascade menu
- //check if there are available cascade menu containers
- TInt freeResource = GetNextCascadeMenuResourceId();
- if ( freeResource != KErrNotFound )
- {
- //error checking
- if( !iCascadeMenuMap.Insert( freeResource,
- childIterator ) )
- {
- //add item only if there is an
- //available resource
- menuData.iCascadeId = freeResource;
- }
- }
- }
- else
- {
- //normal entry
- menuData.iCascadeId = 0;
- }
- positionArray.AppendL( menuItem->Position() );
- menuItemMap.InsertL( menuItem->Position(), menuData );
- }
+ //check for children
+ MHnMenuItemModelIterator* childIterator =
+ menuItem->GetMenuStructure();
+ if ( childIterator->HasNext() )
+ {
+ //this is a cascade item
+ //one menu item can contain only one cascade menu
+ //check if there are available cascade menu containers
+ TInt freeResource = GetNextCascadeMenuResourceId();
+ if ( freeResource != KErrNotFound )
+ {
+ //error checking
+ if( !iCascadeMenuMap.Insert( freeResource,
+ childIterator ) )
+ {
+ //add item only if there is an
+ //available resource
+ menuData.iCascadeId = freeResource;
+ }
+ }
+ }
+ else
+ {
+ //normal entry
+ menuData.iCascadeId = 0;
+ }
+ positionArray.AppendL( menuItem->Position() );
+ menuItemMap.InsertL( menuItem->Position(), menuData );
+ }
}
aMenuPane->Reset();
@@ -1742,7 +1734,15 @@
iCurrentContainer = aWidgetContainer;
iCurrentContainer->Widget()->View()->SetDisableRedraw(ETrue);
- iDummyContainer->MakeVisible( ETrue );
+ if( isHiddenFromFS )
+ {
+ iCurrentContainer->MakeVisible( EFalse );
+ }
+ else
+ {
+ iDummyContainer->MakeVisible( ETrue );
+ }
+
RefreshCbaL();
iCurrentContainer->SetEditModeL( IsEditMode() );
iCurrentContainer->SetSuiteModelL( iCurrentSuiteModel );
@@ -2378,9 +2378,9 @@
//
void CMmAppUi::HandleSuiteModelInitializedL( CHnSuiteModel* aModel )
{
+
StatusPane()->MakeVisible( ETrue );
Cba()->MakeVisible( ETrue );
-
if ( aModel == iHNInterface->GetLastSuiteModelL() )
{
TBool showOpenFolderEffect(iCurrentSuiteModel
@@ -2392,12 +2392,6 @@
StartLayoutSwitchFullScreen( EMenuOpenFolderEffect );
}
- if ( iCurrentSuiteModel )
- {
- iCurrentSuiteModel->SetVisibleL( EFalse );
- DEBUG16(("\t\t_Mm_:SetVisible EFalse - %S",
- &(iCurrentSuiteModel->SuiteName())));
- }
iCurrentSuiteModel = aModel;
ShowSuiteL();
iGarbage.ResetAndDestroy();
@@ -2411,13 +2405,6 @@
iEditModeStatus = ENoEditMode;
}
- if (iScreenOn && IsForeground())
- {
- iCurrentSuiteModel->SetVisibleL( ETrue );
- DEBUG16(("\t\t_Mm_:SetVisible ETrue - %S",
- &(iCurrentSuiteModel->SuiteName())));
- }
-
HideMenuPaneIfVisibleL();
EndFullScreen();
}
@@ -2755,15 +2742,20 @@
aKastorEffect == AknTransEffect::EApplicationExit )
{
DEBUG(("_MM_:CMmAppUi::StartLayoutSwitchFullScreen Foreground"));
- TUid uid1( KUidMatrixMenuApp );
- TUid uid2( KUidMatrixMenuApp );
- if ( aKastorEffect == AknTransEffect::EApplicationExit )
+ TUid uidNext( KUidMatrixMenuApp );
+ TUid uidPrev( KUidMatrixMenuApp );
+
+ if( aKastorEffect == AknTransEffect::EApplicationExit )
{
- uid2 = TUid::Null();
+ uidPrev = TUid::Null();
+ }
+ else if( aKastorEffect == AknTransEffect::EApplicationStart )
+ {
+ uidPrev = uidPrev.Uid( AI_UID3_AIFW_COMMON );
}
AknTransEffect::TParamBuffer params = AknTransEffect::GfxTransParam(
- uid1, uid2, AknTransEffect::TParameter::EFlagNone );
+ uidNext, uidPrev, AknTransEffect::TParameter::EFlagNone );
GfxTransEffect::BeginFullScreen( aKastorEffect, TRect(),
AknTransEffect::EParameterType, params );
@@ -2990,10 +2982,6 @@
{
iCurrentContainer->SetHasFocusL( ETrue );
}
- if ( iCurrentSuiteModel )
- {
- iCurrentSuiteModel->SetVisibleL( ETrue );
- }
}
// ---------------------------------------------------------------------------
@@ -3031,11 +3019,6 @@
}
iCurrentContainer->SetHasFocusL( EFalse );
}
- if ( iCurrentSuiteModel )
- {
- iCurrentSuiteModel->SetVisibleL( EFalse );
- }
-
}
// ---------------------------------------------------------------------------
--- a/menufw/menufwui/mmextensions/mmextensionmanager/group/bld.inf Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmextensions/mmextensionmanager/group/bld.inf Wed Jun 09 09:29:04 2010 +0300
@@ -21,7 +21,6 @@
PRJ_EXPORTS
../inc/mmextensionmanager.h |../../../../inc/mmextensionmanager.h
-../inc/mmecomobserver.h |../../../../inc/mmecomobserver.h
PRJ_MMPFILES
mmextensionmanager.mmp
--- a/menufw/menufwui/mmextensions/mmextensionmanager/group/mmextensionmanager.mmp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmextensions/mmextensionmanager/group/mmextensionmanager.mmp Wed Jun 09 09:29:04 2010 +0300
@@ -28,7 +28,6 @@
SOURCEPATH ../src
SOURCE mmextensionmanager.cpp
-SOURCE mmecomobserver.cpp
USERINCLUDE .
--- a/menufw/menufwui/mmextensions/mmextensionmanager/inc/mmecomobserver.h Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Menu Framewrok ECom observer
-*
-*/
-
-#ifndef C_ECOM_OBSERVER_H
-#define C_ECOM_OBSERVER_H
-
-#include <e32base.h> // For CActive, link against: euser.lib
-#include <e32std.h> // For RTimer, link against: euser.lib
-
-class REComSession;
-
-/**
- * Class defining callback interface.
- */
-
-/**
- * MHNEcomInstallNotifierCallback is an interface contains function
- * executed when ECom plugin have changed. Interface is used by all
- * ECom observer implementations.
- *
- * @since S60 5.0
- * @ingroup group_mmextensions
- */
-class MHNEcomInstallNotifierCallback
- {
-public:
-
- /**
- * Refreshes list of MultimediaMenu plugins implementations.
- */
- virtual void EcomChangedL() = 0;
- };
-
-/**
- * Class for observing ECom server
- */
-
-/**
- * CMMEcomObserver is a class represents ECom plugin. Class is
- * derived by all ECom plugin implemetations. Implementation
- * contains basic functionality related with ECom mechanism and
- * notification handling.
- *
- * @since S60 5.0
- * @ingroup group_mmextensions
- */
-NONSHARABLE_CLASS( CMMEcomObserver ) : public CActive
- {
-public:
- /**
- * Cancel and destroy.
- */
- ~CMMEcomObserver();
-
- /**
- * Two-phased constructor.
- * @param aCallback Pointer to ECom plugin callback.
- * @return Instance of the CMMEcomObserver class.
- */
- static CMMEcomObserver* NewL( MHNEcomInstallNotifierCallback* aCallback );
-
- /**
- * Two-phased constructor.
- * @param aCallback Pointer to ECom plugin callback.
- * @return Instance of the CMMEcomObserver class.
- */
- static CMMEcomObserver* NewLC( MHNEcomInstallNotifierCallback* aCallback );
-
-private:
- /**
- * Default C++ constructor.
- */
- CMMEcomObserver();
-
- /**
- * Second-phase constructor.
- * @param aCallback Pointer to ECom plugin callback.
- */
- void ConstructL( MHNEcomInstallNotifierCallback* aCallback );
-
-private:
-
- /**
- * From CActive. Handles completion.
- */
- void RunL();
-
- /**
- * Cancels active object.
- */
- void DoCancel();
-
- /**
- * Override to handle leaves from RunL(). Default implementation causes
- * the active scheduler to panic.
- * @param aError Currently error status.
- * @return Error code.
- */
- TInt RunError( TInt aError );
-
-private:
-
- /**
- * ECom handler
- * Own.
- */
- REComSession* iSession;
-
- /**
- * Callback pointer.
- * Not own.
- */
- MHNEcomInstallNotifierCallback* iCallback;
-
- };
-
-#endif // C_ECOM_OBSERVER_H
--- a/menufw/menufwui/mmextensions/mmextensionmanager/inc/mmextensionmanager.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmextensions/mmextensionmanager/inc/mmextensionmanager.h Wed Jun 09 09:29:04 2010 +0300
@@ -20,7 +20,6 @@
#define C_MM_EXTENSION_MANAGER_H
// INCLUDES
-#include "mmecomobserver.h"
#include <e32std.h>
#include <e32base.h>
#include <e32hashtab.h>
@@ -38,9 +37,7 @@
* @since S60 5.0
* @ingroup group_mmextensions
*/
-NONSHARABLE_CLASS( CMMExtensionManager ):
- public CBase,
- public MHNEcomInstallNotifierCallback
+NONSHARABLE_CLASS( CMMExtensionManager ): public CBase
{
public: // Constructors and destructor
@@ -79,11 +76,6 @@
const TUid aUid,
const TDesC& aCommand,
CLiwGenericParamList* aEventParamList );
-
- /**
- * Refreshes list of MultimediaMenu plugins implementations.
- */
- void EcomChangedL();
private:
@@ -124,12 +116,7 @@
* Reference to the App UI.
*/
MMmActionRequest& iActionRequest;
-
- /**
- * Pointer to ECom observer.
- * Own.
- */
- CMMEcomObserver *iEcomObserver;
+
};
#endif // C_MM_EXTENSION_MANAGER_H
--- a/menufw/menufwui/mmextensions/mmextensionmanager/src/mmecomobserver.cpp Tue May 25 12:29:32 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Interface of the Ecom observer
-*
-*/
-
-#include <ecom/ecom.h>
-#include "mmecomobserver.h"
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CMMEcomObserver::CMMEcomObserver() :
- CActive(EPriorityStandard) // Standard priority
- {
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CMMEcomObserver* CMMEcomObserver::NewLC(
- MHNEcomInstallNotifierCallback* aCallback )
- {
- CMMEcomObserver* self = new ( ELeave ) CMMEcomObserver();
- CleanupStack::PushL(self);
- self->ConstructL( aCallback );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CMMEcomObserver* CMMEcomObserver::NewL(
- MHNEcomInstallNotifierCallback* aCallback )
- {
- CMMEcomObserver* self = CMMEcomObserver::NewLC( aCallback );
- CleanupStack::Pop(); // self;
- return self;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CMMEcomObserver::ConstructL( MHNEcomInstallNotifierCallback* aCallback )
- {
- iCallback = aCallback;
- iSession = &REComSession::OpenL();
- iSession->NotifyOnChange( iStatus );
- CActiveScheduler::Add( this );
- SetActive();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CMMEcomObserver::~CMMEcomObserver()
- {
- Cancel(); // Cancel any request, if outstanding
- if( iSession )
- {
- iSession->Close();
- }
- REComSession::FinalClose( );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CMMEcomObserver::DoCancel()
- {
- iSession->CancelNotifyOnChange( iStatus );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CMMEcomObserver::RunL()
- {
- iCallback->EcomChangedL();
- iSession->NotifyOnChange( iStatus );
- SetActive(); // Tell scheduler a request is active
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CMMEcomObserver::RunError( TInt /*aError*/ )
- {
- return KErrNone;
- }
--- a/menufw/menufwui/mmextensions/mmextensionmanager/src/mmextensionmanager.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmextensions/mmextensionmanager/src/mmextensionmanager.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -45,17 +45,6 @@
delete (CMMExtensionPlugin*)(*ptr);
}
iPluginMap.Close ();
-
-
- //delete iPluginNameMap
- /*THashMapIter< HBufC*, TInt32 > iter1( iPluginNameMap );
- while ( HBufC*const* ptrHbuf = iter1.NextKey() )
- {
- delete *ptrHbuf;
- }
- iPluginNameMap.Close();*/
-
- delete iEcomObserver;
}
// ---------------------------------------------------------------------------
@@ -88,7 +77,6 @@
//
void CMMExtensionManager::ConstructL()
{
- iEcomObserver = CMMEcomObserver::NewL( this );
LoadPluginsL();
}
@@ -179,21 +167,4 @@
return ret;
}
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CMMExtensionManager::EcomChangedL()
- {
- THashMapIter< TInt32, CMMExtensionPlugin* > iter( iPluginMap );
- for (CMMExtensionPlugin* const* ptr =
- ( CMMExtensionPlugin* const* ) iter.NextValue();
- ptr; ptr = ( CMMExtensionPlugin* const* ) iter.NextValue())
- {
- delete (CMMExtensionPlugin*)(*ptr);
- }
- iPluginMap.Close();
- LoadPluginsL();
- }
-
// End of file
--- a/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmDrawerAnimator declaration
-* Version : %version: MM_17.1.8 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_17.1.10 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -154,6 +154,17 @@
*/
void TriggerMoveItemL();
+ /**
+ * Animates transition of the dragged item.
+ * The animation starts in the original place of dragging item,
+ * and end in the EDrag floating item position, when item had been start drag.
+ *
+ * @since S60 v5.0
+ * @param aDraggedIndex Draged item index to be animated.
+ * @param aPoint End position of animated item.
+ */
+ void AnimateDragItemStartL( TInt aDraggedIndex, TPoint aPoint );
+
private:
/**
--- a/menufw/menufwui/mmwidgets/inc/mmgrid.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmgrid.h Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmGrid declaration
-* Version : %version: MM_32.1.24 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_32.1.25 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -131,7 +131,7 @@
* @param aBgContext Background context to be set in view and item drawer.
*/
void SetItemDrawerAndViewBgContext(
- CAknsBasicBackgroundControlContext* aBgContext );
+ CAknsBasicBackgroundControlContext* aBgContext );
/**
* Handles changes in scrollbar visibility.
@@ -362,7 +362,7 @@
* @param aPointerEvent Type of pointer event.
*/
void HandleOverridenHighlightDrawing( const TPointerEvent& aPointerEvent,
- TInt aIndexBefore, TInt aIndexAfter );
+ TInt aIndexBefore, TInt aIndexAfter );
/**
* Ensures that elements are drawn correctly when mirrored layout is
--- a/menufw/menufwui/mmwidgets/inc/mmgridview.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmgridview.h Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmGridView declaration
-* Version : %version: MM_24.1.10 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_24.1.11 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -63,9 +63,9 @@
* @since S60 v3.0
* @param aClipRect Clipping rectangle.
*/
- void Draw( const TRect* aClipRect ) const;
+ void Draw( const TRect* aClipRect ) const;
- /**
+ /**
* Gets item position.
*
* This fuction from @c CAknGridView is overridden so that it
@@ -90,12 +90,12 @@
*/
TBool XYPosToItemIndex(TPoint aPosition, TInt& aItemIndex) const;
- /**
- * Returns this view's gc.
- *
- * @return pointer to gc
- */
- CWindowGc* Gc();
+ /**
+ * Returns this view's gc.
+ *
+ * @return pointer to gc
+ */
+ CWindowGc* Gc();
/**
* @see CAknGridView::UpdateSelectionL
@@ -108,15 +108,15 @@
*/
void UpdateSelectionL( TSelectionMode aSelectionMode );
- /**
- * @see CAknGridView::MoveCursorL
- *
- * This method of CAknGridView is overriden to so that
- * correct effects are displayed when moving highlight with
- * rocker key in mirrored layout.
+ /**
+ * @see CAknGridView::MoveCursorL
+ *
+ * This method of CAknGridView is overriden to so that
+ * correct effects are displayed when moving highlight with
+ * rocker key in mirrored layout.
* Please note that it is necessary because of the hackish
* solution used to draw items in mirrored layout.
- */
+ */
void MoveCursorL( TCursorMovement aCursorMovement,
TSelectionMode aSelectionMode );
@@ -128,10 +128,10 @@
*/
TInt VerticalItemOffset() const;
- /**
- * This function sets item height in pixels.
- * @param aItemHeight New height in pixels for this view’s items.
- */
+ /**
+ * This function sets item height in pixels.
+ * @param aItemHeight New height in pixels for this view’s items.
+ */
void SetItemHeight(TInt aItemHeight);
/**
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxitemdrawer.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxitemdrawer.h Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: CMmListBoxItemDrawer
-* Version : %version: MM_38.1.18 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_38.1.19 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -485,6 +485,17 @@
*/
void DrawBackground( const TRect& aItemTextRect ) const;
+ /**
+ * Animates transition of the dragged item.
+ * The animation starts in the original place of dragging item,
+ * and end in the EDrag floating item position, when item had been start drag.
+ *
+ * @since S60 v5.0
+ * @param aDraggedIndex Draged item index to be animated.
+ * @param aPoint End position of animated item.
+ */
+ void AnimateDragItemStartL( TInt aDraggedIndex, TPoint aPoint );
+
protected:
/**
* From CListItemDrawer. Draws an item.
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_48.1.40 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_48.1.43 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -72,34 +72,34 @@
TMmWidgetPosition();
public: // data
- /**
- * The vertical item offset cache.
- */
- TInt iVerticalItemOffset;
+ /**
+ * The vertical item offset cache.
+ */
+ TInt iVerticalItemOffset;
- /**
- * The top item index cache.
- */
- TInt iTopItemIndex;
+ /**
+ * The top item index cache.
+ */
+ TInt iTopItemIndex;
- /**
- * Tells if the cached values are valid.
- */
- TBool iValid;
+ /**
+ * Tells if the cached values are valid.
+ */
+ TBool iValid;
- /**
- * The mode (portrait/landscape) for which the cache is valid.
- */
- TBool iLandscape;
+ /**
+ * The mode (portrait/landscape) for which the cache is valid.
+ */
+ TBool iLandscape;
- /**
- * Id from model (not index) of the currently highlighted item.
- * It should only be set if the currently highlighted item is
- * visible (fully or partially), otherwise it must remain
- * initialized to KErrNotFound.
- */
- TInt iHighlightedItemId;
- };
+ /**
+ * Id from model (not index) of the currently highlighted item.
+ * It should only be set if the currently highlighted item is
+ * visible (fully or partially), otherwise it must remain
+ * initialized to KErrNotFound.
+ */
+ TInt iHighlightedItemId;
+ };
/**
* Interface for widget containers.
@@ -143,13 +143,13 @@
public: // Highlight related methods
- /**
- * Sets the default highlight.
- *
+ /**
+ * Sets the default highlight.
+ *
* @since S60 v3.0
* @param aRedraw Is highlight to redraw.
- */
- virtual void SetDefaultHighlightL( TBool aRedraw = ETrue ) = 0;
+ */
+ virtual void SetDefaultHighlightL( TBool aRedraw = ETrue ) = 0;
/**
* Sets the highlight.
@@ -158,7 +158,7 @@
* @param aItemIndex Index to set the highlight at.
* @param aRedraw Is highlight to redraw.
*/
- IMPORT_C virtual void SetManualHighlightL(TInt aItemIndex, TBool aRedraw = ETrue );
+ IMPORT_C virtual void SetManualHighlightL(TInt aItemIndex, TBool aRedraw = ETrue );
/**
* Gets the highlight from the widget.
@@ -166,7 +166,7 @@
* @since S60 v3.0
* @return Current Highlight in the widget.
*/
- IMPORT_C virtual TInt GetHighlight();
+ IMPORT_C virtual TInt GetHighlight();
/**
* Gets the highlight from the widget.
@@ -174,7 +174,7 @@
* @since S60 v3.0
* @return Previous Highlight in the widget.
*/
- IMPORT_C virtual TInt GetPreviousHighlight();
+ IMPORT_C virtual TInt GetPreviousHighlight();
/**
* Set highlight visibility.
@@ -182,7 +182,7 @@
* @since S60 v3.0
* @param aVisible Visibility status.
*/
- IMPORT_C virtual void SetHighlightVisibilityL( TBool aVisible );
+ IMPORT_C virtual void SetHighlightVisibilityL( TBool aVisible );
/**
* Set highlight visibility.
@@ -190,14 +190,14 @@
* @since S60 v3.0
* @return Visibility status.
*/
- IMPORT_C virtual TBool IsHighlightVisible();
+ IMPORT_C virtual TBool IsHighlightVisible();
/**
* Handle item addition.
*
* @since S60 v3.0
*/
- IMPORT_C virtual void HandleItemAdditionL();
+ IMPORT_C virtual void HandleItemAdditionL();
/**
@@ -205,14 +205,14 @@
*
* @since S60 v3.0
*/
- IMPORT_C virtual void HandleItemRemovalL();
+ IMPORT_C virtual void HandleItemRemovalL();
/**
* Handle item removal.
*
* @since S60 v3.0
*/
- IMPORT_C CHnSuiteModel* GetSuiteModelL();
+ IMPORT_C CHnSuiteModel* GetSuiteModelL();
/**
* Retrieve type of widget.
@@ -220,40 +220,40 @@
* @since S60 v3.0
* @return Type of widget.
*/
- IMPORT_C virtual THnSuiteWidgetType WidgetType();
+ IMPORT_C virtual THnSuiteWidgetType WidgetType();
- /**
- * Removes all LIW objects owned by this object.
+ /**
+ * Removes all LIW objects owned by this object.
*
* LIW objects owned by non-LIW objects that are owned by
* this object are also removed.
- */
- virtual void RemoveLiwObjects();
+ */
+ virtual void RemoveLiwObjects();
- /**
- * Sets the long tap observer.
+ /**
+ * Sets the long tap observer.
*
* @param aObserver Observer to receive long tap events.
- */
- IMPORT_C virtual void SetLongTapObserver( MMmLongTapObserver* aObserver );
+ */
+ IMPORT_C virtual void SetLongTapObserver( MMmLongTapObserver* aObserver );
- /**
- * Informs the container that long tap event is finished (e.g. because
- * a command from the context menu has been issued).
- *
- * @param aStopTimer ETrue when the highlight timer should be stopped.
- */
- IMPORT_C virtual void EndLongTapL( TBool aStopTimer = ETrue );
+ /**
+ * Informs the container that long tap event is finished (e.g. because
+ * a command from the context menu has been issued).
+ *
+ * @param aStopTimer ETrue when the highlight timer should be stopped.
+ */
+ IMPORT_C virtual void EndLongTapL( TBool aStopTimer = ETrue );
public:
- /**
- * Sets suite model.
- *
- * @since S60 v3.0
- * @param aModel Suite model.
- */
- virtual void SetSuiteModelL( CHnSuiteModel* aModel );
+ /**
+ * Sets suite model.
+ *
+ * @since S60 v3.0
+ * @param aModel Suite model.
+ */
+ virtual void SetSuiteModelL( CHnSuiteModel* aModel );
/**
* Gets Multimedia Menu model.
@@ -261,7 +261,7 @@
* @since S60 v3.0
* @return Model.
*/
- virtual CMmListBoxModel* GetMmModel() = 0;
+ virtual CMmListBoxModel* GetMmModel() = 0;
/**
* Sets widget observer.
@@ -269,7 +269,7 @@
* @since S60 v3.0
* @param aObserver Widget observer.
*/
- IMPORT_C virtual void SetObserver( MMmWidgetObserver* aObserver);
+ IMPORT_C virtual void SetObserver( MMmWidgetObserver* aObserver);
/**
* Gets item rectangle according to item index.
@@ -278,7 +278,7 @@
* @param aItemIndex Item index.
* @return Item rectangle.
*/
- IMPORT_C TRect GetItemRectL( TInt aItemIndex );
+ IMPORT_C TRect GetItemRectL( TInt aItemIndex );
/**
* Sets empty text visible when model has no items.
@@ -286,7 +286,7 @@
* @since S60 v3.0
* @param aText Text to be shown when view is empty.
*/
- virtual void SetEmptyTextL(const TDesC& aText) = 0 ;
+ virtual void SetEmptyTextL(const TDesC& aText) = 0 ;
/**
* Sets flag.
@@ -294,7 +294,7 @@
* @since S60 v3.0
* @param Flag Flag.
*/
- virtual void SetFlag(TInt Flag);
+ virtual void SetFlag(TInt Flag);
/**
* Gets widget.
@@ -302,7 +302,7 @@
* @since S60 v3.0
* @return Widget.
*/
- virtual CEikListBox* Widget();
+ virtual CEikListBox* Widget();
/**
* Sets background context for item drawer and view.
@@ -310,7 +310,7 @@
* @since S60 v3.0
* @param aBgContext Background context.
*/
- virtual void SetItemDrawerAndViewBgContext(
+ virtual void SetItemDrawerAndViewBgContext(
CAknsBasicBackgroundControlContext * aBgContext ) =0;
/**
@@ -693,6 +693,11 @@
*/
IMPORT_C void SetExDialogOpened( TBool aOpened );
+ /**
+ * Widget position cache.
+ */
+ TMmWidgetPosition WidgetPositionCache() const;
+
public: // from MMmVisibilityObserver
/**
@@ -847,11 +852,11 @@
TBool IsFolderL( TInt aItemIndex );
/**
- * Checks, whether given item has IsDeleteLockedL flag set.
- * @param aItemIndex Item index to check.
- * @returns IsDeleteLockedL flag
- */
- TBool IsDeleteLockedL( TInt aItemIndex );
+ * Checks, whether given item has IsDeleteLockedL flag set.
+ * @param aItemIndex Item index to check.
+ * @returns IsDeleteLockedL flag
+ */
+ TBool IsDeleteLocked( TInt aItemIndex );
/**
* Gets column count in current view.
@@ -885,24 +890,24 @@
protected:
- /**
- * Own.
- */
- CEikListBox* iWidget;
+ /**
+ * Own.
+ */
+ CEikListBox* iWidget;
/**
* Key event observer.
*/
- MMmKeyEventObserver* iKeyEventObserver;
+ MMmKeyEventObserver* iKeyEventObserver;
/**
* Drag and drop observer.
*/
- MMmDragAndDropObserver* iDragAndDropObserver;
+ MMmDragAndDropObserver* iDragAndDropObserver;
/**
* List box observer.
*/
- MEikListBoxObserver* iListBoxObserver;
+ MEikListBoxObserver* iListBoxObserver;
/**
* Marquee adapter.
@@ -918,29 +923,28 @@
protected:
- /**
- * Current Highlight.
- */
- TInt iCurrentHighlight;
+ /**
+ * Current Highlight.
+ */
+ TInt iCurrentHighlight;
+
+ /**
+ * Processed display elelments for better performance.
+ */
+ CMmPostEvaluationProcessor* iPostProcessor;
+
+ /**
+ * Set when long tap is in progress (stylus popup displayed over container)
+ */
+ TBool iLongTapInProgress;
+
+private:
/**
* Has drag occurred.
*/
TBool iDragOccured;
- /**
- * Processed display elelments for better performance.
- */
- CMmPostEvaluationProcessor* iPostProcessor;
-
- /**
- * Set when long tap is in progress (stylus popup displayed over container)
- */
- TBool iLongTapInProgress;
-
-private:
-
-
/**
* Background context.
* Own.
@@ -970,7 +974,7 @@
/**
* Dragged item index.
*/
- TBool iDraggedIndex;
+ TInt iDraggedIndex;
/**
* Edit mode status.
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Constants for the matrixmenu
-* Version : %version: 33.1.13 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: 33.1.14 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -424,6 +424,7 @@
EPostDragRefreshItem,
EPostHighlightChangeRefreshItem,
ESwapTransition,
+ EDragStart,
EDragTransition,
EZoomTransition
};
--- a/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
- * Version : %version: MM_41 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: MM_43 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -120,7 +120,9 @@
current.MakeStep();
TRect afterRect( current.GetItemPosition(), itemSize );
- if( current.GetFloatingItemType() == EDrag )
+ if( ( current.GetFloatingItemType() == EDrag
+ && iDrawer.GetFloatingItemIndex( EDragStart ) == KErrNotFound )
+ || current.GetFloatingItemType() == EDragStart )
{
TInt dragTrail = iDrawer.GetFloatingItemIndex( EPostDragRefreshItem );
if( dragTrail != KErrNotFound )
@@ -131,7 +133,9 @@
SetAllowMove( EFalse );
}
}
- else
+ else if( ( current.GetFloatingItemType() == EDrag
+ && iDrawer.GetFloatingItemIndex( EDragStart ) == KErrNotFound )
+ || current.GetFloatingItemType() != EDrag )
{
refreshRect = (refreshRect == TRect() ) ? beforeRect : refreshRect;
refreshRect.BoundingRect( beforeRect );
@@ -149,7 +153,7 @@
}
- TInt currentVerticalOffset = static_cast<CMmWidgetContainer*>(
+ TInt currentVerticalOffset = static_cast<CMmWidgetContainer*>(
iDrawer.Widget()->Parent() )->VerticalItemOffset();
if( iLastNotedTopItem != iDrawer.Widget()->TopItemIndex()
@@ -249,7 +253,7 @@
if( iTransTfxInternal )
{
- iTransTfxInternal->Remove( MAknListBoxTfxInternal::EListEverything );
+ iTransTfxInternal->Remove( MAknListBoxTfxInternal::EListEverything );
iTransTfxInternal->Draw( iDrawer.Widget()->Rect() );
}
}
@@ -277,17 +281,30 @@
//
void CMmDrawerAnimator::AnimateDragItemTransitionL()
{
- if( KErrNotFound != iDrawer.GetFloatingItemIndex( EDrag ) )
+ if( KErrNotFound != iDrawer.GetFloatingItemIndex( EDrag )
+ || KErrNotFound != iDrawer.GetFloatingItemIndex( EDragStart ) )
{
+ TMmFloatingItemType floatingType =
+ iDrawer.GetFloatingItemIndex( EDrag ) != KErrNotFound
+ ? EDrag : EDragStart;
TMmFloatingItem floatingItem(
- iDrawer.GetFloatingItemL( EDrag ).GetDrawnItemIndex(),
- iDrawer.GetFloatingItemL( EDrag ).GetItemPosition(),
- EDragTransition, iUsualAnimationFramesCount,
+ iDrawer.GetFloatingItemL( floatingType ).GetDrawnItemIndex(),
+ iDrawer.GetFloatingItemL( floatingType ).GetItemPosition(),
+ EDragTransition, floatingType == EDrag
+ ? iUsualAnimationFramesCount : MmEffects::KNoAnimationFramesCount,
iDrawer.Widget()->View() );
TPoint pointEnd = iDrawer.Widget()->View()->ItemPos( floatingItem.GetDrawnItemIndex() );
floatingItem.SetPositionStep( pointEnd - floatingItem.GetItemPosition() );
iDrawer.AddFloatingItemL( floatingItem, 0 );
+
+ TMmFloatingItem postDragRefresh(
+ iDrawer.GetFloatingItemL( floatingType ).GetDrawnItemIndex(),
+ pointEnd, EPostDragRefreshItem,
+ MmEffects::KNoAnimationFramesCount, iDrawer.Widget()->View() );
+ iDrawer.AddFloatingItemL( postDragRefresh );
+
iDrawer.RemoveFloatingItem( iDrawer.GetFloatingItemIndex( EDrag ) );
+ iDrawer.RemoveFloatingItem( iDrawer.GetFloatingItemIndex( EDragStart ) );
}
}
@@ -429,4 +446,20 @@
static_cast<CMmWidgetContainer*> ( iDrawer.Widget()->Parent() )->
TriggerMoveItemL();
}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMmDrawerAnimator::AnimateDragItemStartL( TInt aDraggedIndex, TPoint aPoint )
+ {
+ TMmFloatingItem floatingItem(
+ aDraggedIndex,
+ iDrawer.Widget()->View()->ItemPos( aDraggedIndex ),
+ EDragStart,
+ MmEffects::KUsualAnimationFramesCountNonTouch,
+ iDrawer.Widget()->View() );
+ floatingItem.SetPositionStep( aPoint - floatingItem.GetItemPosition() );
+ iDrawer.AddFloatingItemL( floatingItem, 0 );
+ }
//End of file
--- a/menufw/menufwui/mmwidgets/src/mmfloatingitem.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmfloatingitem.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -22,15 +22,15 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
TMmFloatingItem::TMmFloatingItem( TInt aDrawnIndex, TPoint aStartPosition,
- TMmFloatingItemType aType, TInt aAnimationFrames, CListBoxView* aView )
+ TMmFloatingItemType aType, TInt aAnimationFrames, CListBoxView* aView )
{
iView = aView;
iSizeStep = 0;
iZoomRatio = 1;
iManualDelete = EFalse;
-
+
if ( iView )
{
// item position is relative
@@ -52,7 +52,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
void TMmFloatingItem::SetPositionStep( TPoint aDiffetenceVector )
{
ASSERT( iFrames );
@@ -62,35 +62,35 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
-void TMmFloatingItem::CalculateSteps(TPoint aVector)
+//
+void TMmFloatingItem::CalculateSteps(TPoint aVector)
{
iPositionStep.Reset();
TReal x = aVector.iX;
TReal y = aVector.iY;
-
+
TReal sx = 0.0;
TReal sy = 0.0;
-
+
for( TInt i = 0; i < iFrames; i++ )
- {
- TReal sin;
- Math::Sin( sin, (i+1) * KPi/iFrames + KPi * 3./2. );
- TReal xx = x * (0.5*( sin + 1.0 ) ) - sx;
- TReal yy = y * (0.5*( sin + 1.0 ) ) - sy;
-
- sx += xx;
- sy += yy;
-
- iPositionStep.At(i) = TPoint( xx, yy );
- }
+ {
+ TReal sin;
+ Math::Sin( sin, (i+1) * KPi/iFrames + KPi * 3./2. );
+ TReal xx = x * (0.5*( sin + 1.0 ) ) - sx;
+ TReal yy = y * (0.5*( sin + 1.0 ) ) - sy;
+
+ sx += xx;
+ sy += yy;
+
+ iPositionStep.At(i) = TPoint( xx, yy );
+ }
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
void TMmFloatingItem::SetSizeStep( TReal aStartSize, TReal aFinalSize )
{
ASSERT( iFrames );
@@ -103,32 +103,32 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
-TBool TMmFloatingItem::MakeStep()
+//
+TBool TMmFloatingItem::MakeStep()
{
TBool ret(EFalse);
-
- if(iFrameCounter >= iFrames && iManualDelete == EFalse)
+
+ if( iFrameCounter >= iFrames && iManualDelete == EFalse )
{
InvalidateFloatingItem();
}
- else if (iFrameCounter < iFrames)
+ else if( iFrameCounter < iFrames )
{
iItemPosition += iPositionStep[iFrameCounter];
iZoomRatio += iSizeStep;
- ret = Abs(iPositionStep[iFrameCounter].iX) > 0
- || Abs(iPositionStep[iFrameCounter].iY > 0)
- || Abs(iSizeStep) > 0;
- iFrameCounter++;
+ ret = Abs(iPositionStep[iFrameCounter].iX) > 0
+ || Abs(iPositionStep[iFrameCounter].iY > 0)
+ || Abs(iSizeStep) > 0;
+ iFrameCounter++;
}
-
+
return ret;
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
void TMmFloatingItem::SetManualDelete(TBool aManual)
{
iManualDelete = aManual;
@@ -137,7 +137,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
TReal TMmFloatingItem::GetCurrentZoomRatio() const
{
return iZoomRatio;
@@ -146,7 +146,7 @@
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
-//
+//
TMmFloatingItemType TMmFloatingItem::GetFloatingItemType() const
{
return iType;
@@ -180,9 +180,9 @@
TBool TMmFloatingItem::IsFloatingItemValid() const
{
- return GetDrawnItemIndex() != KErrNotFound
- && iType != EPostDragRefreshItem
- && iType != EPostHighlightChangeRefreshItem;
+ return GetDrawnItemIndex() != KErrNotFound
+ && iType != EPostDragRefreshItem
+ && iType != EPostHighlightChangeRefreshItem;
}
TBool TMmFloatingItem::IsManualDelete()
--- a/menufw/menufwui/mmwidgets/src/mmgrid.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmgrid.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_104 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_106 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -293,19 +293,19 @@
if ( CurrentItemIndex() != itemUnderPointerIndex )
{
CMmWidgetContainer* parent = static_cast<CMmWidgetContainer*>( Parent() );
- if ( parent->IsNoItemDragged() )
- {
- if ( ItemDrawer()->Flags() & CListItemDrawer::EPressedDownState )
- {
- ItemDrawer()->ClearFlags( CListItemDrawer::EPressedDownState );
- iView->DrawItem( CurrentItemIndex() );
- }
- }
- else
- {
- iView->SetCurrentItemIndex( itemUnderPointerIndex );
- iView->DrawItem(itemUnderPointerIndex);
- }
+ if ( parent->IsNoItemDragged() )
+ {
+ if ( ItemDrawer()->Flags() & CListItemDrawer::EPressedDownState )
+ {
+ ItemDrawer()->ClearFlags( CListItemDrawer::EPressedDownState );
+ iView->DrawItem( CurrentItemIndex() );
+ }
+ }
+ else
+ {
+ iView->SetCurrentItemIndex( itemUnderPointerIndex );
+ iView->DrawItem(itemUnderPointerIndex);
+ }
}
}
@@ -697,12 +697,6 @@
topRow = Min( topRow, maxPossibleTopRow );
SetTopItemIndex( topRow * numOfCols );
}
- else if( ( (CMmWidgetContainer* ) Parent() )->IsEditMode()
- && ( Abs(maxPossibleTopRow - topRow) == 1) // prevention scrolling both scrollbar and view too much rows
- && !View()->ItemIsPartiallyVisible(TopItemIndex())) // prevention scrolling view during remove item via menu
- {
- SetTopItemIndex( maxPossibleTopRow * numOfCols );
- }
// prevent problems with view being scrolled up beyond limits
if ( topRow == maxPossibleTopRow && VerticalItemOffset() < 0 )
@@ -815,6 +809,12 @@
TBool visibilityChanged = HandleScrollbarVisibilityChangeL();
if (ScrollBarFrame()->VerticalScrollBar()->IsVisible())
{
+ CMmWidgetContainer* widget = static_cast< CMmWidgetContainer* >(Parent());
+ if( widget->IsEditMode() && widget->WidgetPositionCache().iValid )
+ {
+ static_cast<CMmGridView*> ( View() )->SetItemOffsetInPixels(
+ widget->WidgetPositionCache().iVerticalItemOffset );
+ }
CAknGrid::UpdateScrollBarsL();
}
iCurrentTopItemIndex = TopItemIndex();
@@ -1017,9 +1017,9 @@
// -----------------------------------------------------------------------------
//
void CMmGrid::UpdateScrollBarThumbs()
- {
- CAknGrid::UpdateScrollBarThumbs();
- }
+ {
+ CAknGrid::UpdateScrollBarThumbs();
+ }
// -----------------------------------------------------------------------------
//
--- a/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,8 +12,8 @@
* Contributors:
*
* Description:
-* Version : %version: MM_75 % << Don't touch! Updated by Synergy at check-out.
-* Version : %version: MM_75 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_76 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_76 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -266,10 +266,6 @@
void CMmGridContainer::SetSuiteModelL( CHnSuiteModel* aModel )
{
CMmWidgetContainer::SetSuiteModelL( aModel );
- if ( aModel )
- {
- aModel->SetActiveL( !AknLayoutUtils::PenEnabled() );
- }
}
// -----------------------------------------------------------------------------
--- a/menufw/menufwui/mmwidgets/src/mmgridview.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmgridview.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -227,19 +227,19 @@
CMmListBoxItemDrawer* itemDrawer = static_cast< CMmListBoxItemDrawer*> ( ItemDrawer() );
TBool drawingInitiated(EFalse);
if ( CAknEnv::Static()->TransparencyEnabled() &&
- iWin && iWin->GetDrawRect() == TRect::EUninitialized )
- {
- TRect a;
- if (!aClipRect || *aClipRect == TRect(0,0,0,0) )
- {
- a = ViewRect();
- aClipRect = &a;
- }
+ iWin && iWin->GetDrawRect() == TRect::EUninitialized )
+ {
+ TRect a;
+ if (!aClipRect || *aClipRect == TRect(0,0,0,0) )
+ {
+ a = ViewRect();
+ aClipRect = &a;
+ }
- drawingInitiated=ETrue;
- iWin->Invalidate( *aClipRect );
- iWin->BeginRedraw( *aClipRect );
- }
+ drawingInitiated=ETrue;
+ iWin->Invalidate( *aClipRect );
+ iWin->BeginRedraw( *aClipRect );
+ }
if ( !itemDrawer->IsEditMode() )
{
@@ -253,18 +253,18 @@
CAknGridView::Draw( aClipRect );
}
- if ( aClipRect )
- {
- TRect rect(*aClipRect);
- TInt lastItemInView = (iModel->NumberOfItems() <= BottomItemIndex() )
- ? iModel->NumberOfItems()-1 : BottomItemIndex();
- rect.iTl.iY = ItemPos( lastItemInView ).iY + ItemSize( lastItemInView ).iHeight;
+ if ( aClipRect )
+ {
+ TRect rect(*aClipRect);
+ TInt lastItemInView = (iModel->NumberOfItems() <= BottomItemIndex() )
+ ? iModel->NumberOfItems()-1 : BottomItemIndex();
+ rect.iTl.iY = ItemPos( lastItemInView ).iY + ItemSize( lastItemInView ).iHeight;
// iGc->SetClippingRect( rect );
// removed to prevent non-redraw drawing. Was present to prevent out of view drawing when effects are on.
// could be removed because effects were disabled at some point in edit mode to enhance performance.
- itemDrawer->DrawFloatingItems( rect );
+ itemDrawer->DrawFloatingItems( rect );
// iGc->CancelClippingRect();
- }
+ }
// if (aClipRect)
// {
@@ -272,36 +272,36 @@
// }
if ( CAknEnv::Static()->TransparencyEnabled() &&
- iWin && drawingInitiated )
- {
- drawingInitiated = EFalse;
- iWin->EndRedraw( );
- }
+ iWin && drawingInitiated )
+ {
+ drawingInitiated = EFalse;
+ iWin->EndRedraw( );
+ }
- }
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
TInt CMmGridView::VerticalItemOffset() const
- {
- return iVerticalOffset;
- }
+ {
+ return iVerticalOffset;
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CMmGridView::SetItemHeight(TInt aItemHeight)
- {
- // we need to update the iItemHeight member in grid also (there are two different item height value holders - in grid and here in grid view)
- CMmListBoxItemDrawer* itemDrawer =
- STATIC_CAST( CMmListBoxItemDrawer*, ItemDrawer() );
- static_cast<CMmGrid*>(itemDrawer->Widget())->SetItemHeight( aItemHeight );
+ {
+ // we need to update the iItemHeight member in grid also (there are two different item height value holders - in grid and here in grid view)
+ CMmListBoxItemDrawer* itemDrawer =
+ STATIC_CAST( CMmListBoxItemDrawer*, ItemDrawer() );
+ static_cast<CMmGrid*>(itemDrawer->Widget())->SetItemHeight( aItemHeight );
- CAknGridView::SetItemHeight(aItemHeight);
- }
+ CAknGridView::SetItemHeight(aItemHeight);
+ }
// -----------------------------------------------------------------------------
//
--- a/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_65 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_66 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -226,8 +226,6 @@
void CMmListBoxContainer::SetSuiteModelL( CHnSuiteModel* aModel )
{
CMmWidgetContainer::SetSuiteModelL( aModel );
- // highlight always active
- aModel->SetActiveL( ETrue );
iMarqueeAdapter->StopMarqueeDrawing();
}
--- a/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -317,13 +317,21 @@
iZoomIconIndex = iFloatingItems[i].GetDrawnItemIndex();
iIconAnimationZoomRatio = iFloatingItems[i].GetCurrentZoomRatio();
- if ( ItemHasFloatingType( drawnItemIndex, EDrag) ||
- ItemHasFloatingType( drawnItemIndex, EDragTransition) )
+ if ( ItemHasFloatingType( drawnItemIndex, EDrag)
+ || ItemHasFloatingType( drawnItemIndex, EDragTransition)
+ || ItemHasFloatingType( drawnItemIndex, EDragStart ) )
{
ClearFlags( CListItemDrawer::EPressedDownState );
}
type == ESwapTransition ? iIsSwapFloating = ETrue : iIsSwapFloating = EFalse;
- DrawActualItem( drawnItemIndex, rect, ETrue, EFalse, EFalse, EFalse );
+ if( ( type == EDrag && !ItemHasFloatingType( drawnItemIndex, EDragStart ) )
+ || ( type != EDragTransition && type != EDrag
+ && !ItemHasFloatingType( drawnItemIndex, EDragTransition ) )
+ || ( type == EDragTransition )
+ )
+ {
+ DrawActualItem( drawnItemIndex, rect, ETrue, EFalse, EFalse, EFalse );
+ }
iIconAnimationZoomRatio = tempZoomRatio;
iZoomIconIndex = tempZoomIconIndex;
}
@@ -600,6 +608,17 @@
//
// -----------------------------------------------------------------------------
//
+void CMmListBoxItemDrawer::AnimateDragItemStartL( TInt aDraggedIndex,
+ TPoint aPoint )
+ {
+ iAnimator->AnimateDragItemStartL( aDraggedIndex, aPoint );
+ iAnimator->Trigger();
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
void CMmListBoxItemDrawer::SetupSubNoCellL( TInt aIndex,
TInt aItemIndex ) const
{
@@ -739,7 +758,7 @@
//
TInt CMmListBoxItemDrawer::GetFloatingItemCount()
{
- for( TInt i = 0; i < iFloatingItems.Count(); i++ )
+ for( TInt i( iFloatingItems.Count() - 1 ); i >= 0; i-- )
{
TMmFloatingItem& current = GetFloatingItemAtIndex( i );
if( current.GetDrawnItemIndex() == KErrNotFound )
@@ -935,22 +954,36 @@
// -----------------------------------------------------------------------------
//
void CMmListBoxItemDrawer::SetDraggedPointL( TPoint aPoint )
- {
- TInt dragFloatingItem = GetFloatingItemIndex(EDrag);
- if (dragFloatingItem != KErrNotFound )
{
- TMmFloatingItem & item = GetFloatingItemAtIndex( dragFloatingItem );
- TMmFloatingItem floatingItem( item.GetDrawnItemIndex(),
- aPoint, EDrag, MmEffects::KNoAnimationFramesCount, NULL );
- floatingItem.SetManualDelete( ETrue );
+ TInt dragFloatingItem = GetFloatingItemIndex( EDragStart );
+ if( KErrNotFound != dragFloatingItem )
+ {
+ TMmFloatingItem & item = GetFloatingItemAtIndex( dragFloatingItem );
+ TMmFloatingItem postDragRefresh( item.GetDrawnItemIndex(),
+ item.GetItemPosition(), EPostDragRefreshItem,
+ MmEffects::KNoAnimationFramesCount, iWidget->View() );
+ if( postDragRefresh.GetItemPosition() != aPoint )
+ {
+ iFloatingItems.Append( postDragRefresh );
+ }
+ }
- TMmFloatingItem postDragRefresh( item.GetDrawnItemIndex(),
+ if( dragFloatingItem == KErrNotFound
+ && ( dragFloatingItem = GetFloatingItemIndex( EDrag ) )
+ != KErrNotFound )
+ {
+ TMmFloatingItem & item = GetFloatingItemAtIndex( dragFloatingItem );
+ TMmFloatingItem floatingItem( item.GetDrawnItemIndex(),
+ aPoint, EDrag, MmEffects::KNoAnimationFramesCount, NULL );
+ floatingItem.SetManualDelete( ETrue );
+
+ TMmFloatingItem postDragRefresh( item.GetDrawnItemIndex(),
item.GetItemPosition(), EPostDragRefreshItem,
MmEffects::KNoAnimationFramesCount, iWidget->View() );
iFloatingItems.Remove( dragFloatingItem );
- if (postDragRefresh.GetItemPosition() != floatingItem.GetItemPosition())
+ if (postDragRefresh.GetItemPosition() != floatingItem.GetItemPosition())
{
iFloatingItems.Append( postDragRefresh );
}
@@ -968,10 +1001,12 @@
TInt dragFloatingItem = KErrNotFound;
do
{
- dragFloatingItem = GetFloatingItemIndex( EDrag );
+ dragFloatingItem = GetFloatingItemIndex( EDragStart );
+ if( dragFloatingItem == KErrNotFound )
+ dragFloatingItem = GetFloatingItemIndex( EDrag );
if( dragFloatingItem != KErrNotFound )
{
- TMmFloatingItem & item = GetFloatingItemAtIndex( dragFloatingItem );
+ TMmFloatingItem & item = GetFloatingItemAtIndex( dragFloatingItem );
TMmFloatingItem postDragRefresh( item.GetDrawnItemIndex(),
item.GetItemPosition(), EPostDragRefreshItem,
@@ -981,12 +1016,11 @@
{
iFloatingItems.Append( postDragRefresh );
}
+ if( item.GetFloatingItemType() == EDrag )
+ RemoveFloatingItem( dragFloatingItem );
}
-
- RemoveFloatingItem( dragFloatingItem );
-
}
- while( dragFloatingItem != KErrNotFound );
+ while( GetFloatingItemIndex( EDrag ) != KErrNotFound );
if( aDraggedItemIndex != KErrNotFound )
{
@@ -995,6 +1029,11 @@
floatingItem.SetManualDelete( ETrue );
AddFloatingItemL( floatingItem, 0 );
+ TMmFloatingItem postDragRefresh( aDraggedItemIndex,
+ iWidget->View()->ItemPos( aDraggedItemIndex ), EPostDragRefreshItem,
+ MmEffects::KNoAnimationFramesCount, iWidget->View() );
+ AddFloatingItemL( postDragRefresh );
+
ClearFlags( CListItemDrawer::EPressedDownState );
}
@@ -1523,6 +1562,10 @@
{
index = GetFloatingItemIndex( EDragTransition );
}
+ if( index == KErrNotFound )
+ {
+ index = GetFloatingItemIndex( EDragStart );
+ }
if( KErrNotFound != index )
{
@@ -1564,8 +1607,9 @@
if( !iItemHasBackdrop && !iLeftOverAreaUnderAnimatedItem ) //never draw highlight when item has backdrop or when left over area under animated item
{
TBool currentlyDraggedItem =
- ItemHasFloatingType( aItemIndex, EDrag ) ||
- ItemHasFloatingType( aItemIndex, EDragTransition );
+ ItemHasFloatingType( aItemIndex, EDrag )
+ || ItemHasFloatingType( aItemIndex, EDragTransition )
+ || ItemHasFloatingType( aItemIndex, EDragStart );
if( ( STATIC_CAST(CMmWidgetContainer*,Widget()->Parent())->IsHighlightVisible()
&& aItemIsCurrent && aAllowHighlightForNonDraggedItem )
@@ -1585,8 +1629,9 @@
TBool aItemIsCurrent ) const
{
TBool currentlyDraggedItem =
- ItemHasFloatingType( aItemIndex, EDrag ) ||
- ItemHasFloatingType( aItemIndex, EDragTransition );
+ ItemHasFloatingType( aItemIndex, EDrag )
+ || ItemHasFloatingType( aItemIndex, EDragTransition )
+ || ItemHasFloatingType( aItemIndex, EDragStart );
return IsEditMode() /* draw the backdrop only in edit mode */
&& !currentlyDraggedItem /* backdrop is disabled for dragged items */
--- a/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
- * Version : %version: MM_53 % << Don't touch! Updated by Synergy at check-out.
+ * Version : %version: MM_54 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -199,29 +199,29 @@
// -----------------------------------------------------------------------------
//
void CMmListBoxView::Draw (const TRect* aClipRect) const
- {
+ {
TBool drawingInitiated(EFalse);
if ( CAknEnv::Static()->TransparencyEnabled() &&
- iWin && iWin->GetDrawRect() == TRect::EUninitialized )
+ iWin && iWin->GetDrawRect() == TRect::EUninitialized )
{
TRect a(ViewRect());
if (!aClipRect || *aClipRect == TRect(0,0,0,0) )
- {
- aClipRect = &a;
- }
+ {
+ aClipRect = &a;
+ }
drawingInitiated=ETrue;
- iWin->Invalidate( *aClipRect );
- iWin->BeginRedraw( *aClipRect );
+ iWin->Invalidate( *aClipRect );
+ iWin->BeginRedraw( *aClipRect );
}
- DoDraw(aClipRect);
+ DoDraw(aClipRect);
- CMmListBoxItemDrawer* itemDrawer =
- static_cast<CMmListBoxItemDrawer*>(iItemDrawer );
- if (aClipRect)
+ CMmListBoxItemDrawer* itemDrawer =
+ static_cast<CMmListBoxItemDrawer*>(iItemDrawer );
+ if( aClipRect )
{
TRect rect(*aClipRect);
- rect.iTl.iY = ItemPos( BottomItemIndex() ).iY + ItemSize( BottomItemIndex() ).iHeight;
+ rect.iTl.iY = ItemPos( BottomItemIndex() ).iY;
// iGc->SetClippingRect( rect );
// removed to prevent non-redraw drawing. Was present to prevent out of view drawing when effects are on.
@@ -232,76 +232,76 @@
if ( CAknEnv::Static()->TransparencyEnabled() &&
iWin && drawingInitiated )
- {
- drawingInitiated = EFalse;
- iWin->EndRedraw( );
- }
- }
+ {
+ drawingInitiated = EFalse;
+ iWin->EndRedraw( );
+ }
+ }
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CMmListBoxView::DoDraw(const TRect* aClipRect) const
- {
- CMmListBoxView* view= CONST_CAST( CMmListBoxView*, this );
- view->UpdateAverageItemHeight ();
+ {
+ CMmListBoxView* view= CONST_CAST( CMmListBoxView*, this );
+ view->UpdateAverageItemHeight ();
- CMmListBoxModel* model = static_cast< CMmListBoxModel* > ( iModel );
- if ( model && model->GetSuiteModel()
- && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow() )
- {
- return;
- }
+ CMmListBoxModel* model = static_cast< CMmListBoxModel* > ( iModel );
+ if ( model && model->GetSuiteModel()
+ && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow() )
+ {
+ return;
+ }
- if ( RedrawDisabled () || !IsVisible () )
- {
- return;
- }
+ if ( RedrawDisabled () || !IsVisible () )
+ {
+ return;
+ }
- TInt i = iTopItemIndex;
- CMmListBoxItemDrawer* itemDrawer =
- static_cast<CMmListBoxItemDrawer*>(iItemDrawer );
- MAknsSkinInstance *skin = AknsUtils::SkinInstance ();
- CCoeControl* control = itemDrawer->FormattedCellData()->Control ();
- MAknsControlContext *cc = AknsDrawUtils::ControlContext (control);
+ TInt i = iTopItemIndex;
+ CMmListBoxItemDrawer* itemDrawer =
+ static_cast<CMmListBoxItemDrawer*>(iItemDrawer );
+ MAknsSkinInstance *skin = AknsUtils::SkinInstance ();
+ CCoeControl* control = itemDrawer->FormattedCellData()->Control ();
+ MAknsControlContext *cc = AknsDrawUtils::ControlContext (control);
- if ( !cc)
- {
- cc = itemDrawer->FormattedCellData()->SkinBackgroundContext ();
- }
+ if ( !cc)
+ {
+ cc = itemDrawer->FormattedCellData()->SkinBackgroundContext ();
+ }
- itemDrawer->SetTopItemIndex (iTopItemIndex);
+ itemDrawer->SetTopItemIndex (iTopItemIndex);
- if ( iModel->NumberOfItems () > 0)
- {
- TBool drawingInitiated = ETrue;
- if ( CAknEnv::Static()->TransparencyEnabled () )
- {
- if ( iWin && iWin->GetDrawRect () == TRect::EUninitialized)
+ if ( iModel->NumberOfItems () > 0)
{
+ TBool drawingInitiated = ETrue;
+ if ( CAknEnv::Static()->TransparencyEnabled () )
+ {
+ if ( iWin && iWin->GetDrawRect () == TRect::EUninitialized)
+ {
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal* transApi =
- CAknListLoader::TfxApiInternal( iGc );
+ CAknListLoader::TfxApiInternal( iGc );
drawingInitiated = transApi && !transApi->EffectsDisabled();
#else
- drawingInitiated = EFalse;
+ drawingInitiated = EFalse;
#endif
- }
+ }
- if ( !drawingInitiated)
- {
- iWin->Invalidate ( *aClipRect);
- iWin->BeginRedraw ( *aClipRect);
- }
- }
+ if ( !drawingInitiated)
+ {
+ iWin->Invalidate ( *aClipRect);
+ iWin->BeginRedraw ( *aClipRect);
+ }
+ }
- TInt lastPotentialItemIndex = Min( iModel->NumberOfItems(),
+ TInt lastPotentialItemIndex = Min( iModel->NumberOfItems(),
iTopItemIndex + NumberOfItemsThatFitInRect( ViewRect() ) );
- if ( !itemDrawer->IsEditMode() )
- {
- itemDrawer->DrawBackground( ViewRect() );
+ if ( !itemDrawer->IsEditMode() )
+ {
+ itemDrawer->DrawBackground( ViewRect() );
itemDrawer->SetRedrawItemBackground( EFalse );
itemDrawer->SetDrawSeparatorLines( ETrue );
while (i < lastPotentialItemIndex)
@@ -310,26 +310,26 @@
}
itemDrawer->SetRedrawItemBackground( ETrue );
itemDrawer->SetDrawSeparatorLines( EFalse );
- }
- else
- {
- while (i < lastPotentialItemIndex)
+ }
+ else
+ {
+ while (i < lastPotentialItemIndex)
{
DrawItem(i++);
}
// this redraws background in the view portion not covered by items
- RedrawBackground();
- }
+ RedrawBackground();
+ }
- if ( CAknEnv::Static()->TransparencyEnabled () && !drawingInitiated)
- {
- iWin->EndRedraw ();
- }
+ if ( CAknEnv::Static()->TransparencyEnabled () && !drawingInitiated)
+ {
+ iWin->EndRedraw ();
+ }
+ }
+
}
- }
-
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
@@ -490,24 +490,24 @@
// -----------------------------------------------------------------------------
//
void CMmListBoxView::RedrawBackground (TRect aUsedPortionOfViewRect,
- TRect aSmallerViewRect) const
- {
+ TRect aSmallerViewRect) const
+ {
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal(iGc);
+ MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal(iGc);
if (transApi)
{
transApi->StartDrawing(MAknListBoxTfxInternal::EListView);
}
#endif
- CMmListBoxItemDrawer* itemDrawer = STATIC_CAST( CMmListBoxItemDrawer*, iItemDrawer );
+ CMmListBoxItemDrawer* itemDrawer = STATIC_CAST( CMmListBoxItemDrawer*, iItemDrawer );
MAknsSkinInstance *skin = AknsUtils::SkinInstance();
CCoeControl* control = itemDrawer->FormattedCellData()->Control();
MAknsControlContext *cc = AknsDrawUtils::ControlContext(control);
- if (control)
+ if (control)
{
- AknsDrawUtils::BackgroundBetweenRects(skin, cc, control, *iGc,
+ AknsDrawUtils::BackgroundBetweenRects( skin, cc, control, *iGc,
aSmallerViewRect, aUsedPortionOfViewRect);
}
else
@@ -518,7 +518,7 @@
}
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if (transApi)
+ if( transApi )
{
transApi->StopDrawing();
}
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Tue May 25 12:29:32 2010 +0300
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Version : %version: MM_71.1.17.1.65 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: MM_71.1.17.1.70 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -101,6 +101,7 @@
CMmWidgetContainer::CMmWidgetContainer()
: iMarqueeAdapter( NULL )
, iLongTapInProgress( EFalse )
+ , iDragOccured( EFalse )
, iBgContext( NULL )
, iIsFaded( EFalse )
, iHasFocus( ETrue )
@@ -141,7 +142,7 @@
// cancel longTap timer, avoid showing popupmenu
if( !aEnable )
{
- iLongTapDetector->PointerEventL( TPointerEvent() );
+ TRAP_IGNORE( iLongTapDetector->PointerEventL( TPointerEvent() ) );
}
}
}
@@ -210,7 +211,7 @@
iLastDragPoint = aPointerEvent.iPosition;
iLastDragHighlight = GetHighlight();
if( !iWidget->View()->XYPosToItemIndex(
- aPointerEvent.iPosition, iDraggedIndex ) )
+ aPointerEvent.iPosition, iDraggedIndex ) )
{
iDraggedIndex = KErrNotFound;
}
@@ -252,7 +253,7 @@
iDialogOpened = EFalse;
if(highlightVisibleBefore != iHighlightVisibleBeforeLongTap)
{
- SetHighlightVisibilityL( iHighlightVisibleBeforeLongTap);
+ TRAP_IGNORE( SetHighlightVisibilityL( iHighlightVisibleBeforeLongTap) );
}
highlightVisibleBefore = iHighlightVisibleBeforeLongTap;
}
@@ -312,39 +313,57 @@
{
iDragAndDropObserver->HandleDragOverL( GetHighlight() );
}
-
+
+ TPoint centerPoint( aPointerEvent.iPosition );
+ if( WidgetType() == EGridWidget )
+ { // move item's TL corner by half width/height to center item horizontally.
+ centerPoint.iX -= ( iWidget->View()->ItemSize( highlight ).iWidth / 2 );
+ centerPoint.iY -= ( iWidget->View()->ItemSize( highlight ).iHeight / 2 );
+ }
+ else
+ { // move item's T of corner by relative tap point to align left horizontally.
+ centerPoint.iX -= iItemRelativeTapPoint.iX;
+ // move item's L of corner by half height to center item horizontally.
+ centerPoint.iY -= ( iWidget->View()->ItemSize( highlight ).iHeight / 2 );
+ }
+
if( !tooFast )
{
TSize itemSize = iWidget->View()->ItemSize( highlight );
- TPoint itemPos = iWidget->View()->ItemPos( highlight );
+ TPoint itemPos = iWidget->View()->ItemPos( highlight );
- if ( PointInItemReorderAreaL( highlight, aPointerEvent.iPosition ) )
- {
- CHnSuiteModel* model = GetMmModel()->GetSuiteModel();
- CHnItemModel* onItemModel = model->GetItemModel( model->IdByIndex( highlight ));
- if (iDrawer->GetAnimator()->IsReadyForNewAnimation() && !aAbortAnimation
- && onItemModel->GetItemType() != EItemTypeParentFolder
- && iDraggedIndex != highlight)
+ if ( PointInItemReorderAreaL( highlight, aPointerEvent.iPosition ) )
{
- GetMmModel()->ReorderModelL( iDraggedIndex, highlight );
- AnimateShiftL( highlight );
- iDrawer->SetDraggedIndexL( highlight,
- aPointerEvent.iPosition - iItemRelativeTapPoint );
- iDraggedIndex = highlight;
- iDragAndDropObserver->HandleDraggedIndexUpdatedL( highlight );
+ CHnSuiteModel* model = GetMmModel()->GetSuiteModel();
+ CHnItemModel* onItemModel = model->GetItemModel( model->IdByIndex( highlight ));
+ if( iDrawer->GetAnimator()->IsReadyForNewAnimation() && !aAbortAnimation
+ && onItemModel->GetItemType() != EItemTypeParentFolder
+ && iDraggedIndex != highlight )
+ {
+ GetMmModel()->ReorderModelL( iDraggedIndex, highlight );
+ AnimateShiftL( highlight );
+ iDrawer->SetDraggedIndexL( highlight, centerPoint );
+ iDraggedIndex = highlight;
+ iDragAndDropObserver->HandleDraggedIndexUpdatedL( highlight );
+ }
}
- }
- }
+ }
+
+
- if ( DeltaSquare( iTapPoint, aPointerEvent.iPosition ) > KDragDelta &&
- !iDrawer->IsDraggable() )
- {
- iDrawer->SetDraggedIndexL( iDraggedIndex, iTapPoint - iItemRelativeTapPoint );
+ if ( DeltaSquare( iTapPoint, aPointerEvent.iPosition ) > KDragDelta
+ && !iDrawer->IsDraggable() )
+ {
+ if( !tooFast )
+ {
+ iDrawer->AnimateDragItemStartL( iDraggedIndex, centerPoint );
+ }
+ iDrawer->SetDraggedIndexL( iDraggedIndex, centerPoint );
iDrawer->SetDraggableL( ETrue );
}
else if( iDrawer->IsDraggable() )
{
- iDrawer->SetDraggedPointL( aPointerEvent.iPosition - iItemRelativeTapPoint );
+ iDrawer->SetDraggedPointL( centerPoint );
}
DEBUG(("\t_Mm_:CMmWidgetContainer::HandleDragL: iLastDragHighlight = %d ", iLastDragHighlight ));
@@ -393,13 +412,16 @@
iDrawer->SetDraggedIndexL( iDraggedIndex, TPoint( 0, 0 ) );
SetDraggableL( EFalse );
- TInt dragFloatingItem;
+ TInt dragFloatingItem( KErrNotFound );
+ TInt dragStartFloatingItem( KErrNotFound );
do
{
dragFloatingItem = iDrawer->GetFloatingItemIndex( EDrag );
iDrawer->RemoveFloatingItem( dragFloatingItem );
+ dragStartFloatingItem = iDrawer->GetFloatingItemIndex( EDragStart );
+ iDrawer->RemoveFloatingItem( dragStartFloatingItem );
}
- while( dragFloatingItem != KErrNotFound );
+ while( dragFloatingItem != KErrNotFound || dragStartFloatingItem != KErrNotFound);
}
@@ -435,14 +457,14 @@
TBool CMmWidgetContainer::IsNoItemDragged()
{
TBool noItemDragged = EFalse;
- noItemDragged = ( KErrNotFound == iDraggedIndex ) ? ETrue : noItemDragged;
+ noItemDragged = ( KErrNotFound == iDraggedIndex ) ? ETrue : noItemDragged;
CHnSuiteModel* model = GetMmModel()->GetSuiteModel();
if( !noItemDragged && model )
{
- CHnItemModel* onItemModel = model->GetItemModel( model->IdByIndex( iDraggedIndex ));
+ CHnItemModel* onItemModel = model->GetItemModel( model->IdByIndex( iDraggedIndex ));
if( onItemModel )
{
- noItemDragged = ( onItemModel->GetItemType() == EItemTypeParentFolder );
+ noItemDragged = ( onItemModel->GetItemType() == EItemTypeParentFolder );
}
}
return noItemDragged;
@@ -553,7 +575,16 @@
//
// -----------------------------------------------------------------------------
//
-TBool CMmWidgetContainer::IsDeleteLockedL( TInt aItemIndex )
+TMmWidgetPosition CMmWidgetContainer::WidgetPositionCache() const
+ {
+ return iWidgetPositionCache;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+TBool CMmWidgetContainer::IsDeleteLocked( TInt aItemIndex )
{
TBool result = ETrue;
@@ -595,7 +626,7 @@
{
if( GetHighlight() != iDraggedIndex
&& IsFolderL( GetHighlight() )
- && !IsDeleteLockedL( GetHighlight() )
+ && !IsDeleteLocked( GetHighlight() )
&& iDrawer->IsDraggable() )
{
iDrawer->AnimateItemZoomInL( GetHighlight() );
@@ -674,7 +705,7 @@
HandleDragL( pointerEvent, aAbortAnimations );
}
- else if (aPointerEvent.iType == TPointerEvent::EButton1Up && iDrawer->IsDraggable())
+ else if( aPointerEvent.iType == TPointerEvent::EButton1Up && iDrawer->IsDraggable() )
{
if( !draggedItemOverIcons )
{
@@ -716,15 +747,13 @@
iLongTapDetector->PointerEventL( longTapPointerEvent );
}
- CCoeControl::HandlePointerEventL( aPointerEvent );
-
if ( aPointerEvent.iType == TPointerEvent::EButton1Down
&& itemExists )
{
SetHighlightL( index );
}
else if( aPointerEvent.iType == TPointerEvent::EDrag
- // the line below is needed to enable edit mode in the list widget
+ // the line below is needed to enable edit mode in the list widget
// because behaviour in the grid and list is different
|| (aPointerEvent.iType == TPointerEvent::EButtonRepeat && WidgetType() == EGridWidget ))
{
@@ -741,10 +770,13 @@
}
else
{
+ iDragOccured = ETrue;
SetHighlightVisibilityL( EFalse );
}
}
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+
TInt lastTopItemIndex = Widget()->TopItemIndex();
TBool abortAnimation = lastTopItemIndex != Widget()->TopItemIndex();
@@ -820,14 +852,6 @@
//
EXPORT_C void CMmWidgetContainer::SetHighlightVisibilityL( TBool aEnable )
{
- // activate the model
- CHnSuiteModel* suiteModel = GetMmModel()->GetSuiteModel();
-
- if( suiteModel )
- {
- suiteModel->SetActiveL( aEnable );
- }
-
if( ( !!aEnable != !!iPreviousHighlightVisibility ) // Ex-OR
|| ( !!aEnable != !!IsHighlightVisible() ) ) // Ex-OR
{
@@ -852,7 +876,7 @@
CListItemDrawer::ESingleClickDisabledHighlight );
}
- if( IsVisible() )
+ if( IsVisible() && !aEnable )
{
TInt highlight = GetHighlight();
CListBoxView* view = Widget()->View();
@@ -1398,7 +1422,8 @@
{
if( iIsEditMode && iDrawer )
{
- if( iDrawer->GetFloatingItemIndex( EDrag ) != KErrNotFound )
+ if( iDrawer->GetFloatingItemIndex( EDrag ) != KErrNotFound
+ || iDrawer->GetFloatingItemIndex( EDragStart ) != KErrNotFound )
{
CancelDragL( EFalse );
}
@@ -1449,38 +1474,38 @@
return;
}
- TBool needToScrollUp =
- GetHighlight() - iWidget->TopItemIndex() < ColumnsInCurrentView()
- && iWidget->TopItemIndex() != 0;
+ TBool needToScrollUp =
+ GetHighlight() - iWidget->TopItemIndex() < ColumnsInCurrentView()
+ && iWidget->TopItemIndex() != 0;
- TBool needToScrollDown =
- iWidget->BottomItemIndex() - GetHighlight() < ColumnsInCurrentView()
- && iWidget->BottomItemIndex() / ColumnsInCurrentView()
- != ( NumberOfItems() - 1 ) / ColumnsInCurrentView();
+ TBool needToScrollDown =
+ iWidget->BottomItemIndex() - GetHighlight() < ColumnsInCurrentView()
+ && iWidget->BottomItemIndex() / ColumnsInCurrentView()
+ != ( NumberOfItems() - 1 ) / ColumnsInCurrentView();
if( WidgetType() == EGridWidget )
{
// TODO: temporary - invisible partial items in MCL grid :/
- needToScrollDown =
- iWidget->BottomItemIndex() - ColumnsInCurrentView() - GetHighlight() < ColumnsInCurrentView()
- && ( iWidget->BottomItemIndex() / ColumnsInCurrentView() ) - 1
- != ( NumberOfItems() - 1 ) / ColumnsInCurrentView()
- && iWidget->BottomItemIndex() - iWidget->TopItemIndex()
- > ColumnsInCurrentView() * RowsInCurrentView();
+ needToScrollDown =
+ iWidget->BottomItemIndex() - ColumnsInCurrentView() - GetHighlight() < ColumnsInCurrentView()
+ && ( iWidget->BottomItemIndex() / ColumnsInCurrentView() ) - 1
+ != ( NumberOfItems() - 1 ) / ColumnsInCurrentView()
+ && iWidget->BottomItemIndex() - iWidget->TopItemIndex()
+ > ColumnsInCurrentView() * RowsInCurrentView();
}
if( needToScrollUp )
{
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iDrawer->Gc() );
+ MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iDrawer->Gc() );
if( transApi )
{
transApi->SetMoveType( MAknListBoxTfxInternal::EListScrollUp );
}
#endif
iDrawer->RemoveFloatingItems();
- iWidget->View()->VScrollTo(
- iWidget->TopItemIndex() - ColumnsInCurrentView() );
+ iWidget->View()->VScrollTo(
+ iWidget->TopItemIndex() - ColumnsInCurrentView() );
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if( transApi )
{
@@ -1493,15 +1518,15 @@
{
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iDrawer->Gc() );
+ MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iDrawer->Gc() );
if( transApi )
{
transApi->SetMoveType( MAknListBoxTfxInternal::EListScrollDown );
}
#endif
iDrawer->RemoveFloatingItems();
- iWidget->View()->VScrollTo(
- iWidget->TopItemIndex() + ColumnsInCurrentView() );
+ iWidget->View()->VScrollTo(
+ iWidget->TopItemIndex() + ColumnsInCurrentView() );
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if( transApi )
@@ -1560,7 +1585,7 @@
{
TBool isFolder( EFalse );
CHnSuiteModel* model = GetMmModel()->GetSuiteModel();
- CHnItemModel* onItemModel = model->GetItemModel(
+ CHnItemModel* onItemModel = model->GetItemModel(
model->IdByIndex( Widget()->CurrentItemIndex() ));
if( onItemModel )
{
@@ -1980,11 +2005,12 @@
switch( aEventType )
{
case MEikListBoxObserver::EEventPenDownOnItem:
- case MEikListBoxObserver::EEventItemSingleClicked:
{
iDragOccured = EFalse;
break;
}
+ case MEikListBoxObserver::EEventItemSingleClicked:
+ break;
case MEikListBoxObserver::EEventItemDraggingActioned:
{
iDragOccured = ETrue;
@@ -2000,25 +2026,25 @@
case MEikListBoxObserver::EEventFlickStarted:
case MEikListBoxObserver::EEventPanningStarted:
{
- static_cast<CMmListBoxItemDrawer*>(
- Widget()->View()->ItemDrawer() )->
- EnableCachedDataUse( ETrue );
- break;
- }
- case MEikListBoxObserver::EEventFlickStopped:
- {
- static_cast<CMmListBoxItemDrawer*>(
- Widget()->View()->ItemDrawer() )->
- EnableCachedDataUse( EFalse );
- DrawView();
- break;
- }
- case MEikListBoxObserver::EEventPanningStopped:
- {
- static_cast<CMmListBoxItemDrawer*>(
- Widget()->View()->ItemDrawer() )->
- EnableCachedDataUse( EFalse );
- break;
+ static_cast<CMmListBoxItemDrawer*>(
+ Widget()->View()->ItemDrawer() )->
+ EnableCachedDataUse( ETrue );
+ break;
+ }
+ case MEikListBoxObserver::EEventFlickStopped:
+ {
+ static_cast<CMmListBoxItemDrawer*>(
+ Widget()->View()->ItemDrawer() )->
+ EnableCachedDataUse( EFalse );
+ DrawView();
+ break;
+ }
+ case MEikListBoxObserver::EEventPanningStopped:
+ {
+ static_cast<CMmListBoxItemDrawer*>(
+ Widget()->View()->ItemDrawer() )->
+ EnableCachedDataUse( EFalse );
+ break;
}
}
}
@@ -2036,8 +2062,9 @@
}
}
- if ( aEventType == MEikListBoxObserver::EEventItemSingleClicked &&
- iListBoxObserver && !iLongTapInProgress && !iDrawer->IsDraggable() )
+ if ( aEventType == MEikListBoxObserver::EEventItemSingleClicked
+ && iListBoxObserver && !iLongTapInProgress && !iDrawer->IsDraggable()
+ && !iDragOccured )
{
iListBoxObserver->HandleListBoxEventL( aListBox, aEventType );
}
Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Tue May 25 12:29:32 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h Wed Jun 09 09:29:04 2010 +0300
@@ -173,7 +173,7 @@
* will be ignored when deteriminig window
* group id
*/
- TInt WgIdOfUnderlyingApp( TBool aIgnoreParentChild );
+ TInt WgIdOfUnderlyingAppL( TBool aIgnoreParentChild );
static TInt GoToBackgroundTimerCallback( TAny* aParam );
@@ -191,6 +191,14 @@
*/
TInt GetParentWg( TInt aChildWg );
+ /*
+ * Returns window group id of camera app if it's lying beneath task
+ * switcher window group.
+ * This method considers also case, when camera window group is hidden.
+ * @return camera's window group id.
+ */
+ TInt CheckForUnderlyingHiddenAppsL();
+
private:
// Taskswitcher application view, owned
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Tue May 25 12:29:32 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Jun 09 09:29:04 2010 +0300
@@ -291,6 +291,13 @@
void LayoutGridL();
/**
+ * Setup grid layout for view
+ *
+ * @param aItemCount number of items in grid
+ */
+ void LayoutGridViewL( TInt aItemCount );
+
+ /**
* Returns rectangles for fast swap area controls
*/
void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Tue May 25 12:29:32 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -65,6 +65,9 @@
const TUid KTsAppUid = { KTsAppUidValue };
+const TUid KTsCameraUid = { 0x101F857a };
+const TUid KTsTelephoneUid = { 0x100058b3 };
+
// -----------------------------------------------------------------------------
// CTsAppUi::ConstructL()
// ConstructL is called by the application framework
@@ -161,6 +164,11 @@
iUiStarted = EFalse;
iDisableAppKeyHandling = EFalse;
+ // Set process priority to high to avoid being
+ // locked by heavy ui apps processing
+ iEikonEnv->WsSession().ComputeMode(RWsSession::EPriorityControlDisabled);
+ RProcess().SetPriority(EPriorityHigh);
+
TSLOG_OUT();
}
@@ -691,6 +699,7 @@
{
SetOrientationL(EAppUiOrientationPortrait);
}
+ RProcess().SetPriority(EPriorityForeground);
SetFullScreenApp(EFalse);
iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
}
@@ -712,6 +721,7 @@
iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
SetOrientationL(EAppUiOrientationAutomatic);
SetFullScreenApp(EFalse);
+ RProcess().SetPriority(EPriorityHigh);
}
TSLOG_OUT();
}
@@ -752,7 +762,7 @@
TInt eventType = aEvent.Type();
if ( eventType == EEventWindowGroupListChanged )
{
- TInt wgId = WgIdOfUnderlyingApp(EFalse);
+ TInt wgId = WgIdOfUnderlyingAppL(EFalse);
if ( iForeground &&
wgId != iUnderAppWgId &&
!iAppView->AppCloseInProgress(iUnderAppWgId) &&
@@ -760,7 +770,7 @@
{
MoveAppToBackground( ENoneTransition );
}
- if ( WgIdOfUnderlyingApp(ETrue) != iUnderAppWgId )
+ if ( WgIdOfUnderlyingAppL(ETrue) != iUnderAppWgId )
{
HandleResourceChangeL(KEikDynamicLayoutVariantSwitch);
}
@@ -773,11 +783,16 @@
// CTsAppUi::WgIdOfUnderlyingApp
// -----------------------------------------------------------------------------
//
-TInt CTsAppUi::WgIdOfUnderlyingApp( TBool aIgnoreParentChild )
+TInt CTsAppUi::WgIdOfUnderlyingAppL( TBool aIgnoreParentChild )
{
TInt retVal(0);
- TApaTaskList taskList( iEikonEnv->WsSession() );
- TInt underlyingWg = taskList.FindByPos(0).WgId();
+ TInt underlyingWg = CheckForUnderlyingHiddenAppsL();
+ if ( !underlyingWg )
+ {
+ TApaTaskList taskList( iEikonEnv->WsSession() );
+ underlyingWg = taskList.FindByPos(0).WgId();
+ }
+
if ( aIgnoreParentChild )
{
retVal = underlyingWg;
@@ -835,7 +850,6 @@
return retVal;
}
-
// -----------------------------------------------------------------------------
// CTsAppUi::IsForeground
// -----------------------------------------------------------------------------
@@ -845,4 +859,29 @@
return iForeground;
}
+// -----------------------------------------------------------------------------
+// CTsAppUi::CheckForUnderlyingCameraL
+// -----------------------------------------------------------------------------
+//
+TInt CTsAppUi::CheckForUnderlyingHiddenAppsL()
+ {
+ TInt wgId(0);
+ RArray<RWsSession::TWindowGroupChainInfo> allWgIds;
+ CleanupClosePushL(allWgIds);
+ User::LeaveIfError(iEikonEnv->WsSession().WindowGroupList(0, &allWgIds));
+ TInt underlyingWg(allWgIds[0].iId);
+ CleanupStack::PopAndDestroy(&allWgIds);
+
+ CApaWindowGroupName* windowName =
+ CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg );
+ TUid appUid = windowName->AppUid();
+ CleanupStack::PopAndDestroy( windowName );
+ if( appUid == KTsCameraUid ||
+ appUid == KTsTelephoneUid )
+ {
+ wgId = underlyingWg;
+ }
+ return wgId;
+ }
+
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Tue May 25 12:29:32 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -627,7 +627,7 @@
!iFastSwapArea->Count() )
{
LaunchFeedback(ETouchFeedbackBasic, TTouchFeedbackType(
- ETouchFeedbackVibra | ETouchFeedbackAudio), aPointerEvent);
+ ETouchFeedbackVibra ), aPointerEvent);
iEikonEnv->EikAppUi()->HandleCommandL(EAknSoftkeyExit);
}
}
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Tue May 25 12:29:32 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -259,6 +259,8 @@
{
TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL());
}
+ variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
+
TAknLayoutScalableParameterLimits gridParams =
AknLayoutScalable_Apps::cell_tport_appsw_pane_ParamLimits( variety );
TPoint empty( ELayoutEmpty, ELayoutEmpty );
@@ -322,6 +324,39 @@
// --------------------------------------------------------------------------
+// CTsFastSwapArea::LayoutGridView
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapArea::LayoutGridViewL( TInt aItemCount )
+ {
+ RArray<TAknLayoutRect> rects;
+ CleanupClosePushL(rects);
+ rects.ReserveL(KLayoutItemCount);
+ GetFastSwapAreaRects(rects);
+ TAknLayoutRect gridItem = rects[1];
+ CleanupStack::PopAndDestroy(&rects);
+ if ( aItemCount )
+ {
+ iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(EFalse);
+ static_cast<CTsAppView*>(&iParent)->EnableDragEvents(ETrue);
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ iGrid->SetLayoutL( EFalse, EFalse, ETrue, aItemCount, 1, gridItem.Rect().Size(), iGridItemGap );
+ }
+ else
+ {
+ iGrid->SetLayoutL( EFalse, ETrue, ETrue, aItemCount, 1, gridItem.Rect().Size(), iGridItemGap );
+ }
+ }
+ else
+ {
+ iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(ETrue);
+ static_cast<CTsAppView*>(&iParent)->EnableDragEvents(EFalse);
+ }
+ }
+
+
+// --------------------------------------------------------------------------
// CTsFastSwapArea::GetFastSwapAreaRects
// --------------------------------------------------------------------------
//
@@ -338,6 +373,7 @@
{
TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL());
}
+ variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
gridAppPane.LayoutRect( Rect(),
AknLayoutScalable_Apps::tport_appsw_pane( variety ) );
@@ -381,17 +417,22 @@
if ( iGrid && !iIgnoreLayoutSwitch )
{
+ // Cancel ongoing pointer event
+ iHandlePointerCandidate = EFalse;
// Grid needs to be recreated to proper reinitilize
// data with new layout values
TInt selIdx = SelectedIndex();
- TRAPD(err,
- /*ReCreateGridL()*/
- LayoutGridL() );
+ TRAPD(err,
+ LayoutGridL();
+ LayoutGridViewL( iArray.Count() )
+ );
+
if ( err != KErrNone )
{
TSLOG1( TSLOG_INFO, "LayoutGridL leaves with %d", err );
}
- HandleFswContentChanged();
+
+ // Update grid view
iGrid->SetCurrentDataIndex(selIdx);
UpdateGrid(ETrue, EFalse);
iGrid->DrawDeferred();
@@ -497,11 +538,6 @@
if ( aIndex >= 0 && aIndex < iArray.Count() && CanClose( aIndex ) )
{
- TInt selIdx = SelectedIndex();
- if ( selIdx > aIndex && selIdx > 0 )
- {
- selIdx--;
- }
TInt wgId = iArray[aIndex]->WgId();
iFSClient->CloseApp( wgId );
iIsClosing.Append(wgId);
@@ -509,45 +545,11 @@
{
iWidgetClosingCount++;
}
- // The fsw content will change sooner or later
- // but the updated content (without the closed app) will not
- // come very fast. It looks better to the user if the item
- // in the grid is removed right here, right now.
- // If the app does not close for some reason then this is
- // not fully correct but the app will then reappear on the next
- // content-changed notification anyway.
- delete iArray[aIndex];
- iArray.Remove( aIndex );
- NotifyChange();
-
- // Hide highlight
- if ( iGrid->GridBehaviour() == CTsFastSwapGrid::ETouchOnly )
- {
- iGrid->HideHighlight();
- }
- // Update selection
- TInt newItemCount = GridItemCount() - 1;
- if ( aIndex == newItemCount )
- {
- newItemCount--;
- iGrid->SetCurrentDataIndex(newItemCount);
- }
- else
- {
- iGrid->SetCurrentDataIndex(selIdx);
- }
- // Render contect
- if ( !aSuppressRendering )
- {
- RenderContentL( ETrue );
- }
// Orientation update
iPrevScreenOrientation = GetCurrentScreenOrientation();
iOrientationSignalTimer->Cancel();
iOrientationSignalTimer->After(KOrientationSwitchTime);
-
- iPrevAppCount = iArray.Count();
}
TSLOG_OUT();
@@ -559,23 +561,13 @@
//
void CTsFastSwapArea::TryCloseAllL()
{
- // note the direction of the loop, this is needed because
- // TryCloseAppL may modify the array
- TBool changed = EFalse;
for ( TInt i = iArray.Count() - 1; i >= 0; --i )
{
if ( CanClose( i ) )
{
TryCloseAppL( i, ETrue );
- changed = ETrue;
}
}
- if ( changed )
- {
- RenderContentL();
- RestoreSelectedIndex();
- UpdateGrid( ETrue, EFalse );
- }
}
// --------------------------------------------------------------------------
@@ -584,10 +576,14 @@
//
TBool CTsFastSwapArea::CanClose( TInt aIndex ) const
{
- CTsFswEntry* e = iArray[aIndex];
- TBool canClose = !e->AlwaysShown() && !e->SystemApp();
- // Special cases: Menu
- canClose |= e->AppUid() == KTsMenuUid;
+ TBool canClose(EFalse);
+ if ( aIndex >= 0 && aIndex < iArray.Count() )
+ {
+ CTsFswEntry* e = iArray[aIndex];
+ canClose = !e->AlwaysShown() && !e->SystemApp();
+ // Special cases: Menu
+ canClose |= e->AppUid() == KTsMenuUid;
+ }
return canClose;
}
@@ -695,31 +691,9 @@
RArray<TInt> strokeItemArray;
CleanupClosePushL(strokeItemArray);
- RArray<TAknLayoutRect> rects;
- CleanupClosePushL(rects);
- rects.ReserveL(KLayoutItemCount);
- GetFastSwapAreaRects(rects);
- TAknLayoutRect gridItem = rects[1];
- CleanupStack::PopAndDestroy(&rects);
- if ( iArray.Count() )
- {
- iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(EFalse);
- static_cast<CTsAppView*>(&iParent)->EnableDragEvents(ETrue);
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- iGrid->SetLayoutL( EFalse, EFalse, ETrue, iArray.Count(), 1, gridItem.Rect().Size(), iGridItemGap );
- }
- else
- {
- iGrid->SetLayoutL( EFalse, ETrue, ETrue, iArray.Count(), 1, gridItem.Rect().Size(), iGridItemGap );
- }
- }
- else
- {
- iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(ETrue);
- static_cast<CTsAppView*>(&iParent)->EnableDragEvents(EFalse);
- }
-
+ // Update view based on number of items
+ LayoutGridViewL( iArray.Count() );
+
for ( TInt i = 0; i < iArray.Count(); ++i )
{
const TDesC& appName( iArray[i]->AppName() );
@@ -798,9 +772,13 @@
CleanupStack::Pop(iconArray);
// refresh the items in the grid
+ iGrid->HandleItemAdditionL();
iEvtHandler.ReInitPhysicsL( GridWorldSize(), ViewSize(), ETrue );
+ if ( SelectedIndex() >= GridItemCount() && GridItemCount() )
+ {
+ iGrid->SetCurrentDataIndex( GridItemCount() - 1 );
+ }
UpdateGrid( ETrue, !aSuppressAnimation );
- iGrid->HandleItemAdditionL();
TSLOG_OUT();
}
@@ -1503,8 +1481,8 @@
{
if( aType == KAppKeyTypeShort )
{
- // Switch to homescreen
- SwitchToApp( KTsHomescreenUid );
+ //SwitchToApp( KTsHomescreenUid );
+ TRAP_IGNORE( iEikonEnv->EikAppUi()->HandleCommandL(EAknSoftkeyExit) );
}
else if( aType == KAppKeyTypeLong )
{
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Tue May 25 12:29:32 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Wed Jun 09 09:29:04 2010 +0300
@@ -117,6 +117,12 @@
{
TPoint drag(iStartPosition - aEvent.CurrentPosition());
iPhysics->StartPhysics(drag, iStartTime);
+ if( Abs(drag.iX) < iPhysics->DragThreshold() &&
+ (TInt)CAknPhysics::EAknPhysicsActionBouncing !=
+ iPhysics->OngoingPhysicsAction() )
+ {
+ iPhysics->StopPhysics();
+ }
}
}