1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef UI_BASE_UI_BASE_TYPES_H_
6#define UI_BASE_UI_BASE_TYPES_H_
7
8#include "ui/base/ui_base_export.h"
9
10namespace ui {
11
12class Event;
13
14// Window "show" state.
15enum WindowShowState {
16  // A default un-set state.
17  SHOW_STATE_DEFAULT    = 0,
18  SHOW_STATE_NORMAL     = 1,
19  SHOW_STATE_MINIMIZED  = 2,
20  SHOW_STATE_MAXIMIZED  = 3,
21  SHOW_STATE_INACTIVE   = 4,  // Views only, not persisted.
22  SHOW_STATE_FULLSCREEN = 5,
23  SHOW_STATE_END        = 6   // The end of show state enum.
24};
25
26// Dialog button identifiers used to specify which buttons to show the user.
27enum DialogButton {
28  DIALOG_BUTTON_NONE   = 0,
29  DIALOG_BUTTON_OK     = 1,
30  DIALOG_BUTTON_CANCEL = 2,
31};
32
33// Specifies the type of modality applied to a window. Different modal
34// treatments may be handled differently by the window manager.
35enum ModalType {
36  MODAL_TYPE_NONE   = 0,  // Window is not modal.
37  MODAL_TYPE_WINDOW = 1,  // Window is modal to its transient parent.
38  MODAL_TYPE_CHILD  = 2,  // Window is modal to a child of its transient parent.
39  MODAL_TYPE_SYSTEM = 3   // Window is modal to all other windows.
40};
41
42// TODO(varunjain): Remove MENU_SOURCE_NONE (crbug.com/250964)
43enum MenuSourceType {
44  MENU_SOURCE_NONE            = 0,
45  MENU_SOURCE_MOUSE           = 1,
46  MENU_SOURCE_KEYBOARD        = 2,
47  MENU_SOURCE_TOUCH           = 3,
48  MENU_SOURCE_TOUCH_EDIT_MENU = 4,
49  MENU_SOURCE_TYPE_LAST = MENU_SOURCE_TOUCH_EDIT_MENU
50};
51
52UI_BASE_EXPORT MenuSourceType GetMenuSourceTypeForEvent(const ui::Event& event);
53
54}  // namespace ui
55
56#endif  // UI_BASE_UI_BASE_TYPES_H_
57