Commit efe4885f authored by rbpotter's avatar rbpotter Committed by Commit Bot

PDF viewer: Add an HTML attribute for is-print-preview

This is a cleanup use an HTML attribute to position buttons when
Print Preview is hosting the plugin. This allows some simplification
compared to the previous implementation of using Polymer properties.

Change-Id: Icd73f2fa8969dc76579e477a7ad967f2b3ceeaaa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1880151
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#709364}
parent 4b61f2dd
...@@ -97,7 +97,6 @@ js_library("viewer-zoom-toolbar") { ...@@ -97,7 +97,6 @@ js_library("viewer-zoom-toolbar") {
":viewer-zoom-button", ":viewer-zoom-button",
"..:pdf_fitting_type", "..:pdf_fitting_type",
"//ui/webui/resources/js:assert.m", "//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:util.m",
] ]
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
--translate-x-distance: 132px; --translate-x-distance: 132px;
} }
:host([is-print-preview]) { :host-context([is-print-preview]) {
--translate-x-distance: 96px; --translate-x-distance: 96px;
} }
...@@ -19,13 +19,22 @@ ...@@ -19,13 +19,22 @@
transition-timing-function: cubic-bezier(0.4, 0, 1, 1); transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
} }
:host([show-on-left][closed_]) #wrapper { :host-context([is-print-preview][dir='ltr']):host([closed_]) #wrapper {
transform: translateX(calc(-1 * var(--translate-x-distance))); transform: translateX(calc(-1 * var(--translate-x-distance)));
} }
:host-context([dir='rtl']):host([closed_]) #wrapper {
transform: translateX(calc(-1 * var(--translate-x-distance)));
}
:host-context([is-print-preview][dir='rtl']):host([closed_]) #wrapper {
transform: translateX(var(--translate-x-distance));
}
cr-icon-button { cr-icon-button {
--cr-icon-button-size: 36px; --cr-icon-button-size: 36px;
--cr-icon-button-icon-size: 20px; --cr-icon-button-icon-size: 20px;
--cr-icon-button-ripple-opacity: .4;
background-color: rgb(242, 242, 242); background-color: rgb(242, 242, 242);
border-radius: 50%; border-radius: 50%;
color: var(--paper-grey-700); color: var(--paper-grey-700);
...@@ -33,28 +42,24 @@ ...@@ -33,28 +42,24 @@
@apply --shadow-elevation-2dp; @apply --shadow-elevation-2dp;
} }
:host(:not([is-print-preview])) cr-icon-button {
--cr-icon-button-ripple-opacity: .4;
}
cr-icon-button([disabled]) { cr-icon-button([disabled]) {
box-shadow: none; box-shadow: none;
} }
:host([is-print-preview]) cr-icon-button { :host-context([is-print-preview]) cr-icon-button {
--cr-icon-button-size: 32px; --cr-icon-button-size: 32px;
background-color: var(--google-grey-600); background-color: var(--google-grey-600);
color: white; color: white;
} }
@media (prefers-color-scheme: light) { @media (prefers-color-scheme: light) {
:host([is-print-preview]) cr-icon-button { :host-context([is-print-preview]) cr-icon-button {
--cr-icon-button-ripple-opacity: .5; --cr-icon-button-ripple-opacity: .5;
} }
} }
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
:host([is-print-preview]) cr-icon-button { :host-context([is-print-preview]) cr-icon-button {
background-color: var(--google-grey-900); background-color: var(--google-grey-900);
color: var(--google-grey-200); color: var(--google-grey-200);
} }
......
...@@ -40,16 +40,6 @@ Polymer({ ...@@ -40,16 +40,6 @@ Polymer({
reflectToAttribute: true, reflectToAttribute: true,
}, },
isPrintPreview: {
type: Boolean,
reflectToAttribute: true,
},
showOnLeft: {
type: Boolean,
reflectToAttribute: true,
},
/** @type {?Array<string>} */ /** @type {?Array<string>} */
tooltips: Array, tooltips: Array,
......
...@@ -9,25 +9,37 @@ ...@@ -9,25 +9,37 @@
z-index: 3; z-index: 3;
} }
:host([is-print-preview]) { :host-context([is-print-preview]) {
--button-position-offset: 24px; --button-position-offset: 24px;
} }
:host([show-on-left_]) { :host-context([is-print-preview][dir='ltr']),
:host-context([dir='rtl']) {
left: 0; left: 0;
right: auto; right: auto;
} }
:host-context([is-print-preview][dir='rtl']) {
left: auto;
right: 0;
}
#zoom-buttons { #zoom-buttons {
position: relative; position: relative;
right: var(--button-position-offset); right: var(--button-position-offset);
} }
:host([show-on-left_]) #zoom-buttons { :host-context([is-print-preview][dir='ltr']) #zoom-buttons,
:host-context([dir='rtl']) #zoom-buttons {
left: var(--button-position-offset); left: var(--button-position-offset);
right: auto; right: auto;
} }
:host-context([is-print-preview][dir='rtl']) #zoom-buttons {
left: auto;
right: var(--button-position-offset);
}
viewer-zoom-button { viewer-zoom-button {
display: block; display: block;
} }
...@@ -44,19 +56,13 @@ ...@@ -44,19 +56,13 @@
</style> </style>
<div id="zoom-buttons"> <div id="zoom-buttons">
<viewer-zoom-button id="fit-button" on-fabclick="fitToggle" delay="100" <viewer-zoom-button id="fit-button" on-fabclick="fitToggle" delay="100"
is-print-preview="[[isPrintPreview]]"
show-on-left="[[showOnLeft_]]"
keyboard-navigation-active="[[keyboardNavigationActive_]]" keyboard-navigation-active="[[keyboardNavigationActive_]]"
icons="pdf:fullscreen-exit cr:fullscreen"> icons="pdf:fullscreen-exit cr:fullscreen">
</viewer-zoom-button> </viewer-zoom-button>
<viewer-zoom-button id="zoom-in-button" icons="pdf:add" <viewer-zoom-button id="zoom-in-button" icons="pdf:add"
is-print-preview="[[isPrintPreview]]"
show-on-left="[[showOnLeft_]]"
keyboard-navigation-active="[[keyboardNavigationActive_]]" keyboard-navigation-active="[[keyboardNavigationActive_]]"
on-fabclick="zoomIn" delay="50"></viewer-zoom-button> on-fabclick="zoomIn" delay="50"></viewer-zoom-button>
<viewer-zoom-button id="zoom-out-button" icons="pdf:remove" <viewer-zoom-button id="zoom-out-button" icons="pdf:remove"
is-print-preview="[[isPrintPreview]]"
show-on-left="[[showOnLeft_]]"
keyboard-navigation-active="[[keyboardNavigationActive_]]" keyboard-navigation-active="[[keyboardNavigationActive_]]"
on-fabclick="zoomOut" delay="0"></viewer-zoom-button> on-fabclick="zoomOut" delay="0"></viewer-zoom-button>
</div> </div>
...@@ -7,7 +7,6 @@ import './icons.js'; ...@@ -7,7 +7,6 @@ import './icons.js';
import './viewer-zoom-button.js'; import './viewer-zoom-button.js';
import {assert} from 'chrome://resources/js/assert.m.js'; import {assert} from 'chrome://resources/js/assert.m.js';
import {isRTL} from 'chrome://resources/js/util.m.js';
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {FittingType} from '../pdf_fitting_type.js'; import {FittingType} from '../pdf_fitting_type.js';
...@@ -28,22 +27,13 @@ Polymer({ ...@@ -28,22 +27,13 @@ Polymer({
_template: html`{__html_template__}`, _template: html`{__html_template__}`,
properties: { properties: {
isPrintPreview: { isPrintPreview: Boolean,
type: Boolean,
reflectToAttribute: true,
},
/** @private */ /** @private */
keyboardNavigationActive_: { keyboardNavigationActive_: {
type: Boolean, type: Boolean,
value: false, value: false,
}, },
/** @private */
showOnLeft_: {
type: Boolean,
reflectToAttribute: true,
},
}, },
listeners: { listeners: {
...@@ -99,7 +89,6 @@ Polymer({ ...@@ -99,7 +89,6 @@ Polymer({
[strings.tooltipFitToPage, strings.tooltipFitToWidth]; [strings.tooltipFitToPage, strings.tooltipFitToWidth];
this.$['zoom-in-button'].tooltips = [strings.tooltipZoomIn]; this.$['zoom-in-button'].tooltips = [strings.tooltipZoomIn];
this.$['zoom-out-button'].tooltips = [strings.tooltipZoomOut]; this.$['zoom-out-button'].tooltips = [strings.tooltipZoomOut];
this.showOnLeft_ = isRTL() !== this.isPrintPreview;
}, },
/** Handle clicks of the fit-button. */ /** Handle clicks of the fit-button. */
......
...@@ -177,6 +177,8 @@ export class PDFViewer { ...@@ -177,6 +177,8 @@ export class PDFViewer {
/** @private {boolean} */ /** @private {boolean} */
this.isPrintPreview_ = location.origin === 'chrome://print'; this.isPrintPreview_ = location.origin === 'chrome://print';
document.documentElement.toggleAttribute(
'is-print-preview', this.isPrintPreview_);
/** @private {boolean} */ /** @private {boolean} */
this.isPrintPreviewLoadingFinished_ = false; this.isPrintPreviewLoadingFinished_ = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment