--- a/csxhelp/AiwHelpProvider/group/AiwHelpProvider.mmp Mon Jun 21 15:26:26 2010 +0300
+++ b/csxhelp/AiwHelpProvider/group/AiwHelpProvider.mmp Thu Aug 19 09:42:56 2010 +0300
@@ -57,7 +57,7 @@
LIBRARY bafl.lib
LIBRARY cone.lib
LIBRARY estlib.lib
-LIBRARY ServiceHandler.lib
+LIBRARY servicehandler.lib
LIBRARY eikcore.lib
LIBRARY hlplch.lib
LIBRARY ws32.lib
--- a/csxhelp/group/HelpEngine.mmp Mon Jun 21 15:26:26 2010 +0300
+++ b/csxhelp/group/HelpEngine.mmp Thu Aug 19 09:42:56 2010 +0300
@@ -56,8 +56,8 @@
LIBRARY cone.lib euser.lib bafl.lib
LIBRARY efsrv.lib charconv.lib eikctl.lib
-LIBRARY SenXml.lib XMLFRAMEWORK.lib ezip.lib
-LIBRARY HLPMODEL.LIB PlatformEnv.lib
+LIBRARY senxml.lib xmlframework.lib ezip.lib
+LIBRARY hlpmodel.lib platformenv.lib
LIBRARY featmgr.lib
LIBRARY ptiengine.lib //Input Language variation changes
--- a/csxhelp/group/cshelp.mmp Mon Jun 21 15:26:26 2010 +0300
+++ b/csxhelp/group/cshelp.mmp Thu Aug 19 09:42:56 2010 +0300
@@ -106,13 +106,13 @@
LIBRARY euser.lib apparc.lib cone.lib eikcore.lib
LIBRARY apgrfx.lib charconv.lib
LIBRARY eikcoctl.lib eikctl.lib avkon.lib
-LIBRARY AknNotify.lib etext.lib
-LIBRARY AknSkins.lib
+LIBRARY aknnotify.lib etext.lib
+LIBRARY aknskins.lib
LIBRARY ws32.lib
LIBRARY CdlEngine.lib //dynamic ui
LIBRARY AknLayout2Scalable.lib
LIBRARY gdi.lib HelpEngine.lib apmime.lib featmgr.lib
-LIBRARY ServiceHandler.lib // For the AiwServiceHandler
+LIBRARY servicehandler.lib // For the AiwServiceHandler
LIBRARY efsrv.lib
#ifdef FF_HELP_TUTORIAL_MERGE
--- a/csxhelp/inc/CSXHHtmlTopicContainer.h Mon Jun 21 15:26:26 2010 +0300
+++ b/csxhelp/inc/CSXHHtmlTopicContainer.h Thu Aug 19 09:42:56 2010 +0300
@@ -44,6 +44,23 @@
MBrCtlDialogsProvider* aBrCtlDialogsProvider = NULL,
MBrCtlWindowObserver* aBrCtlWindowObserver = NULL,
MBrCtlDownloadObserver* aBrCtlDownloadObserver = NULL );
+
+// A container which draw white rectagle.
+NONSHARABLE_CLASS( CBlankContainer ): public CCoeControl
+ {
+public:
+ CBlankContainer();
+ ~CBlankContainer();
+
+ /**
+ * From CoeControl class
+ * @function Draw
+ * Draw() for drawing the Background
+ */
+ void Draw( const TRect& aRect ) const;
+
+ };
+
/**
* @class CCSXHHtmlTopicContainer
* This class provides Browser functionality
@@ -412,7 +429,7 @@
* @Perform the second phase construction of a HtmlTopicContainer object
* @param aRect the rectangle this view will be drawn to
*/
- void ConstructL(const TRect& aRect);
+ void ConstructL( const TRect& aRect );
/**
* @function LoadHtmlL
@@ -440,7 +457,24 @@
* Judge whether we need to refresh the browser control
*/
TBool NeedRefresh( const TContentLoadState aNewLoadState ) const;
-
+
+/**
+ * @function HideBrowser
+ */
+ void HideBrowser();
+
+/**
+ * * @function ShowBrowser
+ */
+ void ShowBrowser();
+
+/*
+ * @function SetTopAndBottomContainer
+ * To set top and Bottom container of browser and blank container
+ */
+ void SetTopAndBottomContainer( CCoeControl* aTopControl,
+ CCoeControl* aBottomControl );
+
private:
CBrCtlInterface* iBrCtrl;
CCSXHHtmlTOC2* iTopic;
@@ -459,6 +493,14 @@
TBool iBack;
TContentLoadState iContentLoading;
+
+ // used to hide browser control if needed.
+ CCoeControl* iBlankContainer;
+
+ // Used to determine whether hide browser control or not.
+ CCoeControl* iTopControl;
+ CCoeControl* iBottomControl;
+
};
--- a/csxhelp/src/CSXHHtmlTopicContainer.cpp Mon Jun 21 15:26:26 2010 +0300
+++ b/csxhelp/src/CSXHHtmlTopicContainer.cpp Thu Aug 19 09:42:56 2010 +0300
@@ -48,6 +48,24 @@
_LIT(KContentType,"text/html");
_LIT(KCsstextToRemovePathinfo,"<style>\n #APP_LAUNCH_LINK{display:none}\n</style>");
+
+CBlankContainer::CBlankContainer()
+ {
+ }
+
+CBlankContainer::~CBlankContainer()
+ {
+ }
+
+
+void CBlankContainer::Draw( const TRect& aRect ) const
+ {
+ CWindowGc& gc = SystemGc();
+ TRect rect = Rect();
+ gc.Clear(rect);
+ }
+
+
// Standard construction sequence
CCSXHHtmlTopicContainer* CCSXHHtmlTopicContainer::NewL(const TRect& aRect,CCSXHDocument
&aDocument,CCSXHHtmlTopicView *aView)
@@ -84,41 +102,42 @@
delete iBrCtrl;
iBrLibrary.Close();
}
- if(iAppLauncher)
- {
- delete iAppLauncher;
- }
+
+ delete iAppLauncher;
+
+ delete iBlankContainer;
+
}
-void CCSXHHtmlTopicContainer::ConstructL(const TRect& aRect)
+void CCSXHHtmlTopicContainer::ConstructL( const TRect& aRect )
{
// Create a window for this application view
CreateWindowL();
// Set the windows size
SetRect(aRect);
- if(KErrNone != iBrLibrary.Load(_L("BrowserEngine.dll")))
+ if( KErrNone != iBrLibrary.Load( _L( "BrowserEngine.dll" ) ) )
{
HBufC* ErrorMessage = CCSXHAppUi::GetCoeEnv()->AllocReadResourceLC(
- R_CSHELP_RETRIEVE_NO_MEMORY_TEXT);
+ R_CSHELP_RETRIEVE_NO_MEMORY_TEXT );
CAknGlobalNote* note = CAknGlobalNote::NewLC();
- note->ShowNoteL(EAknGlobalInformationNote, *ErrorMessage);
- CleanupStack::PopAndDestroy(note);
- CleanupStack::PopAndDestroy(ErrorMessage);
- iDocument.SetDisplayTopic(iDocument.GetPrevTopic());
- CCSXHAppUi::GetInstance()->HandleCommandL(ECSXHOpenItem);
- User::Leave(KErrNoMemory);
+ note->ShowNoteL( EAknGlobalInformationNote, *ErrorMessage );
+ CleanupStack::PopAndDestroy( note );
+ CleanupStack::PopAndDestroy( ErrorMessage );
+ iDocument.SetDisplayTopic( iDocument.GetPrevTopic() );
+ CCSXHAppUi::GetInstance()->HandleCommandL( ECSXHOpenItem );
+ User::Leave( KErrNoMemory );
}
#ifdef __WINS__
- TLibraryFunction result = iBrLibrary.Lookup(10);
+ TLibraryFunction result = iBrLibrary.Lookup( 10 );
#else
- TLibraryFunction result = iBrLibrary.Lookup(1);
+ TLibraryFunction result = iBrLibrary.Lookup( 1 );
#endif
- FuncPtr_CreateBrowserControlL fptr = (FuncPtr_CreateBrowserControlL)result;
+ FuncPtr_CreateBrowserControlL fptr = ( FuncPtr_CreateBrowserControlL )result;
- iBrCtrl = (*fptr)(
+ iBrCtrl = ( *fptr )(
this,aRect,
TBrCtlDefs::ECapabilityDisplayScrollBar|
TBrCtlDefs::ECapabilityClientResolveEmbeddedURL|
@@ -127,14 +146,19 @@
TBrCtlDefs::ECapabilityWebKitLite|
#endif
TBrCtlDefs::ECapabilityClientNotifyURL,
- TBrCtlDefs::ECommandIdBase,this,this,NULL,this
+ TBrCtlDefs::ECommandIdBase, this, this, NULL, this
);
- iBrCtrl->SetBrowserSettingL(TBrCtlDefs::ESettingsCSSFetchEnabled,1);
- iBrCtrl->AddLoadEventObserverL(this);
+ iBrCtrl->SetBrowserSettingL( TBrCtlDefs::ESettingsCSSFetchEnabled, 1 );
+ iBrCtrl->AddLoadEventObserverL( this );
- SetSelectedFontSizeL(iView->GetCurrentFontSize());
- iBrCtrl->MakeVisible(ETrue);
+ SetSelectedFontSizeL( iView->GetCurrentFontSize() );
+ iBrCtrl->MakeVisible( ETrue );
+
+ iBlankContainer = new ( ELeave ) CBlankContainer();
+ iBlankContainer->SetRect( Rect() );
+
+ ShowBrowser();
ActivateL();
}
@@ -166,7 +190,7 @@
void CCSXHHtmlTopicContainer::LoadHtmlL()
{
- iBrCtrl->MakeVisible( EFalse );
+ iBrCtrl->MakeVisible( EFalse );
SetContentLoadState( EContentLoading );
HBufC8 *htmlBuffer = STATIC_CAST(HBufC8*,iTopic->GetTopicContentL());
if(htmlBuffer)
@@ -230,7 +254,7 @@
TInt CCSXHHtmlTopicContainer::CountComponentControls() const
{
- return 1;
+ return 2;
}
CCoeControl* CCSXHHtmlTopicContainer::ComponentControl(TInt aIndex) const
@@ -238,7 +262,9 @@
switch (aIndex)
{
case 0:
- return iBrCtrl;
+ return iBottomControl;
+ case 1:
+ return iTopControl;
default:
return NULL;
}
@@ -274,19 +300,20 @@
void CCSXHHtmlTopicContainer::SizeChanged()
{
#ifndef __SERIES60_30__
- if(iBrCtrl)
+ if( iBrCtrl )
{
if ( iContentLoading != EContentLoading )
{
- iBrCtrl->SetRect(Rect());
- iBrCtrl->MakeVisible(ETrue);
+ iBlankContainer->SetRect( Rect() );
+ iBrCtrl->SetRect( Rect() );
+ iBrCtrl->MakeVisible( ETrue );
}
else
{
//Update the title bar
CEikStatusPane* sp = CCSXHAppUi::GetInstance()->StatusPane();
CAknTitlePane* titlePane = NULL;
- TRAPD( err, titlePane = STATIC_CAST(CAknTitlePane*,
+ TRAPD( err, titlePane = STATIC_CAST(CAknTitlePane*,
sp->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) ) );
if ( KErrNone == err )
{
@@ -294,8 +321,8 @@
//so just ignore this leave
TRAP_IGNORE( titlePane->SetTextL( KNullDesC ) );
}
-
- iBrCtrl->SetRect(TRect(0,0,0,0));
+ iBlankContainer->SetRect( Rect() );
+ iBrCtrl->SetRect( Rect() );
}
}
#endif
@@ -445,6 +472,7 @@
{
if(aLoadEvent == TBrCtlDefs::EEventLoadFinished)
{
+ ShowBrowser();
SetContentLoadState( EContentLoadFinished );
if ( IsVisible() )
{
@@ -505,6 +533,12 @@
iNewTopic = iDocument.GetHtmlTopicForUrlL(iUrlNoAnchors);
CheckForMSK();
}
+ // Only when loadhtml is called, in that condition, last-displayed content may show;
+ // then we should hide browser.
+ else if ( iContentLoading == EContentLoading )
+ {
+ HideBrowser();
+ }
}
CCSXHHelpContentBase* CCSXHHtmlTopicContainer::GetCurrActiveObject()
@@ -648,5 +682,22 @@
return EFalse;
}
+void CCSXHHtmlTopicContainer::HideBrowser()
+ {
+ SetTopAndBottomContainer( iBlankContainer, iBrCtrl );
+ }
+
+void CCSXHHtmlTopicContainer::ShowBrowser()
+ {
+ SetTopAndBottomContainer( iBrCtrl, iBlankContainer );
+ }
+
+void CCSXHHtmlTopicContainer::SetTopAndBottomContainer( CCoeControl* aTopControl,
+ CCoeControl* aBottomControl )
+ {
+ iTopControl = aTopControl;
+ iBottomControl = aBottomControl;
+ }
+
//end of the file