blob: a06db99815e5719dac7037a30841801b8982dfad [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Generated from namespace: app.window
part of chrome;
/**
* Types
*/
class AppWindowBounds extends ChromeObject {
/*
* Public constructor
*/
AppWindowBounds({int left, int top, int width, int height}) {
if (left != null) this.left = left;
if (top != null) this.top = top;
if (width != null) this.width = width;
if (height != null) this.height = height;
}
/*
* Private constructor
*/
AppWindowBounds._proxy(_jsObject) : super._proxy(_jsObject);
/*
* Public accessors
*/
int get left => JS('int', '#.left', this._jsObject);
set left(int left) {
JS('void', '#.left = #', this._jsObject, left);
}
int get top => JS('int', '#.top', this._jsObject);
set top(int top) {
JS('void', '#.top = #', this._jsObject, top);
}
int get width => JS('int', '#.width', this._jsObject);
set width(int width) {
JS('void', '#.width = #', this._jsObject, width);
}
int get height => JS('int', '#.height', this._jsObject);
set height(int height) {
JS('void', '#.height = #', this._jsObject, height);
}
}
class AppWindowCreateWindowOptions extends ChromeObject {
/*
* Public constructor
*/
AppWindowCreateWindowOptions(
{String id,
int defaultWidth,
int defaultHeight,
int defaultLeft,
int defaultTop,
int width,
int height,
int left,
int top,
int minWidth,
int minHeight,
int maxWidth,
int maxHeight,
String type,
String frame,
AppWindowBounds bounds,
bool transparentBackground,
String state,
bool hidden,
bool resizable,
bool singleton}) {
if (id != null) this.id = id;
if (defaultWidth != null) this.defaultWidth = defaultWidth;
if (defaultHeight != null) this.defaultHeight = defaultHeight;
if (defaultLeft != null) this.defaultLeft = defaultLeft;
if (defaultTop != null) this.defaultTop = defaultTop;
if (width != null) this.width = width;
if (height != null) this.height = height;
if (left != null) this.left = left;
if (top != null) this.top = top;
if (minWidth != null) this.minWidth = minWidth;
if (minHeight != null) this.minHeight = minHeight;
if (maxWidth != null) this.maxWidth = maxWidth;
if (maxHeight != null) this.maxHeight = maxHeight;
if (type != null) this.type = type;
if (frame != null) this.frame = frame;
if (bounds != null) this.bounds = bounds;
if (transparentBackground != null)
this.transparentBackground = transparentBackground;
if (state != null) this.state = state;
if (hidden != null) this.hidden = hidden;
if (resizable != null) this.resizable = resizable;
if (singleton != null) this.singleton = singleton;
}
/*
* Private constructor
*/
AppWindowCreateWindowOptions._proxy(_jsObject) : super._proxy(_jsObject);
/*
* Public accessors
*/
/// Id to identify the window. This will be used to remember the size and
/// position of the window and restore that geometry when a window with the
/// same id is later opened.
String get id => JS('String', '#.id', this._jsObject);
set id(String id) {
JS('void', '#.id = #', this._jsObject, id);
}
/// Default width of the window. (Deprecated; regular bounds act like this
/// now.)
int get defaultWidth => JS('int', '#.defaultWidth', this._jsObject);
set defaultWidth(int defaultWidth) {
JS('void', '#.defaultWidth = #', this._jsObject, defaultWidth);
}
/// Default height of the window. (Deprecated; regular bounds act like this
/// now.)
int get defaultHeight => JS('int', '#.defaultHeight', this._jsObject);
set defaultHeight(int defaultHeight) {
JS('void', '#.defaultHeight = #', this._jsObject, defaultHeight);
}
/// Default X coordinate of the window. (Deprecated; regular bounds act like
/// this now.)
int get defaultLeft => JS('int', '#.defaultLeft', this._jsObject);
set defaultLeft(int defaultLeft) {
JS('void', '#.defaultLeft = #', this._jsObject, defaultLeft);
}
/// Default Y coordinate of the window. (Deprecated; regular bounds act like
/// this now.)
int get defaultTop => JS('int', '#.defaultTop', this._jsObject);
set defaultTop(int defaultTop) {
JS('void', '#.defaultTop = #', this._jsObject, defaultTop);
}
/// Width of the window. (Deprecated; use 'bounds'.)
int get width => JS('int', '#.width', this._jsObject);
set width(int width) {
JS('void', '#.width = #', this._jsObject, width);
}
/// Height of the window. (Deprecated; use 'bounds'.)
int get height => JS('int', '#.height', this._jsObject);
set height(int height) {
JS('void', '#.height = #', this._jsObject, height);
}
/// X coordinate of the window. (Deprecated; use 'bounds'.)
int get left => JS('int', '#.left', this._jsObject);
set left(int left) {
JS('void', '#.left = #', this._jsObject, left);
}
/// Y coordinate of the window. (Deprecated; use 'bounds'.)
int get top => JS('int', '#.top', this._jsObject);
set top(int top) {
JS('void', '#.top = #', this._jsObject, top);
}
/// Minimum width for the lifetime of the window.
int get minWidth => JS('int', '#.minWidth', this._jsObject);
set minWidth(int minWidth) {
JS('void', '#.minWidth = #', this._jsObject, minWidth);
}
/// Minimum height for the lifetime of the window.
int get minHeight => JS('int', '#.minHeight', this._jsObject);
set minHeight(int minHeight) {
JS('void', '#.minHeight = #', this._jsObject, minHeight);
}
/// Maximum width for the lifetime of the window.
int get maxWidth => JS('int', '#.maxWidth', this._jsObject);
set maxWidth(int maxWidth) {
JS('void', '#.maxWidth = #', this._jsObject, maxWidth);
}
/// Maximum height for the lifetime of the window.
int get maxHeight => JS('int', '#.maxHeight', this._jsObject);
set maxHeight(int maxHeight) {
JS('void', '#.maxHeight = #', this._jsObject, maxHeight);
}
/// Type of window to create.
String get type => JS('String', '#.type', this._jsObject);
set type(String type) {
JS('void', '#.type = #', this._jsObject, type);
}
/// Frame type: 'none' or 'chrome' (defaults to 'chrome').
String get frame => JS('String', '#.frame', this._jsObject);
set frame(String frame) {
JS('void', '#.frame = #', this._jsObject, frame);
}
/// Size and position of the content in the window (excluding the titlebar). If
/// an id is also specified and a window with a matching id has been shown
/// before, the remembered bounds of the window will be used instead.
AppWindowBounds get bounds =>
new AppWindowBounds._proxy(JS('', '#.bounds', this._jsObject));
set bounds(AppWindowBounds bounds) {
JS('void', '#.bounds = #', this._jsObject, convertArgument(bounds));
}
/// Enable window background transparency. Only supported in ash. Requires
/// experimental API permission.
bool get transparentBackground =>
JS('bool', '#.transparentBackground', this._jsObject);
set transparentBackground(bool transparentBackground) {
JS('void', '#.transparentBackground = #', this._jsObject,
transparentBackground);
}
/// The initial state of the window, allowing it to be created already
/// fullscreen, maximized, or minimized. Defaults to 'normal'.
String get state => JS('String', '#.state', this._jsObject);
set state(String state) {
JS('void', '#.state = #', this._jsObject, state);
}
/// If true, the window will be created in a hidden state. Call show() on the
/// window to show it once it has been created. Defaults to false.
bool get hidden => JS('bool', '#.hidden', this._jsObject);
set hidden(bool hidden) {
JS('void', '#.hidden = #', this._jsObject, hidden);
}
/// If true, the window will be resizable by the user. Defaults to true.
bool get resizable => JS('bool', '#.resizable', this._jsObject);
set resizable(bool resizable) {
JS('void', '#.resizable = #', this._jsObject, resizable);
}
/// By default if you specify an id for the window, the window will only be
/// created if another window with the same id doesn't already exist. If a
/// window with the same id already exists that window is activated instead. If
/// you do want to create multiple windows with the same id, you can set this
/// property to false.
bool get singleton => JS('bool', '#.singleton', this._jsObject);
set singleton(bool singleton) {
JS('void', '#.singleton = #', this._jsObject, singleton);
}
}
class AppWindowAppWindow extends ChromeObject {
/*
* Private constructor
*/
AppWindowAppWindow._proxy(_jsObject) : super._proxy(_jsObject);
/*
* Public accessors
*/
/// The JavaScript 'window' object for the created child.
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// TODO(sashab, sra): Detect whether this is the current window, or an
// external one, and return an appropriately-typed object
WindowBase get contentWindow =>
JS("Window", "#.contentWindow", this._jsObject);
/*
* Methods
*/
/// Focus the window.
void focus() => JS('void', '#.focus()', this._jsObject);
/// Fullscreens the window.
void fullscreen() => JS('void', '#.fullscreen()', this._jsObject);
/// Is the window fullscreen?
bool isFullscreen() => JS('bool', '#.isFullscreen()', this._jsObject);
/// Minimize the window.
void minimize() => JS('void', '#.minimize()', this._jsObject);
/// Is the window minimized?
bool isMinimized() => JS('bool', '#.isMinimized()', this._jsObject);
/// Maximize the window.
void maximize() => JS('void', '#.maximize()', this._jsObject);
/// Is the window maximized?
bool isMaximized() => JS('bool', '#.isMaximized()', this._jsObject);
/// Restore the window, exiting a maximized, minimized, or fullscreen state.
void restore() => JS('void', '#.restore()', this._jsObject);
/// Move the window to the position (|left|, |top|).
void moveTo(int left, int top) =>
JS('void', '#.moveTo(#, #)', this._jsObject, left, top);
/// Resize the window to |width|x|height| pixels in size.
void resizeTo(int width, int height) =>
JS('void', '#.resizeTo(#, #)', this._jsObject, width, height);
/// Draw attention to the window.
void drawAttention() => JS('void', '#.drawAttention()', this._jsObject);
/// Clear attention to the window.
void clearAttention() => JS('void', '#.clearAttention()', this._jsObject);
/// Close the window.
void close() => JS('void', '#.close()', this._jsObject);
/// Show the window. Does nothing if the window is already visible.
void show() => JS('void', '#.show()', this._jsObject);
/// Hide the window. Does nothing if the window is already hidden.
void hide() => JS('void', '#.hide()', this._jsObject);
/// Get the window's bounds as a $ref:Bounds object.
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// TODO(sashab, kalman): Fix IDL parser to read function return values
// correctly. Currently, it just reads void for all functions.
AppWindowBounds getBounds() =>
new AppWindowBounds._proxy(JS('void', '#.getBounds()', this._jsObject));
/// Set the window's bounds.
void setBounds(AppWindowBounds bounds) =>
JS('void', '#.setBounds(#)', this._jsObject, convertArgument(bounds));
/// Set the app icon for the window (experimental). Currently this is only
/// being implemented on Ash. TODO(stevenjb): Investigate implementing this on
/// Windows and OSX.
void setIcon(String icon_url) =>
JS('void', '#.setIcon(#)', this._jsObject, icon_url);
}
/**
* Events
*/
/// Fired when the window is resized.
class Event_app_window_onBoundsChanged extends Event {
void addListener(void callback()) => super.addListener(callback);
void removeListener(void callback()) => super.removeListener(callback);
bool hasListener(void callback()) => super.hasListener(callback);
Event_app_window_onBoundsChanged(jsObject) : super._(jsObject, 0);
}
/// Fired when the window is closed.
class Event_app_window_onClosed extends Event {
void addListener(void callback()) => super.addListener(callback);
void removeListener(void callback()) => super.removeListener(callback);
bool hasListener(void callback()) => super.hasListener(callback);
Event_app_window_onClosed(jsObject) : super._(jsObject, 0);
}
/// Fired when the window is fullscreened.
class Event_app_window_onFullscreened extends Event {
void addListener(void callback()) => super.addListener(callback);
void removeListener(void callback()) => super.removeListener(callback);
bool hasListener(void callback()) => super.hasListener(callback);
Event_app_window_onFullscreened(jsObject) : super._(jsObject, 0);
}
/// Fired when the window is maximized.
class Event_app_window_onMaximized extends Event {
void addListener(void callback()) => super.addListener(callback);
void removeListener(void callback()) => super.removeListener(callback);
bool hasListener(void callback()) => super.hasListener(callback);
Event_app_window_onMaximized(jsObject) : super._(jsObject, 0);
}
/// Fired when the window is minimized.
class Event_app_window_onMinimized extends Event {
void addListener(void callback()) => super.addListener(callback);
void removeListener(void callback()) => super.removeListener(callback);
bool hasListener(void callback()) => super.hasListener(callback);
Event_app_window_onMinimized(jsObject) : super._(jsObject, 0);
}
/// Fired when the window is restored from being minimized or maximized.
class Event_app_window_onRestored extends Event {
void addListener(void callback()) => super.addListener(callback);
void removeListener(void callback()) => super.removeListener(callback);
bool hasListener(void callback()) => super.hasListener(callback);
Event_app_window_onRestored(jsObject) : super._(jsObject, 0);
}
/**
* Functions
*/
class API_app_window {
/*
* API connection
*/
Object _jsObject;
/*
* Events
*/
Event_app_window_onBoundsChanged onBoundsChanged;
Event_app_window_onClosed onClosed;
Event_app_window_onFullscreened onFullscreened;
Event_app_window_onMaximized onMaximized;
Event_app_window_onMinimized onMinimized;
Event_app_window_onRestored onRestored;
/*
* Functions
*/
/// The size and position of a window can be specified in a number of different
/// ways. The most simple option is not specifying anything at all, in which
/// case a default size and platform dependent position will be used.<br/><br/>
/// Another option is to use the bounds property, which will put the window at
/// the specified coordinates with the specified size. If the window has a
/// frame, it's total size will be the size given plus the size of the frame;
/// that is, the size in bounds is the content size, not the window
/// size.<br/><br/> To automatically remember the positions of windows you can
/// give them ids. If a window has an id, This id is used to remember the size
/// and position of the window whenever it is moved or resized. This size and
/// position is then used instead of the specified bounds on subsequent opening
/// of a window with the same id. If you need to open a window with an id at a
/// location other than the remembered default, you can create it hidden, move
/// it to the desired location, then show it.
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// TODO(sashab): This override is no longer needed once prefixes are removed.
void create(String url,
[AppWindowCreateWindowOptions options,
void callback(AppWindowAppWindow created_window)]) {
void __proxy_callback(created_window) {
if (callback != null)
callback(new AppWindowAppWindow._proxy(created_window));
}
JS('void', '#.create(#, #, #)', this._jsObject, url,
convertArgument(options), convertDartClosureToJS(__proxy_callback, 1));
}
/// Returns an $ref:AppWindow object for the current script context (ie
/// JavaScript 'window' object). This can also be called on a handle to a
/// script context for another page, for example:
/// otherWindow.chrome.app.window.current().
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// TODO(sashab, kalman): Fix IDL parser to read function return values
// correctly. Currently, it just reads void for all functions.
AppWindowAppWindow current() =>
new AppWindowAppWindow._proxy(JS('void', '#.current()', this._jsObject));
void initializeAppWindow(Object state) => JS('void',
'#.initializeAppWindow(#)', this._jsObject, convertArgument(state));
API_app_window(this._jsObject) {
onBoundsChanged = new Event_app_window_onBoundsChanged(
JS('', '#.onBoundsChanged', this._jsObject));
onClosed =
new Event_app_window_onClosed(JS('', '#.onClosed', this._jsObject));
onFullscreened = new Event_app_window_onFullscreened(
JS('', '#.onFullscreened', this._jsObject));
onMaximized = new Event_app_window_onMaximized(
JS('', '#.onMaximized', this._jsObject));
onMinimized = new Event_app_window_onMinimized(
JS('', '#.onMinimized', this._jsObject));
onRestored =
new Event_app_window_onRestored(JS('', '#.onRestored', this._jsObject));
}
}