blob: 8c4f305f3b22070d55e3cd2aa8b70ed9a7522b1a [file] [log] [blame]
// 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.
#ifndef UI_AURA_MUS_MUS_TYPES_H_
#define UI_AURA_MUS_MUS_TYPES_H_
#include <stdint.h>
// Typedefs for the transport types. These typedefs match that of the mojom
// file, see it for specifics.
namespace aura {
// Used to identify windows and change ids.
using Id = uint32_t;
// Used to identify a client as well as a client-specific window id. For
// example, the Id for a window consists of the ClientSpecificId of the client
// and the ClientSpecificId of the window.
using ClientSpecificId = uint16_t;
constexpr Id kInvalidServerId = 0;
enum class WindowMusType {
// The window is an embed root. That is, the client received this window by
// way of another client calling Embed().
// NOTE: in the client that called Embed() the window type is LOCAL.
EMBED,
// The window is an embedded client in an owner client.
EMBED_IN_OWNER,
// The window was created by requesting a top level
// (WindowTree::NewTopLevel()).
// NOTE: in the window manager (the one responsible for actually creating the
// real window) the window is of type TOP_LEVEL_IN_WM.
TOP_LEVEL,
// The window is a top level window in the window manager.
TOP_LEVEL_IN_WM,
// The window is a display root for the window manager and was automatically
// created by mus.
DISPLAY_AUTOMATICALLY_CREATED,
// The window is a display root for the window manager and was manually
// created.
DISPLAY_MANUALLY_CREATED,
// The window was created locally.
LOCAL,
// Not one of the above. This means the window is visible to the client and
// not one of the above values. Practically this means this client is the
// window manager and the window was created by another client.
OTHER,
};
} // namespace ui
#endif // UI_AURA_MUS_MUS_TYPES_H_