Update docs, set defaults, and implement resizing
This commit is contained in:
parent
6b2f696448
commit
b1191f6f5d
File diff suppressed because one or more lines are too long
49
docs/api.zpy
49
docs/api.zpy
|
@ -43,6 +43,55 @@
|
||||||
|
|
||||||
Holds a reference to the DOM element containing the window contents.
|
Holds a reference to the DOM element containing the window contents.
|
||||||
|
|
||||||
|
### Constructor
|
||||||
|
|
||||||
|
^ new JsdeWindow(options)
|
||||||
|
|
||||||
|
Creates a new window.
|
||||||
|
|
||||||
|
options::
|
||||||
|
A plain object that contains the options for this window. Options can be any of
|
||||||
|
the following.
|
||||||
|
|
||||||
|
title::
|
||||||
|
The title of the new window. You can use HTML here.
|
||||||
|
|
||||||
|
contents::
|
||||||
|
The contents of the new window. You can use HTML here.
|
||||||
|
|
||||||
|
visible::
|
||||||
|
A boolean indicating whether the window should be visible. Defaults to `true`.
|
||||||
|
|
||||||
|
x::
|
||||||
|
An integer specifying the X coordinate that the window should be spawned at.
|
||||||
|
|
||||||
|
y::
|
||||||
|
An integer specifying the Y coordinate that the window should be spawned at.
|
||||||
|
|
||||||
|
width::
|
||||||
|
An integer specifying the initial width of the window in pixels.
|
||||||
|
|
||||||
|
height::
|
||||||
|
An integer specifying the initial height of the window in pixels.
|
||||||
|
|
||||||
|
resizable::
|
||||||
|
A boolean indicating whether the user is allowed to resize the window.
|
||||||
|
Defaults to `true`.
|
||||||
|
|
||||||
|
min_width::
|
||||||
|
The minimum width of the window in pixels (used to restrict resizing). Defaults to `120`.
|
||||||
|
|
||||||
|
min_height::
|
||||||
|
The minimum height of the window in pixels (used to restrict resizing). Defaults to `120`.
|
||||||
|
|
||||||
|
max_width::
|
||||||
|
The maximum width of the window in pixels (used to restrict resizing). Defaults to unlimited.
|
||||||
|
|
||||||
|
max_height::
|
||||||
|
The maximum height of the window in pixels (used to restrict resizing). Defaults to unlimited.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Member functions
|
### Member functions
|
||||||
|
|
||||||
^ JsdeWindow.SetPosition(**x**, **y**)
|
^ JsdeWindow.SetPosition(**x**, **y**)
|
||||||
|
|
30
jsde.js
30
jsde.js
|
@ -58,6 +58,9 @@ function JsdeWindow(options)
|
||||||
if(typeof options.y === "undefined") { this.y = 0; }
|
if(typeof options.y === "undefined") { this.y = 0; }
|
||||||
if(typeof options.width === "undefined") { this.width = 250; }
|
if(typeof options.width === "undefined") { this.width = 250; }
|
||||||
if(typeof options.height === "undefined") { this.height = 200; }
|
if(typeof options.height === "undefined") { this.height = 200; }
|
||||||
|
if(typeof options.min_width === "undefined") { this.min_width = 120; }
|
||||||
|
if(typeof options.min_height === "undefined") { this.min_height = 120; }
|
||||||
|
if(typeof options.resizable === "undefined") { this.resizable = true; }
|
||||||
|
|
||||||
this.SetPosition(this.x, this.y);
|
this.SetPosition(this.x, this.y);
|
||||||
this.SetSize(this.width, this.height);
|
this.SetSize(this.width, this.height);
|
||||||
|
@ -209,8 +212,29 @@ function _HandleMouseMove(event)
|
||||||
}
|
}
|
||||||
else if(currently_resizing === true)
|
else if(currently_resizing === true)
|
||||||
{
|
{
|
||||||
var new_x = event.pageX - (resize_start.x + currently_resized_window.x);
|
var new_w = event.pageX - (resize_start.x + currently_resized_window.x);
|
||||||
var new_y = event.pageY - (resize_start.y + currently_resized_window.y);
|
var new_h = event.pageY - (resize_start.y + currently_resized_window.y);
|
||||||
currently_resized_window.SetSize(new_x, new_y);
|
|
||||||
|
if(typeof currently_resized_window.min_width !== "undefined" && new_w < currently_resized_window.min_width)
|
||||||
|
{
|
||||||
|
new_w = currently_resized_window.min_width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(typeof currently_resized_window.min_height !== "undefined" && new_h < currently_resized_window.min_height)
|
||||||
|
{
|
||||||
|
new_h = currently_resized_window.min_height;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(typeof currently_resized_window.max_width !== "undefined" && new_w > currently_resized_window.max_width)
|
||||||
|
{
|
||||||
|
new_w = currently_resized_window.max_width;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(typeof currently_resized_window.max_height !== "undefined" && new_h > currently_resized_window.max_height)
|
||||||
|
{
|
||||||
|
new_h = currently_resized_window.max_height;
|
||||||
|
}
|
||||||
|
|
||||||
|
currently_resized_window.SetSize(new_w, new_h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue