mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-15 19:20:13 +00:00
Changes for qnx/photon platform. They should not affect building/runtime other platforms.
When printing from the embedded application, allow it to set the print frame, BG colors, BG images in the print settings, according to the preferences.
This commit is contained in:
parent
d5ad179f1c
commit
64136e153b
@ -54,6 +54,9 @@
|
||||
#include "nsString.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsIPref.h"
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
|
||||
nsDeviceContextSpecPh :: nsDeviceContextSpecPh()
|
||||
{
|
||||
@ -168,6 +171,48 @@ NS_IMETHODIMP nsDeviceContextSpecPh :: Init(nsIWidget* aWidget,
|
||||
aPS->GetEndPageRange( &p );
|
||||
PpPrintReleasePC(mPC);
|
||||
mPC = ( PpPrintContext_t *) p;
|
||||
|
||||
/* set the print frame / BG colors and images settings, according to the Pt_ARG_WEB_OPTION setting */
|
||||
nsresult res;
|
||||
nsCOMPtr<nsIPref> prefs(do_GetService(kPrefCID, &res));
|
||||
|
||||
PRInt16 howToEnableFrameUI = nsIPrintSettings::kFrameEnableNone;
|
||||
aPS->GetHowToEnableFrameUI(&howToEnableFrameUI);
|
||||
|
||||
if( howToEnableFrameUI == nsIPrintSettings::kFrameEnableAll ||
|
||||
howToEnableFrameUI == nsIPrintSettings::kFrameEnableAsIsAndEach )
|
||||
{
|
||||
/* we have frames and we have a selected frame already only if kFrameEnableAll */
|
||||
/* look at the Pt_ARG_WEB_OPTION related to this */
|
||||
|
||||
char *printFrame = NULL;
|
||||
if( prefs ) prefs->CopyCharPref( "user.print.print_frame", &printFrame );
|
||||
|
||||
if( printFrame ) {
|
||||
if( !stricmp( printFrame, "print_frame_as_is" ) )
|
||||
aPS->SetPrintFrameType(nsIPrintSettings::kFramesAsIs);
|
||||
else if( !stricmp( printFrame, "print_frame_all" ) )
|
||||
aPS->SetPrintFrameType(nsIPrintSettings::kEachFrameSep);
|
||||
else if( !stricmp( printFrame, "print_frame_selected" ) ) {
|
||||
if( howToEnableFrameUI == nsIPrintSettings::kFrameEnableAll )
|
||||
aPS->SetPrintFrameType(nsIPrintSettings::kSelectedFrame);
|
||||
else /* if no frame is selected, use the kFramesAsIs */
|
||||
aPS->SetPrintFrameType(nsIPrintSettings::kFramesAsIs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char *SetPrintBGColors = NULL, *SetPrintBGImages = NULL;
|
||||
if( prefs ) prefs->CopyCharPref( "user.print.SetPrintBGColors", &SetPrintBGColors );
|
||||
if( prefs ) prefs->CopyCharPref( "user.print.SetPrintBGImages", &SetPrintBGImages );
|
||||
|
||||
if( SetPrintBGColors && !stricmp( SetPrintBGColors, "true" ) )
|
||||
aPS->SetPrintBGColors( PR_TRUE );
|
||||
else aPS->SetPrintBGColors( PR_FALSE );
|
||||
|
||||
if( SetPrintBGImages && !stricmp( SetPrintBGImages, "true" ) )
|
||||
aPS->SetPrintBGImages( PR_TRUE );
|
||||
else aPS->SetPrintBGImages( PR_FALSE );
|
||||
}
|
||||
|
||||
return rv;
|
||||
|
Loading…
Reference in New Issue
Block a user