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.
|
||||
|
||||
### 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
|
||||
|
||||
^ 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.width === "undefined") { this.width = 250; }
|
||||
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.SetSize(this.width, this.height);
|
||||
|
@ -209,8 +212,29 @@ function _HandleMouseMove(event)
|
|||
}
|
||||
else if(currently_resizing === true)
|
||||
{
|
||||
var new_x = event.pageX - (resize_start.x + currently_resized_window.x);
|
||||
var new_y = event.pageY - (resize_start.y + currently_resized_window.y);
|
||||
currently_resized_window.SetSize(new_x, new_y);
|
||||
var new_w = event.pageX - (resize_start.x + currently_resized_window.x);
|
||||
var new_h = event.pageY - (resize_start.y + currently_resized_window.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