// Copyright 2016 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.

module ash.mojom;

// Controls tablet mode state in a client app (e.g. chrome).
interface TabletModeClient {
  // Fired after the tablet mode has been toggled.
  OnTabletModeToggled(bool enabled);
};

// Controls tablet mode state in ash.
interface TabletModeController {
  // Sets a client (e.g. chrome). Triggers OnTabletModeToggled() to provide
  // the initial state.
  SetClient(TabletModeClient client);

  // Enables or disables tablet mode. For testing only.
  SetTabletModeEnabledForTesting(bool enabled) => (bool enabled);
};
