File: resize-window.js

package info (click to toggle)
webdeveloper 1.2.5%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,364 kB
  • ctags: 1,608
  • sloc: makefile: 10
file content (93 lines) | stat: -rw-r--r-- 2,856 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
var WebDeveloper = WebDeveloper || {};

WebDeveloper.ResizeWindow = WebDeveloper.ResizeWindow || {};

// Handles the resize window dialog being accepted
WebDeveloper.ResizeWindow.accept = function()
{
  var height = document.getElementById("web-developer-resize-height").value.replace(/px/gi, "").trim();
  var width  = document.getElementById("web-developer-resize-width").value.replace(/px/gi, "").trim();

  // If the width and height are valid
  if(width && height && (width == "*" || (parseInt(width, 10) == width && width > 0)) && (height == "*" || (parseInt(height, 10) == height && height > 0)))
  {
    var contentWindow = window.opener.content;
    var windowX       = window.opener.screenX;
    var windowY       = window.opener.screenY;

    // If resizing the view port
    if(document.getElementById("web-developer-resize-viewport").checked)
    {
      WebDeveloper.Preferences.setExtensionBooleanPreference("resize.viewport", true);

      // If the width is not a wildcard
      if(width != "*")
      {
        contentWindow.innerWidth = width;
      }

      // If the height is not a wildcard
      if(height != "*")
      {
        contentWindow.innerHeight = height;
      }
    }
    else
    {
      WebDeveloper.Preferences.deleteExtensionPreference("resize.viewport");

      // If the width is a wildcard
      if(width == "*")
      {
        width = contentWindow.outerWidth;
      }

      // If the height is a wildcard
      if(height == "*")
      {
        height = contentWindow.outerHeight;
      }

      window.opener.resizeTo(width, height);
    }

    window.opener.screenX = windowX;
    window.opener.screenY = windowY;

    return true;
  }
  else
  {
    // If the height is empty or not a number or less than zero
    if(!height || parseInt(height, 10) != height || height <= 0)
    {
      WebDeveloper.Common.displayError(WebDeveloper.Locales.getString("resizeWindow"), WebDeveloper.Locales.getString("invalidHeight"));
    }
    else
    {
      WebDeveloper.Common.displayError(WebDeveloper.Locales.getString("resizeWindow"), WebDeveloper.Locales.getString("invalidWidth"));
    }

    return false;
  }
};

// Initializes the resize dialog
WebDeveloper.ResizeWindow.initialize = function()
{
  var resizeViewport = WebDeveloper.Preferences.getExtensionBooleanPreference("resize.viewport");

  document.getElementById("web-developer-resize-viewport").checked = resizeViewport;

  // If resizing the viewport
  if(resizeViewport)
  {
    document.getElementById("web-developer-resize-width").value  = window.arguments[2];
    document.getElementById("web-developer-resize-height").value = window.arguments[3];
  }
  else
  {
    document.getElementById("web-developer-resize-width").value  = window.arguments[0];
    document.getElementById("web-developer-resize-height").value = window.arguments[1];
  }
};