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// This is used by the app window API internally to pass through messages to
6// the shell window.
7[nodoc] namespace app.currentWindowInternal {
8
9  // Null or undefined indicates that a value should not change.
10  dictionary Bounds {
11    long? left;
12    long? top;
13    long? width;
14    long? height;
15  };
16
17  // Null or undefined indicates that a value should not change. A value of 0
18  // will clear the constraints.
19  dictionary SizeConstraints {
20    long? minWidth;
21    long? minHeight;
22    long? maxWidth;
23    long? maxHeight;
24  };
25
26  dictionary RegionRect {
27    long left;
28    long top;
29    long width;
30    long height;
31  };
32
33  dictionary Region {
34    RegionRect[]? rects;
35  };
36
37  interface Functions {
38    static void focus();
39    static void fullscreen();
40    static void minimize();
41    static void maximize();
42    static void restore();
43    static void drawAttention();
44    static void clearAttention();
45    static void show(optional boolean focused);
46    static void hide();
47    static void setBounds(DOMString boundsType, Bounds bounds);
48    static void setSizeConstraints(DOMString boundsType,
49                                   SizeConstraints constraints);
50    static void setIcon(DOMString icon_url);
51    static void setBadgeIcon(DOMString icon_url);
52    static void clearBadge();
53    static void setShape(Region region);
54    static void setAlwaysOnTop(boolean always_on_top);
55    static void setVisibleOnAllWorkspaces(boolean always_visible);
56  };
57
58  interface Events {
59    static void onClosed();
60    static void onBoundsChanged();
61    static void onFullscreened();
62    static void onMinimized();
63    static void onMaximized();
64    static void onRestored();
65    static void onAlphaEnabledChanged();
66    // Only sent in tests.
67    static void onWindowShownForTests();
68  };
69};
70