chromium/extensions/common/api/app_current_window_internal.idl

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This is used by the app window API internally to pass through messages to
// the shell window.
namespace app.currentWindowInternal {

  // Null or undefined indicates that a value should not change.
  dictionary Bounds {
    long? left;
    long? top;
    long? width;
    long? height;
  };

  // Null or undefined indicates that a value should not change. A value of 0
  // will clear the constraints.
  dictionary SizeConstraints {
    long? minWidth;
    long? minHeight;
    long? maxWidth;
    long? maxHeight;
  };

  dictionary RegionRect {
    long left;
    long top;
    long width;
    long height;
  };

  dictionary Region {
    RegionRect[]? rects;
  };

  interface Functions {
    static void focus();
    static void fullscreen();
    static void minimize();
    static void maximize();
    static void restore();
    static void drawAttention();
    static void clearAttention();
    static void show(optional boolean focused);
    static void hide();
    static void setBounds(DOMString boundsType, Bounds bounds);
    static void setSizeConstraints(DOMString boundsType,
                                   SizeConstraints constraints);
    static void setIcon(DOMString icon_url);
    static void setShape(Region region);
    static void setAlwaysOnTop(boolean always_on_top);
    static void setVisibleOnAllWorkspaces(boolean always_visible);
    static void setActivateOnPointer(boolean activate_on_pointer);
  };

  interface Events {
    static void onClosed();
    static void onBoundsChanged();
    static void onFullscreened();
    static void onMinimized();
    static void onMaximized();
    static void onRestored();
    static void onAlphaEnabledChanged();
  };
};