本文整理汇总了C++中BackingStoreClient类的典型用法代码示例。如果您正苦于以下问题:C++ BackingStoreClient类的具体用法?C++ BackingStoreClient怎么用?C++ BackingStoreClient使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BackingStoreClient类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
BackingStoreClient* BackingStoreClient::create(Frame* frame, Frame* parentFrame, WebPage* parentPage)
{
ASSERT(parentPage);
ASSERT(frame->view());
// FIXME: We do not support inner frames for now.
if (parentFrame)
return 0;
BackingStoreClient* parentBackingStoreClient
= parentFrame
? parentPage->d->backingStoreClientForFrame(parentFrame)
: 0;
// If this frame has a parent with no backingstore then just stop since
// our frame heirarchy is done.
if (parentFrame && !parentBackingStoreClient)
return 0;
BackingStoreClient* it = new BackingStoreClient(frame, parentFrame, parentPage);
ASSERT(it);
// Frame -> BackingStoreClient mapping is controlled by the Page.
parentPage->d->addBackingStoreClientForFrame(frame, it);
// Add the backing store client to the child list of its parent.
if (parentBackingStoreClient)
parentBackingStoreClient->addChild(it);
return it;
}
示例2: invalidateContentsAndRootView
void ChromeClientBlackBerry::invalidateContentsForSlowScroll(const IntSize& delta, const IntRect& updateRect, bool immediate, const ScrollView* scrollView)
{
if (scrollView != m_webPagePrivate->m_mainFrame->view())
invalidateContentsAndRootView(updateRect, true /*immediate*/);
else {
BackingStoreClient* backingStoreClient = m_webPagePrivate->backingStoreClient();
ASSERT(backingStoreClient);
backingStoreClient->checkOriginOfCurrentScrollOperation();
m_webPagePrivate->m_backingStore->d->slowScroll(delta, updateRect, immediate);
}
}
示例3: invalidateContentsForSlowScroll
void ChromeClientBlackBerry::invalidateContentsForSlowScroll(const IntSize& delta, const IntRect& updateRect, bool immediate, const ScrollView* scrollView)
{
if (scrollView != m_webPage->d->m_mainFrame->view())
m_webPage->backingStore()->d->repaint(updateRect, true /*contentChanged*/, true /*immediate*/);
else {
BackingStoreClient* backingStoreClientForFrame = m_webPage->d->backingStoreClientForFrame(m_webPage->d->m_mainFrame);
ASSERT(backingStoreClientForFrame);
backingStoreClientForFrame->checkOriginOfCurrentScrollOperation();
m_webPage->backingStore()->d->slowScroll(delta, updateRect, immediate);
}
}
示例4: scroll
void ChromeClientBlackBerry::scroll(const IntSize& delta, const IntRect& scrollViewRect, const IntRect& clipRect)
{
// FIXME: There's a chance the function is called indirectly by FrameView's dtor
// when the Frame's view() is null. We probably want to fix it in another way, but
// at this moment let's do a quick fix.
if (!m_webPagePrivate->m_mainFrame->view())
return;
BackingStoreClient* backingStoreClientForFrame = m_webPagePrivate->backingStoreClientForFrame(m_webPagePrivate->m_mainFrame);
ASSERT(backingStoreClientForFrame);
backingStoreClientForFrame->checkOriginOfCurrentScrollOperation();
m_webPagePrivate->m_backingStore->d->scroll(delta, scrollViewRect, clipRect);
}
示例5: scroll
void ChromeClientBlackBerry::scroll(const IntSize& delta, const IntRect& scrollViewRect, const IntRect& clipRect)
{
// FIXME: There's a chance the function is called indirectly by FrameView's dtor
// when the Frame's view() is null. We probably want to fix it in another way, but
// at this moment let's do a quick fix.
if (!m_webPagePrivate->m_mainFrame->view())
return;
BackingStoreClient* backingStoreClient = m_webPagePrivate->backingStoreClient();
ASSERT(backingStoreClient);
backingStoreClient->checkOriginOfCurrentScrollOperation();
m_webPagePrivate->m_backingStore->d->scroll(delta, scrollViewRect, clipRect);
// Shift the spell check dialog box as we scroll.
m_webPagePrivate->m_inputHandler->redrawSpellCheckDialogIfRequired();
}
示例6: transitionToCommittedForNewPage
void FrameLoaderClientBlackBerry::transitionToCommittedForNewPage()
{
m_cancelLoadOnNextData = false;
// In Frame::createView, Frame's FrameView object is set to 0 and recreated.
// This operation is not atomic, and an attempt to blit contents might happen
// in the backing store from another thread (see BackingStorePrivate::blitContents method),
// so we suspend and resume screen update to make sure we do not get a invalid FrameView
// state.
BackingStoreClient* backingStoreClientForFrame = m_webPagePrivate->backingStoreClientForFrame(m_frame);
if (backingStoreClientForFrame)
backingStoreClientForFrame->backingStore()->d->suspendScreenAndBackingStoreUpdates();
// We are navigating away from this document, so clean up any footprint we might have.
if (m_frame->document())
m_webPagePrivate->clearDocumentData(m_frame->document());
Color backgroundColor(m_webPagePrivate->m_webSettings->backgroundColor());
m_frame->createView(m_webPagePrivate->viewportSize(), /* viewport */
backgroundColor, /* background color */
backgroundColor.hasAlpha(), /* is transparent */
m_webPagePrivate->actualVisibleSize(), /* fixed reported size */
m_webPagePrivate->fixedLayoutSize(), /* fixed layout size */
m_webPagePrivate->useFixedLayout(), /* use fixed layout */
ScrollbarAlwaysOff, /* hor mode */
true, /* lock the mode */
ScrollbarAlwaysOff, /* ver mode */
true); /* lock the mode */
if (backingStoreClientForFrame)
backingStoreClientForFrame->backingStore()->d->resumeScreenAndBackingStoreUpdates(BackingStore::None);
m_frame->view()->updateCanHaveScrollbars();
if (isMainFrame()) {
// Since the mainframe has a tiled backingstore request to receive all update
// rects instead of the default which just sends update rects for currently
// visible viewport.
m_frame->view()->setPaintsEntireContents(true);
}
}