blob: b047b23da8639235afffb92cffcc36494ef4df0d [file] [log] [blame]
// 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.
module ws.mojom;
// TODO(sky): consider moving these out of the WindowManager interface. At a
// minimum they should move to window_manager_constants.mojom.
interface WindowManager {
// WindowManager defines two sets of distinct properties.
// . Properties that are used at creation time only and not persisted.
// . Long lived properties. These properties may be changed at any time and
// are mapped to aura::Window properties. aura::PropertyConverter defines
// the mapping between the property defined here and the corresponding
// aura property. For properties defined in PropertyConverter any change to
// to the aura property is mapped to the property defined here and sent to
// all clients that know about the window (which is generally just the owner
// and the window-manager).
// Properties used only during creation time. --------------------------------
// Whether the window should be initially focusable or not. Type: bool.
const string kFocusable_InitProperty = "init:focusable";
// Whether the window should be opaque.
const string kTranslucent_InitProperty = "init:translucent";
// Initial bounds to create the window at. If empty the WindowManager decides
// the initial bounds. Type: gfx::Rect.
const string kBounds_InitProperty = "init:bounds";
// The window manager will place the window in this container when the window
// is created. If not set a container is selected based on the window type.
// Type: int32_t.
const string kContainerId_InitProperty = "init:container_id";
// Disables the window manager from handling immersive fullscreen for the
// window. This is typically done if the client wants to handle immersive
// themselves. Type: bool.
const string kDisableImmersive_InitProperty = "init:disable_immersive";
// The id of the display (display::Display::id()) to create the window on.
// Type: int64.
const string kDisplayId_InitProperty = "init:display_id";
// Specifies that the system default caption and icon should not be rendered,
// and the client area should be equivalent to the window area. Type: bool
const string kRemoveStandardFrame_InitProperty = "init:remove-standard-frame";
// A flag controlling the window's presence on the mash shelf. Type: bool
const string kWindowIgnoredByShelf_InitProperty =
"init:window-ignored-by-shelf";
// The window type. This maps to aura::client::kWindowTypeKey as well as
// Window::type(). This mapping is only done for top-level windows that are
// created by the window manager at the request of a client.
// Type: mojom::WindowType (int32_t).
const string kWindowType_InitProperty = "init:window-type";
// End properties used only during creation time. ----------------------------
// Long lived properties. ----------------------------------------------------
// All primitive properties are transported as
// aura::PropertyConverter::PrimitiveType.
// Whether the window is always on top. Maps to aura::client::kAlwaysOnTopKey.
// Type: bool.
const string kAlwaysOnTop_Property = "prop:always_on_top";
// A boolean determining whether animations are disabled for the window.
const string kAnimationsDisabled_Property = "prop:animations-disabled";
// The application icon; typically larger for shelf icons, etc. Type: SkBitmap
const string kAppIcon_Property = "prop:app-icon";
// The Android Java-style package name for an ARC++ window, such as
// "com.google.Photos". Type: mojom::String.
const string kArcPackageName_Property = "prop:arc-package-name";
// The modal parent of a child modal window. Type: window Id.
const string kChildModalParent_Property = "prop:child-modal-parent";
// Whether the window is trying to draw attention to itself (e.g. pulsing its
// shelf icon). Type: bool.
const string kDrawAttention_Property = "prop:draw-attention";
// Used to explicitly control whether a window appears in the most recently
// used list of windows. Maps to aura::client::kExcludeFromMruKey. Type: bool.
const string kExcludeFromMru_Property = "prop:exclude_from_mru";
// Used to control the appearance and enabled state of the frame back button.
// Type: ash::kFrameBackButtonState.
const string kFrameBackButtonState_Property = "prop:frame-back-button-state";
// Used to control the color of the window frame. Type: SkColor.
const string kFrameActiveColor_Property = "prop:frame-active-color";
const string kFrameInactiveColor_Property = "prop:frame-inactive-color";
// If true, when a window is in in fullscreen mode, the user cannot reveal
// the top portion of the window through a touch / mouse gesture.
// Type: bool.
const string kImmersiveFullscreen_Property = "prop:immersive-fullscreen";
// The window's minimum size as defined by its content. Maps to
// aura::client::kMinimumSize_Property. Type: gfx::Size.
const string kMinimumSize_Property = "prop:minimum-size";
// Internal window name. Useful for debugging. Maps to aura::client::kNameKey.
// Type: mojom::String
const string kName_Property = "prop:name";
// If true (and the window is a panel), it's attached to its shelf item.
const string kPanelAttached_Property = "prop:panel-attached";
// The window's preferred size as defined by its content. Maps to
// aura::client::kPreferredSize_Property. Type: gfx::Size.
const string kPreferredSize_Property = "prop:preferred-size";
// If true the window manager renders the title area (including frame
// decorations) of the parent window in this window. This is only checked
// at the time the window is added to its parent, which must be a top level
// window (created by way of WindowTree::NewTopLevelWindow()). This is not
// mapped by default, it's up to the window manager (such as ash) to decide
// how to handle this. Type: bool.
const string kRenderParentTitleArea_Property =
"render-parent-non-client-area";
// The window's resize behavior. Maps to aura::client::kResizeBehaviorKey.
// Type: ResizeBehavior.
const string kResizeBehavior_Property = "prop:resize-behavior";
// Bounds the window is restored to. Maps to client::kRestoreBoundsKey.
// Type: gfx::Rect.
const string kRestoreBounds_Property = "prop:restore-bounds";
// See ShadowController for details. Type: int32_t.
const string kShadowElevation_Property = "prop:shadow-elevation";
// The serialized shelf id. Maps to ash::kShelfIDKey. Type: mojom::String.
const string kShelfID_Property = "prop:shelf-id";
// The type of item to be shown on the shelf for this window. Type: int
// A few ash::ShelfItemType values are supported; TYPE_UNKNOWN means no item.
const string kShelfItemType_Property = "prop:shelf-item-type";
// The window's show state. Maps to aura::client::kShowStateKey.
// Type: ShowState.
const string kShowState_Property = "prop:show-state";
// The window corner radius in DIPs. Maps to
// aura::client::kWindowCornerRadiusKey. Type: int.
const string kWindowCornerRadius_Property = "prop:window-corner-radius";
// The window icon; typically 16x16 for titlebars. Type: SkBitmap
const string kWindowIcon_Property = "prop:window-icon";
// The window's title. Maps to aura::client::kTitleKey. Type: mojom::String
const string kWindowTitle_Property = "prop:window-title";
// A boolean determining whether to show the window's title.
const string kWindowTitleShown_Property = "prop:window-title-shown";
// End long lived properties. ------------------------------------------------
};