📄 brctlsampleappcontainer.cpp
字号:
// ----------------------------------------------------
// CBrCtlSampleAppContainer::CreateBasicBrowserControlL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::CreateBasicBrowserControlL()
{
if (iBrCtlInterface != NULL)
{
delete iBrCtlInterface;
iBrCtlInterface = NULL;
}
else
{
TRect rect(Position(), Size());
iBrCtlInterface = CreateBrowserControlL( this,
rect,
TBrCtlDefs::ECapabilityDisplayScrollBar | TBrCtlDefs::ECapabilityLoadHttpFw,
TBrCtlDefs::ECommandIdBase,
NULL,
NULL,
NULL,
NULL);
}
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::CreateBrowserControlWithObserversL(TUint aCapabilities)
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::CreateBrowserControlWithObserversL(TUint aCapabilities)
{
if (iBrCtlCapabilities != aCapabilities)
{
delete iBrCtlInterface;
iBrCtlInterface = NULL;
}
iBrCtlCapabilities = aCapabilities;
if (iBrCtlInterface == NULL)
{
TRect rect(Position(), Size());
iBrCtlInterface = CreateBrowserControlL( this,
rect,
iBrCtlCapabilities,
TBrCtlDefs::ECommandIdBase,
iBrCtlSampleAppSoftkeysObserver,
iBrCtlSampleAppLinkResolver,
iBrCtlSampleAppSpecialLoadObserver,
iBrCtlSampleAppLayoutObserver);
iBrCtlInterface->AddLoadEventObserverL(iBrCtlSampleAppLoadEventObserver);
iBrCtlInterface->AddStateChangeObserverL(iBrCtlSampleAppStateChangeObserver);
}
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::ReadFileLC(const TDesC& aFileName)
// ----------------------------------------------------
//
HBufC8*
CBrCtlSampleAppContainer::ReadFileLC(const TDesC& aFileName)
{
RFs rfs;
RFile file;
User::LeaveIfError(rfs.Connect());
CleanupClosePushL(rfs);
User::LeaveIfError(file.Open(rfs, aFileName, EFileRead));
CleanupClosePushL(file);
TInt size;
User::LeaveIfError(file.Size(size));
HBufC8* buf = HBufC8::NewLC(size);
TPtr8 bufPtr(buf->Des());
User::LeaveIfError(file.Read(bufPtr));
CleanupStack::Pop(); // buf
CleanupStack::PopAndDestroy(2); // file, rfs
CleanupStack::PushL(buf);
return buf;
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::BasicBrowserControlL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::BasicBrowserControlL()
{
if (iBrCtlInterface == NULL)
{
TRect rect(Position(), Size());
iBrCtlInterface = CreateBrowserControlL( this,
rect,
TBrCtlDefs::ECapabilityDisplayScrollBar | TBrCtlDefs::ECapabilityLoadHttpFw,
iCommandBase,
NULL,
NULL,
NULL,
NULL,
NULL);
}
_LIT(KUrl, "file://BrCtlSampleApp/sample1.htm");
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::BrowserControlWithObserversL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::BrowserControlWithObserversL()
{
CreateBrowserControlWithObserversL( TBrCtlDefs::ECapabilityDisplayScrollBar |
TBrCtlDefs::ECapabilityLoadHttpFw );
_LIT(KUrl, "file://BrCtlSampleApp/sample2.htm");
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::LoadingContentWithFileHandleL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::LoadingContentWithFileHandleL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar |
TBrCtlDefs::ECapabilityLoadHttpFw);
_LIT(KUrl, "c:\\BrCtlSampleApp\\sample3.htm");
RFs rfs;
RFile file;
User::LeaveIfError(rfs.Connect());
CleanupClosePushL(rfs);
User::LeaveIfError(file.Open(rfs, KUrl(), EFileShareReadersOnly));
CleanupClosePushL(file);
iBrCtlInterface->LoadFileL(file);
CleanupStack::PopAndDestroy(2); // file, rfs
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::LoadingContentWithBufferL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::LoadingContentWithBufferL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar);
_LIT(KUrl, "c:\\BrCtlSampleApp\\sample4.htm");
_LIT8(KDataType, "text/html");
HBufC8* data = ReadFileLC(KUrl);
TDataType dataType(KDataType());
TUid uid;
uid.iUid = KCharacterSetIdentifierIso88591;
iBrCtlInterface->LoadDataL(KUrl, *data, dataType, uid);
CleanupStack::PopAndDestroy(); // data
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::IncrementalLoadingL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::IncrementalLoadingL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar);
_LIT(KUrl, "c:\\BrCtlSampleApp\\sample5.htm");
HBufC8* data = ReadFileLC(KUrl);
_LIT8(KDataType, "text/html");
TDataType dataType(KDataType());
MBrCtlDataLoadConsumer* brCtlDataLoadConsumer = NULL;
TUid uid;
uid.iUid = KCharacterSetIdentifierIso88591;
iBrCtlInterface->InitLoadDataL(KUrl, dataType, uid, data->Length(),
this, &brCtlDataLoadConsumer);
if (brCtlDataLoadConsumer)
{
brCtlDataLoadConsumer->HandleNextDataChunk(*data);
if (!iCancelInitDataLoad)
{
brCtlDataLoadConsumer->HandleLoadComplete();
}
}
iCancelInitDataLoad = EFalse;
CleanupStack::PopAndDestroy(); // data
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::SpecialLoadRequestsL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::SpecialLoadRequestsL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar |
TBrCtlDefs::ECapabilityClientNotifyURL);
_LIT(KUrl, "file://BrCtlSampleApp/sample6.htm");
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::CustomizedDialogsL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::CustomizedDialogsL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar |
TBrCtlDefs::ECapabilityLoadHttpFw);
_LIT(KUrl, "file://BrCtlSampleApp/sample7.htm");
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::CustomizedSoftKeysL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::CustomizedSoftKeysL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar |
TBrCtlDefs::ECapabilityLoadHttpFw);
_LIT(KUrl, "file://BrCtlSampleApp/sample8.htm");
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::ResolvingEmbeddedLinksL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::ResolvingEmbeddedLinksL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar |
TBrCtlDefs::ECapabilityClientResolveEmbeddedURL);
_LIT(KUrl, "file://BrCtlSampleApp/sample9.htm");
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::CustomizedScrollBarsL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::CustomizedScrollBarsL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar);
_LIT(KUrl, "file://BrCtlSampleApp/sample10.htm");
iBrCtlInterface->SetExtent(Position(), TSize(300, 180));
iBrCtlInterface->SetBrowserSettingL(TBrCtlDefs::ESettingsSmallScreen, 0);
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::HandleStateChangedL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::HandleStateChangedL()
{
CreateBrowserControlWithObserversL(TBrCtlDefs::ECapabilityDisplayScrollBar);
_LIT(KUrl, "file://BrCtlSampleApp/sample11.htm");
iBrCtlInterface->SetExtent(Position(), TSize(176, 72));
iBrCtlInterface->LoadUrlL( KUrl );
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::ChangeSizeExtentsL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::ChangeSizeExtentsL()
{
if (iBrCtlInterface)
{
_LIT(KTitle,"Query Dialog");
_LIT(KPromptWidth, "Enter new width");
_LIT(KPromptHeight, "Enter new height");
HBufC* returnedInput = NULL;
TUint width = iBrCtlInterface->Rect().Width();
TUint height = iBrCtlInterface->Rect().Height();
TBool ret;
// defInput is not modified by the dialog.
TBuf<10>defInput;
defInput.Num(width);
CBrCtlSampleAppQueryDialog* dialog = new (ELeave) CBrCtlSampleAppQueryDialog( defInput, returnedInput );
CleanupStack::PushL(dialog);
dialog->PrepareLC( R_DATA_QUERY_WITH_HEADING );
dialog->SetHeaderTextL( KTitle );
dialog->SetPromptL( KPromptWidth );
CleanupStack::Pop(); // dialog
ret = dialog->RunLD();
if (ret)
{
TInt i = 0;
for (width = 0; i < returnedInput->Length(); i++)
{
if (((*returnedInput)[i] > '9') || ((*returnedInput)[i] < '0'))
break;
width *= 10;
width += ((*returnedInput)[i] - '0');
}
defInput.Num(height);
dialog = new (ELeave) CBrCtlSampleAppQueryDialog( defInput, returnedInput );
CleanupStack::PushL(dialog);
dialog->PrepareLC( R_DATA_QUERY_WITH_HEADING );
dialog->SetHeaderTextL( KTitle );
dialog->SetPromptL( KPromptHeight );
CleanupStack::Pop(); // dialog
ret = dialog->RunLD();
i = 0;
for (height = 0; i < returnedInput->Length(); i++)
{
if ((*returnedInput)[i] > '9' || (*returnedInput)[i] < '0')
break;
height *= 10;
height += ((*returnedInput)[i] - '0');
}
if (width && height)
{
iBrCtlInterface->SetExtent(Position(), TSize(width, height));
}
}
}
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::PageInfoL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::PageInfoL()
{
if (iBrCtlInterface)
{
HBufC* title = iBrCtlInterface->PageInfoLC(TBrCtlDefs::EPageInfoTitle);
if (title)
{
CAknQueryDialog* dialog = new (ELeave) CAknQueryDialog();
dialog->PrepareLC( R_CONFIRM_QUERY );
dialog->SetPromptL( *title );
dialog->RunLD();
CleanupStack::PopAndDestroy();
}
HBufC* url = iBrCtlInterface->PageInfoLC(TBrCtlDefs::EPageInfoUrl);
if (url)
{
CAknQueryDialog* dialog = new (ELeave) CAknQueryDialog();
dialog->PrepareLC( R_CONFIRM_QUERY );
dialog->SetPromptL( *url );
dialog->RunLD();
CleanupStack::PopAndDestroy();
}
}
}
// ----------------------------------------------------
// CBrCtlSampleAppContainer::ContentSizeImageCountL()
// ----------------------------------------------------
//
void
CBrCtlSampleAppContainer::ContentSizeImageCountL()
{
if (iBrCtlInterface)
{
TSize size(0, 0);
size = iBrCtlInterface->ContentSize();
TInt images = iBrCtlInterface->ImageCountL();
_LIT(KStr, "Width = %d, Height = %d. %d images");
TBuf<100> str;
str.Format(KStr, size.iWidth, size.iHeight, images);
CAknQueryDialog* dialog = new (ELeave) CAknQueryDialog();
dialog->PrepareLC( R_CONFIRM_QUERY );
dialog->SetPromptL( str );
dialog->RunLD();
}
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -