// Copyright 2017 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 ui.mojom;

// Window "show" state.
enum WindowShowState {
  kDefault,
  kNormal,
  kMinimized,
  kMaximized,
  kInactive,
  kFullscreen,
};

// Dialog button identifiers used to specify which buttons to show the user.
enum DialogButton {
  NONE,
  OK,
  CANCEL,
};

// Specifies the type of modality applied to a window. Different modal
// treatments may be handled differently by the window manager.
enum ModalType {
  // Window is not modal.
  NONE,

  // Window is modal to its transient parent.
  WINDOW,

  // Window is modal to a child of its transient parent.
  CHILD,

  // Window is modal to all other windows.
  SYSTEM
};

// Defines the type of hit-test defined in ui/base/hit_test.h. Not defining
// the typemap since HitTestCompat enum is not defined in Windows.
enum HitTest {
  kNowhere = 0,
  kBorder,
  kBottom,
  kBottomLeft,
  kBottomRight,
  kCaption,
  kClient,
  kClose,
  kError,
  kGrowbox,
  kHelp,
  kHScroll,
  kLeft,
  kMenu,
  kMaxButton,
  kMinButton,
  kReduce,
  kRight,
  kSize,
  kSysMenu,
  kTop,
  kTopLeft,
  kTopRight,
  kTransparent,
  kVScroll,
  kZoom
};
