// 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 ui.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 corresonding // 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"; // 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. ------------------------------------------------ };