Center image diff controls for opacity mode

Based on Ib7583025.

Change-Id: I3550cf4c4c24578e3e839c139adeb7107d6fba99
diff --git a/gr-opacity-diff-mode/gr-opacity-diff-mode.html b/gr-opacity-diff-mode/gr-opacity-diff-mode.html
index d884ba9..c4604e4 100644
--- a/gr-opacity-diff-mode/gr-opacity-diff-mode.html
+++ b/gr-opacity-diff-mode/gr-opacity-diff-mode.html
@@ -20,6 +20,9 @@
       :host {
         display: block;
       }
+      .wrapper {
+        box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
+      }
       img {
         display: block;
         height: var(--img-height);
@@ -31,34 +34,68 @@
         opacity: var(--my-opacity-value);
         z-index: 1;
       }
-      #imageDivContainer {
-        display: flex;
+      #imageDiffContainer {
         height: var(--div-height);
-        justify-content: space-around;
+        margin: auto;
+        width: var(--div-width);
+      }
+      #controlsContainer {
+        border-top: 1px solid var(--border-color, #ddd);
+        display: flex;
+      }
+      #controlsBox {
+        display: flex;
+        justify-content: space-between;
+        margin: 0 1em;
+        min-width: 32em;
+        width: 100%;
+      }
+      label {
+        padding: 1em .5em;
+      }
+      input {
+        padding: 1em 0;
+      }
+      .cell {
+        align-items: center;
+        display: flex;
+      }
+      #opacitySlider {
+        width: 10em;
       }
     </style>
-    <div id="imageDivContainer">
-      <img id="imageBase"/>
-      <img data-opacity$="{{opacityValue}}" id="imageRevision"/>
+    <div class="wrapper">
+      <div id="imageDiffContainer">
+        <img id="imageBase"/>
+        <img data-opacity$="{{opacityValue}}" id="imageRevision"/>
+      </div>
+      <div id="controlsContainer">
+        <div id="controlsBox">
+          <div class="cell">
+            <input
+                id="scaleSizesToggle"
+                on-tap="handleScaleSizesToggle"
+                type="checkbox">
+            <label for="scaleSizesToggle">
+              Scale to same size
+            </label>
+          </div>
+          <div class="cell">
+            <label for="opacitySlider">
+              Revision image opacity
+            </label>
+            <input
+                id="opacitySlider"
+                max="1.0"
+                min="0.0"
+                on-input="handleOpacityChange"
+                step=".01"
+                type="range"
+                value="0.5"/>
+          </div>
+        </div>
+      </div>
     </div>
-    <div>
-      <label>
-        <input
-            id="scaleSizesToggle"
-            on-tap="handleScaleSizesToggle"
-            type="checkbox">
-        Scale to same size
-      </label>
-    </div>
-    <label for="opacitySlider">Opacity</label>
-    <input
-      id="opacitySlider"
-      max="1.0"
-      min="0.0"
-      on-input="handleOpacityChange"
-      step=".01"
-      type="range"
-      value="1.0"/>
   </template>
  <script src="gr-opacity-diff-mode.js"></script>
-</dom-module>
\ No newline at end of file
+</dom-module>
diff --git a/gr-opacity-diff-mode/gr-opacity-diff-mode.js b/gr-opacity-diff-mode/gr-opacity-diff-mode.js
index 237d413..6855d0c 100644
--- a/gr-opacity-diff-mode/gr-opacity-diff-mode.js
+++ b/gr-opacity-diff-mode/gr-opacity-diff-mode.js
@@ -26,13 +26,13 @@
       if (this.revisionImage) {
         const srcRevision = this.computeSrcString(this.revisionImage);
         this.$.imageRevision.setAttribute('src', srcRevision);
-        this.resizeDiffContainerHeight();
+        this.handleOpacityChange();
       }
       if (this.baseImage) {
         const srcBase = this.computeSrcString(this.baseImage);
         this.$.imageBase.setAttribute('src', srcBase);
-        this.resizeDiffContainerHeight();
       }
+      this.resizeDiffContainerHeight();
     },
 
     handleOpacityChange() {
@@ -62,7 +62,11 @@
           this.baseImage ? this.baseImage._height : 0,
           this.revisionImage ? this.revisionImage._height : 0);
       this.customStyle['--div-height'] = maxHeight + 'px';
+      const maxWidth = Math.max(
+          this.baseImage ? this.baseImage._width : 0,
+          this.revisionImage ? this.revisionImage._width : 0);
+      this.customStyle['--div-width'] = maxWidth + 'px';
       this.updateStyles();
     },
   });
-})();
\ No newline at end of file
+})();