⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brctlsampleappcontainer.cpp

📁 基于SYMBIAN手机智能操作系统,通过插件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// ----------------------------------------------------
// 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 + -