Bug 344696: Remove nsIDeviceContext::Get/SetZoom. r+sr=roc.

This commit is contained in:
sharparrow1%yahoo.com 2006-07-21 00:16:07 +00:00
Родитель bae4fbcd3c
Коммит daf26752ad
9 изменённых файлов: 16 добавлений и 79 удалений

Просмотреть файл

@ -1530,36 +1530,14 @@ NS_IMETHODIMP
nsDocShell::GetZoom(float *zoom) nsDocShell::GetZoom(float *zoom)
{ {
NS_ENSURE_ARG_POINTER(zoom); NS_ENSURE_ARG_POINTER(zoom);
NS_ENSURE_SUCCESS(EnsureDeviceContext(), NS_ERROR_FAILURE); *zoom = 1.0f;
NS_ENSURE_SUCCESS(mDeviceContext->GetZoom(*zoom), NS_ERROR_FAILURE);
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP NS_IMETHODIMP
nsDocShell::SetZoom(float zoom) nsDocShell::SetZoom(float zoom)
{ {
NS_ENSURE_SUCCESS(EnsureDeviceContext(), NS_ERROR_FAILURE); return NS_ERROR_NOT_IMPLEMENTED;
mDeviceContext->SetZoom(zoom);
// get the pres shell
nsCOMPtr<nsIPresShell> presShell;
NS_ENSURE_SUCCESS(GetPresShell(getter_AddRefs(presShell)),
NS_ERROR_FAILURE);
NS_ENSURE_TRUE(presShell, NS_ERROR_FAILURE);
// get the view manager
nsIViewManager* vm = presShell->GetViewManager();
NS_ENSURE_TRUE(vm, NS_ERROR_FAILURE);
// get the root view
nsIView *rootView = nsnull; // views are not ref counted
vm->GetRootView(rootView);
if (rootView)
vm->UpdateView(rootView, 0);
return NS_OK;
} }
NS_IMETHODIMP NS_IMETHODIMP

Просмотреть файл

@ -107,9 +107,6 @@ public:
nsIFontMetrics*& aMetrics); nsIFontMetrics*& aMetrics);
NS_IMETHOD GetMetricsFor(const nsFont& aFont, nsIFontMetrics*& aMetrics); NS_IMETHOD GetMetricsFor(const nsFont& aFont, nsIFontMetrics*& aMetrics);
NS_IMETHOD SetZoom(float aZoom);
NS_IMETHOD GetZoom(float &aZoom) const;
NS_IMETHOD FirstExistingFont(const nsFont& aFont, nsString& aFaceName); NS_IMETHOD FirstExistingFont(const nsFont& aFont, nsString& aFaceName);
NS_IMETHOD GetLocalFontName(const nsString& aFaceName, nsString& aLocalName, NS_IMETHOD GetLocalFontName(const nsString& aFaceName, nsString& aLocalName,
@ -154,7 +151,6 @@ protected:
nsFontCache *mFontCache; nsFontCache *mFontCache;
nsCOMPtr<nsIAtom> mLocaleLangGroup; // XXX temp fix for performance bug - erik nsCOMPtr<nsIAtom> mLocaleLangGroup; // XXX temp fix for performance bug - erik
float mZoom;
nsHashtable* mFontAliasTable; nsHashtable* mFontAliasTable;
float mCPixelScale; float mCPixelScale;

Просмотреть файл

@ -401,11 +401,6 @@ public:
*/ */
NS_IMETHOD GetMetricsFor(const nsFont& aFont, nsIFontMetrics*& aMetrics) = 0; NS_IMETHOD GetMetricsFor(const nsFont& aFont, nsIFontMetrics*& aMetrics) = 0;
//get and set the document zoom value used for display-time
//scaling. default is 1.0 (no zoom)
NS_IMETHOD SetZoom(float aZoom) = 0;
NS_IMETHOD GetZoom(float &aZoom) const = 0;
/** /**
* Check to see if a particular named font exists. * Check to see if a particular named font exists.
* @param aFontName character string of font face name * @param aFontName character string of font face name

Просмотреть файл

@ -55,11 +55,13 @@ NS_IMPL_ISUPPORTS3(DeviceContextImpl, nsIDeviceContext, nsIObserver, nsISupports
DeviceContextImpl::DeviceContextImpl() DeviceContextImpl::DeviceContextImpl()
{ {
mFontCache = nsnull;
mDevUnitsToAppUnits = 1.0f; mDevUnitsToAppUnits = 1.0f;
mAppUnitsToDevUnits = 1.0f; mAppUnitsToDevUnits = 1.0f;
mTwipsToPixels = 1.0f;
mPixelsToTwips = 1.0f;
mFontCache = nsnull;
mCPixelScale = 1.0f; mCPixelScale = 1.0f;
mZoom = 1.0f;
mWidget = nsnull; mWidget = nsnull;
mFontAliasTable = nsnull; mFontAliasTable = nsnull;
@ -341,18 +343,6 @@ NS_IMETHODIMP DeviceContextImpl::GetMetricsFor(const nsFont& aFont, nsIFontMetri
return mFontCache->GetMetricsFor(aFont, mLocaleLangGroup, aMetrics); return mFontCache->GetMetricsFor(aFont, mLocaleLangGroup, aMetrics);
} }
NS_IMETHODIMP DeviceContextImpl::SetZoom(float aZoom)
{
mZoom = aZoom;
return NS_OK;
}
NS_IMETHODIMP DeviceContextImpl::GetZoom(float &aZoom) const
{
aZoom = mZoom;
return NS_OK;
}
NS_IMETHODIMP DeviceContextImpl::GetDepth(PRUint32& aDepth) NS_IMETHODIMP DeviceContextImpl::GetDepth(PRUint32& aDepth)
{ {
aDepth = 24; aDepth = 24;

Просмотреть файл

@ -106,14 +106,10 @@ nsThebesDeviceContext::nsThebesDeviceContext()
PR_LOG(gThebesGFXLog, PR_LOG_DEBUG, ("#### Creating DeviceContext %p\n", this)); PR_LOG(gThebesGFXLog, PR_LOG_DEBUG, ("#### Creating DeviceContext %p\n", this));
mDevUnitsToAppUnits = 1.0f;
mAppUnitsToDevUnits = 1.0f;
mCPixelScale = 1.0f;
mZoom = 1.0f;
mDepth = 0; mDepth = 0;
mDpi = -1; mWidth = 0;
mHeight = 0;
mWidget = nsnull;
mPrinter = PR_FALSE; mPrinter = PR_FALSE;
mWidgetSurfaceCache.Init(); mWidgetSurfaceCache.Init();
@ -140,7 +136,7 @@ nsThebesDeviceContext::SetDPI(PRInt32 aPrefDPI)
PRInt32 OSVal; PRInt32 OSVal;
PRBool do_round = PR_TRUE; PRBool do_round = PR_TRUE;
mDpi = 96; PRInt32 dpi = 96;
#if defined(MOZ_ENABLE_GTK2) #if defined(MOZ_ENABLE_GTK2)
float screenWidthIn = float(::gdk_screen_width_mm()) / 25.4f; float screenWidthIn = float(::gdk_screen_width_mm()) / 25.4f;
@ -149,22 +145,22 @@ nsThebesDeviceContext::SetDPI(PRInt32 aPrefDPI)
if (aPrefDPI > 0) { if (aPrefDPI > 0) {
// If there's a valid pref value for the logical resolution, // If there's a valid pref value for the logical resolution,
// use it. // use it.
mDpi = aPrefDPI; dpi = aPrefDPI;
} else if ((aPrefDPI == 0) || (OSVal > 96)) { } else if ((aPrefDPI == 0) || (OSVal > 96)) {
// Either if the pref is 0 (force use of OS value) or the OS // Either if the pref is 0 (force use of OS value) or the OS
// value is bigger than 96, use the OS value. // value is bigger than 96, use the OS value.
mDpi = OSVal; dpi = OSVal;
} else { } else {
// if we couldn't get the pref or it's negative, and the OS // if we couldn't get the pref or it's negative, and the OS
// value is under 96ppi, then use 96. // value is under 96ppi, then use 96.
mDpi = 96; dpi = 96;
} }
if (mPrinter) { if (mPrinter) {
// cairo printing doesn't really have the // cairo printing doesn't really have the
// notion of DPI so we have to use 72... // notion of DPI so we have to use 72...
// XXX is this an issue? we force everything else to be 96+ // XXX is this an issue? we force everything else to be 96+
mDpi = 72; dpi = 72;
do_round = PR_FALSE; do_round = PR_FALSE;
} }
@ -180,13 +176,13 @@ nsThebesDeviceContext::SetDPI(PRInt32 aPrefDPI)
ReleaseDC((HWND)nsnull, dc); ReleaseDC((HWND)nsnull, dc);
if (OSVal != 0) if (OSVal != 0)
mDpi = OSVal; dpi = OSVal;
#endif #endif
int in2pt = 72; int in2pt = 72;
// make p2t a nice round number - this prevents rounding problems // make p2t a nice round number - this prevents rounding problems
mPixelsToTwips = float(NSIntPointsToTwips(in2pt)) / float(mDpi); mPixelsToTwips = float(NSIntPointsToTwips(in2pt)) / float(dpi);
if (do_round) if (do_round)
mPixelsToTwips = float(NSToIntRound(mPixelsToTwips)); mPixelsToTwips = float(NSToIntRound(mPixelsToTwips));
mTwipsToPixels = 1.0f / mPixelsToTwips; mTwipsToPixels = 1.0f / mPixelsToTwips;

Просмотреть файл

@ -137,15 +137,10 @@ protected:
PRUint32 mDepth; PRUint32 mDepth;
private: private:
nsNativeWidget mWidget;
nsCOMPtr<nsIScreenManager> mScreenManager; nsCOMPtr<nsIScreenManager> mScreenManager;
float mWidthFloat;
float mHeightFloat;
PRInt32 mWidth; PRInt32 mWidth;
PRInt32 mHeight; PRInt32 mHeight;
PRInt32 mDpi;
PRBool mPrinter; PRBool mPrinter;

Просмотреть файл

@ -80,7 +80,7 @@ nsPrintData::nsPrintData(ePrintDataType aType) :
mIsAborted(PR_FALSE), mPreparingForPrint(PR_FALSE), mDocWasToBeDestroyed(PR_FALSE), mIsAborted(PR_FALSE), mPreparingForPrint(PR_FALSE), mDocWasToBeDestroyed(PR_FALSE),
mShrinkToFit(PR_FALSE), mPrintFrameType(nsIPrintSettings::kFramesAsIs), mShrinkToFit(PR_FALSE), mPrintFrameType(nsIPrintSettings::kFramesAsIs),
mNumPrintableDocs(0), mNumDocsPrinted(0), mNumPrintablePages(0), mNumPagesPrinted(0), mNumPrintableDocs(0), mNumDocsPrinted(0), mNumPrintablePages(0), mNumPagesPrinted(0),
mShrinkRatio(1.0), mOrigDCScale(1.0), mOrigZoom(1.0), mPPEventListeners(NULL), mShrinkRatio(1.0), mOrigDCScale(1.0), mPPEventListeners(NULL),
mBrandName(nsnull) mBrandName(nsnull)
{ {
@ -101,12 +101,6 @@ nsPrintData::nsPrintData(ePrintDataType aType) :
nsPrintData::~nsPrintData() nsPrintData::~nsPrintData()
{ {
// Set the cached Zoom value back into the DC
if (mPrintDC) {
mPrintDC->SetZoom(mOrigZoom);
}
// remove the event listeners // remove the event listeners
if (mPPEventListeners) { if (mPPEventListeners) {
mPPEventListeners->RemoveListeners(); mPPEventListeners->RemoveListeners();

Просмотреть файл

@ -158,7 +158,6 @@ public:
PRInt32 mNumPagesPrinted; PRInt32 mNumPagesPrinted;
float mShrinkRatio; float mShrinkRatio;
float mOrigDCScale; float mOrigDCScale;
float mOrigZoom;
nsCOMPtr<nsIPrintSettings> mPrintSettings; nsCOMPtr<nsIPrintSettings> mPrintSettings;
nsCOMPtr<nsIPrintOptions> mPrintOptions; nsCOMPtr<nsIPrintOptions> mPrintOptions;

Просмотреть файл

@ -931,9 +931,7 @@ nsPrintEngine::PrintPreview(nsIPrintSettings* aPrintSettings,
// Check to see if we need to transfer any of our old values // Check to see if we need to transfer any of our old values
// over to the new PrintData object // over to the new PrintData object
if (mOldPrtPreview) { if (mOldPrtPreview) {
mPrt->mOrigZoom = mOldPrtPreview->mOrigZoom;
mPrt->mOrigDCScale = mOldPrtPreview->mOrigDCScale; mPrt->mOrigDCScale = mOldPrtPreview->mOrigDCScale;
} else { } else {
// Get the Original PixelScale in case we need to start changing it // Get the Original PixelScale in case we need to start changing it
mDeviceContext->GetCanonicalPixelScale(mPrt->mOrigDCScale); mDeviceContext->GetCanonicalPixelScale(mPrt->mOrigDCScale);
@ -1084,10 +1082,6 @@ nsPrintEngine::PrintPreview(nsIPrintSettings* aPrintSettings,
mPrt->mPrintDC = mDeviceContext; mPrt->mPrintDC = mDeviceContext;
// Cache original Zoom value and then set it to 1.0
mPrt->mPrintDC->GetZoom(mPrt->mOrigZoom);
mPrt->mPrintDC->SetZoom(1.0f);
if (mDeviceContext) { if (mDeviceContext) {
mDeviceContext->SetUseAltDC(kUseAltDCFor_FONTMETRICS, PR_TRUE); mDeviceContext->SetUseAltDC(kUseAltDCFor_FONTMETRICS, PR_TRUE);
mDeviceContext->SetUseAltDC(kUseAltDCFor_CREATERC_REFLOW, PR_TRUE); mDeviceContext->SetUseAltDC(kUseAltDCFor_CREATERC_REFLOW, PR_TRUE);