#!mojo mojo:sky_viewer
<!--
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-->
<sky>
<import src="/gen/examples/wm_flow/wm/window_frame_host.mojom.sky" as="example" />
<import src="/sky/framework/embedder.sky" as="embedder" />
<import src="/sky/framework/sky-button.sky"/>
<import src="/sky/framework/sky-checkbox.sky"/>
<import src="/sky/framework/sky-element/sky-element.sky" as="SkyElement"/>

<style>
/* FIXME: Hack until the requirement of a single root element is lifted. */
sky { height: 100%; }
</style>

<sky-element name="window-frame">
<template>
  <style>
  :host {
    height: 100%;
    background-color: lightgrey;
  }
  /* Nest two flexboxes and make the right side take up as much as possible */
  window-bar {
    display: flex;
  }
  left {
    flex: 1;
    display: flex;
    align-content: flex-start;
  }
  /* Also making the checkbox and label a flexbox for convenience */
  right {
    display: flex;
  }

  /* Style sky controls to make them look more like ui/views */
  sky-button {
    border: none;
    border: 1px solid blue;
    padding: 2px;
  }
  sky-button:hover {
    border: 1px solid lightblue;
    background-color: darkgrey;
  }
  </style>
  <window-bar>
    <left>
      <sky-checkbox on-click="handleCaptureClick" />Capture
    </left>
    <right>
      <sky-button on-click="handleEmbiggenClick">Embiggen</sky-button>
      <sky-button on-click="handleBegoneClick">Begone</sky-button>
    </right>
  </window-bar>
</template>
<script>
module.exports = class extends SkyElement {
  created() {
    this.embedder = embedder.connectToEmbedderService(example.WindowFrameHost);
    this.addEventListener('mousedown', function() {
      this.embedder.activateWindow();
    }.bind(this));
  }
  handleCaptureClick(event) {
    this.embedder.setCapture(event.target.checked);
  }
  handleEmbiggenClick(event) {
    this.embedder.toggleMaximize();
  }
  handleBegoneClick(event) {
    this.embedder.closeWindow();
  }
}.register();
</script>
</sky-element>

<window-frame />

</sky>
