0

More options for the types of margins to add.

Original (broken) CL: http://codereview.chromium.org/8227034
Already approved by dpapad@

TBR=dpapad@chromium.org
BUG=NONE
TEST=NONE


Review URL: http://codereview.chromium.org/8261005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105281 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
vandebo@chromium.org
2011-10-13 09:05:42 +00:00
parent 6ffcb08137
commit 6a7fdfd56a
6 changed files with 49 additions and 40 deletions

@ -172,24 +172,24 @@ cr.define('print_preview', function() {
/**
* @return {number} The value of the selected margin option.
* @private
*/
get selectedMarginsValue_() {
return this.marginList_.options[this.marginList_.selectedIndex].value;
get selectedMarginsValue() {
var val = this.marginList_.options[this.marginList_.selectedIndex].value;
return parseInt(val, 10);
},
/**
* @return {boolean} True if default margins are selected.
*/
isDefaultMarginsSelected: function() {
return this.selectedMarginsValue_ == MarginSettings.MARGINS_VALUE_DEFAULT;
return this.selectedMarginsValue == MarginSettings.MARGINS_VALUE_DEFAULT;
},
/**
* @return {boolean} True if no margins are selected.
*/
isNoMarginsSelected: function() {
return this.selectedMarginsValue_ ==
return this.selectedMarginsValue ==
MarginSettings.MARGINS_VALUE_NO_MARGINS;
},
@ -197,7 +197,7 @@ cr.define('print_preview', function() {
* @return {boolean} True if custom margins are selected.
*/
isCustomMarginsSelected: function() {
return this.selectedMarginsValue_ == MarginSettings.MARGINS_VALUE_CUSTOM;
return this.selectedMarginsValue == MarginSettings.MARGINS_VALUE_CUSTOM;
},
/**
@ -360,7 +360,7 @@ cr.define('print_preview', function() {
else if (this.isCustomMarginsSelected())
this.onCustomMarginsSelected_();
this.lastSelectedOption_ = this.selectedMarginsValue_;
this.lastSelectedOption_ = this.selectedMarginsValue;
},
/**

@ -355,11 +355,13 @@ function getSettings() {
'printWithCloudPrint': printWithCloudPrint,
'isFirstRequest' : false,
'headerFooterEnabled': headerFooterSettings.hasHeaderFooter(),
'defaultMarginsSelected': marginSettings.isDefaultMarginsSelected(),
'margins': marginSettings.customMargins,
'marginsType': marginSettings.selectedMarginsValue,
'requestID': -1,
'generateDraftData': generateDraftData};
if (marginSettings.isCustomMarginsSelected())
settings['marginsCustom'] = marginSettings.customMargins;
var printerList = $('printer-list');
var selectedPrinter = printerList.selectedIndex;
if (cloudprint.isCloudPrint(printerList.options[selectedPrinter])) {

@ -164,37 +164,36 @@ void SetMarginsForPDF(PrintMsg_Print_Params* settings) {
// Get the margins option selected and set custom margins appropriately.
void SetCustomMarginsIfSelected(const DictionaryValue& job_settings,
PrintMsg_PrintPages_Params* settings) {
bool default_margins_selected;
if (!job_settings.GetBoolean(printing::kSettingDefaultMarginsSelected,
&default_margins_selected)) {
int margin_type = printing::DEFAULT_MARGINS;
if (!job_settings.GetInteger(printing::kSettingMarginsType, &margin_type)) {
NOTREACHED();
default_margins_selected = true;
}
if (default_margins_selected)
if (margin_type == printing::DEFAULT_MARGINS)
return;
DictionaryValue* custom_margins;
if (!job_settings.GetDictionary(printing::kSettingMargins,
&custom_margins)) {
NOTREACHED();
return;
}
double custom_margin_top_in_points = 0;
double custom_margin_left_in_points = 0;
double custom_margin_right_in_points = 0;
double custom_margin_bottom_in_points = 0;
if (!custom_margins->GetDouble(printing::kSettingMarginTop,
&custom_margin_top_in_points) ||
!custom_margins->GetDouble(printing::kSettingMarginLeft,
&custom_margin_left_in_points) ||
!custom_margins->GetDouble(printing::kSettingMarginRight,
&custom_margin_right_in_points) ||
!custom_margins->GetDouble(printing::kSettingMarginBottom,
&custom_margin_bottom_in_points)) {
NOTREACHED();
return;
if (margin_type == printing::CUSTOM_MARGINS) {
DictionaryValue* custom_margins;
if (!job_settings.GetDictionary(printing::kSettingMarginsCustom,
&custom_margins)) {
NOTREACHED();
return;
}
if (!custom_margins->GetDouble(printing::kSettingMarginTop,
&custom_margin_top_in_points) ||
!custom_margins->GetDouble(printing::kSettingMarginLeft,
&custom_margin_left_in_points) ||
!custom_margins->GetDouble(printing::kSettingMarginRight,
&custom_margin_right_in_points) ||
!custom_margins->GetDouble(printing::kSettingMarginBottom,
&custom_margin_bottom_in_points)) {
NOTREACHED();
return;
}
}
int dpi = GetDPI(&settings->params);

@ -49,7 +49,7 @@ void CreatePrintSettingsDictionary(DictionaryValue* dict) {
dict->SetString(printing::kPreviewUIAddr, "0xb33fbeef");
dict->SetInteger(printing::kPreviewRequestID, 12345);
dict->SetBoolean(printing::kIsFirstRequest, true);
dict->SetBoolean(printing::kSettingDefaultMarginsSelected, true);
dict->SetInteger(printing::kSettingMarginsType, printing::DEFAULT_MARGINS);
dict->SetBoolean(printing::kSettingHeaderFooterEnabled, false);
dict->SetBoolean(printing::kSettingGenerateDraftData, true);
}

@ -36,10 +36,6 @@ const char kSettingContentWidth[] = "contentWidth";
// Number of copies.
const char kSettingCopies[] = "copies";
// Key that specifies if the default margins have been selected or not.
// True if selected, false if not.
const char kSettingDefaultMarginsSelected[] = "defaultMarginsSelected";
// Device name: Unique printer identifier.
const char kSettingDeviceName[] = "deviceName";
@ -99,8 +95,12 @@ const char kSettingMarginRight[] = "marginRight";
// Key that specifies the top margin of the page.
const char kSettingMarginTop[] = "marginTop";
// Key that specifies the array of custom margins as set by the user.
const char kSettingMargins[] = "margins";
// Key that specifies the dictionary of custom margins as set by the user.
const char kSettingMarginsCustom[] = "marginsCustom";
// Key that specifies the type of margins to use. Value is an int from the
// MarginType enum.
const char kSettingMarginsType[] = "marginsType";
// A page range.
const char kSettingPageRange[] = "pageRange";

@ -19,7 +19,6 @@ PRINTING_EXPORT extern const char kSettingColor[];
PRINTING_EXPORT extern const char kSettingContentHeight[];
PRINTING_EXPORT extern const char kSettingContentWidth[];
PRINTING_EXPORT extern const char kSettingCopies[];
PRINTING_EXPORT extern const char kSettingDefaultMarginsSelected[];
PRINTING_EXPORT extern const char kSettingDeviceName[];
PRINTING_EXPORT extern const char kSettingDuplexMode[];
PRINTING_EXPORT extern const char kSettingGenerateDraftData[];
@ -38,7 +37,8 @@ PRINTING_EXPORT extern const char kSettingMarginBottom[];
PRINTING_EXPORT extern const char kSettingMarginLeft[];
PRINTING_EXPORT extern const char kSettingMarginRight[];
PRINTING_EXPORT extern const char kSettingMarginTop[];
PRINTING_EXPORT extern const char kSettingMargins[];
PRINTING_EXPORT extern const char kSettingMarginsCustom[];
PRINTING_EXPORT extern const char kSettingMarginsType[];
PRINTING_EXPORT extern const char kSettingPageRange[];
PRINTING_EXPORT extern const char kSettingPageRangeFrom[];
PRINTING_EXPORT extern const char kSettingPageRangeTo[];
@ -112,6 +112,14 @@ enum ColorModels {
PROCESSCOLORMODEL_RGB, // Used in canon printer ppds
};
// What kind of margins to use.
enum MarginType {
DEFAULT_MARGINS, // Default varies depending on headers being enabled or not
NO_MARGINS,
CUSTOM_MARGINS,
PRINTABLE_AREA_MARGINS,
};
} // namespace printing
#endif // PRINTING_PRINT_JOB_CONSTANTS_H_