예제 #1
0
파일: MainFrm.cpp 프로젝트: enramot/browser
void CMainFrame::OnSize(UINT nType, int cx, int cy) {
	CFrameWnd::OnSize(nType, cx, cy);
	if(m_bInitialized) {
		GetContentView()->Invalidate(true);
	}
	m_bInitialized = true;
}
예제 #2
0
emMainPanel::emMainPanel(
	ParentArg parent, const emString & name, double controlTallness
)
	: emPanel(parent, name),
	SliderTimer(GetScheduler())
{
	MainConfig=emMainConfig::Acquire(GetRootContext());

	ControlEdgesColor=emTkLook().GetBgColor();

	ControlEdgesImage=emGetInsResImage(GetRootContext(),"emMain","ControlEdges.tga");

	ControlViewPanel=new emSubViewPanel(this,"control view");
	ContentViewPanel=new emSubViewPanel(this,"content view");
	Slider=new SliderPanel(*this,"slider");

	GetControlView().SetViewFlags(
		emView::VF_POPUP_ZOOM          |
		emView::VF_ROOT_SAME_TALLNESS  |
		emView::VF_NO_ACTIVE_HIGHLIGHT
	);

	GetControlView().SetBackgroundColor(emTkLook().GetBgColor());

	GetContentView().SetViewFlags(
		emView::VF_ROOT_SAME_TALLNESS
	);

	ControlTallness=controlTallness;

	UnifiedSliderPos=MainConfig->ControlViewSize;

	FullscreenOn=false;

	OldMouseX=0.0;
	OldMouseY=0.0;

	ContentViewPanel->ActivateLater();

	AddWakeUpSignal(GetControlView().GetEOISignal());
	AddWakeUpSignal(SliderTimer.GetSignal());
	if (GetWindow()) AddWakeUpSignal(GetWindow()->GetWindowFlagsSignal());

	UpdateCoordinates();
	UpdateFullscreen();
	UpdateSliderHiding(false);
}
예제 #3
0
파일: MainFrm.cpp 프로젝트: enramot/browser
void CMainFrame::Export() {
	GetContentView()->Export();
}
already_AddRefed<Layer>
RenderFrameParent::BuildLayer(nsDisplayListBuilder* aBuilder,
                              nsIFrame* aFrame,
                              LayerManager* aManager,
                              const nsIntRect& aVisibleRect)
{
  NS_ABORT_IF_FALSE(aFrame,
                    "makes no sense to have a shadow tree without a frame");
  NS_ABORT_IF_FALSE(!mContainer ||
                    IsTempLayerManager(aManager) ||
                    mContainer->Manager() == aManager,
                    "retaining manager changed out from under us ... HELP!");

  if (mContainer && mContainer->Manager() != aManager) {
    // This can happen if aManager is a "temporary" manager, or if the
    // widget's layer manager changed out from under us.  We need to
    // FIXME handle the former case somehow, probably with an API to
    // draw a manager's subtree.  The latter is bad bad bad, but the
    // the NS_ABORT_IF_FALSE() above will flag it.  Returning NULL
    // here will just cause the shadow subtree not to be rendered.
    return nsnull;
  }

  if (mContainer) {
    ClearContainer(mContainer);
  }

  ContainerLayer* shadowRoot = GetRootLayer();
  if (!shadowRoot) {
    mContainer = nsnull;
    return nsnull;
  }

  NS_ABORT_IF_FALSE(!shadowRoot || shadowRoot->Manager() == aManager,
                    "retaining manager changed out from under us ... HELP!");

  // Wrap the shadow layer tree in mContainer.
  if (!mContainer) {
    mContainer = aManager->CreateContainerLayer();
  }
  NS_ABORT_IF_FALSE(!mContainer->GetFirstChild(),
                    "container of shadow tree shouldn't have a 'root' here");

  mContainer->InsertAfter(shadowRoot, nsnull);

  AssertInTopLevelChromeDoc(mContainer, aFrame);
  ViewTransform transform;
  TransformShadowTree(aBuilder, mFrameLoader, aFrame, shadowRoot, transform);
  mContainer->SetClipRect(nsnull);

  if (mFrameLoader->AsyncScrollEnabled()) {
    const nsContentView* view = GetContentView(FrameMetrics::ROOT_SCROLL_ID);
    BuildBackgroundPatternFor(mContainer,
                              shadowRoot,
                              view->GetViewConfig(),
                              mBackgroundColor,
                              aManager, aFrame);
  }
  mContainer->SetVisibleRegion(aVisibleRect);

  return nsRefPtr<Layer>(mContainer).forget();
}