Subversion Repository Public Repository

Nextrek

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
var Component_FreeLayoutBehavior,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

Component_FreeLayoutBehavior = (function(superClass) {
  extend(Component_FreeLayoutBehavior, superClass);


  /**
  * Turns a game object into a free-layout and layouts all sub-objects
  * at their specified positions. So that kind of layout allows each sub-object
  * to be freely positioned.
  * <br>
  * In addition, each sub-object can have different alignment options.
  *
  * @module gs
  * @class Component_FreeLayoutBehavior
  * @extends gs.Component_LayoutBehavior
  * @memberof gs
  * @constructor
   */

  function Component_FreeLayoutBehavior() {
    Component_FreeLayoutBehavior.__super__.constructor.apply(this, arguments);
  }


  /**
  * Sizes the layout to fit its content.
  *
  * @method sizeToFit
   */

  Component_FreeLayoutBehavior.prototype.sizeToFit = function() {
    var control, j, len, rect, ref, results;
    rect = this.object.dstRect;
    if (this.object.sizeToFit) {
      ref = this.object.subObjects;
      results = [];
      for (j = 0, len = ref.length; j < len; j++) {
        control = ref[j];
        if (!control.alignmentX) {
          rect.width = Math.max(control.margin.left + control.dstRect.width + control.margin.right, rect.width || 1);
        }
        if (!control.alignmentY) {
          results.push(rect.height = Math.max(control.margin.top + control.dstRect.height + control.margin.bottom, rect.height || 1));
        } else {
          results.push(void 0);
        }
      }
      return results;
    }
  };


  /**
  * Updates a specified control.
  *
  * @method updateControl
  * @protected
  * @param {gs.Object_Base} control The control to update
   */

  Component_FreeLayoutBehavior.prototype.updateControl = function(control) {
    var margin, rect;
    Component_FreeLayoutBehavior.__super__.updateControl.apply(this, arguments);
    rect = this.object.dstRect;
    margin = control.margin;
    if (control.alignmentX === 1) {
      control.dstRect.x = (rect.width - (control.dstRect.width + margin.right + margin.left)) / 2;
    } else if (control.alignmentX === 2) {
      control.dstRect.x = rect.width * this.object.zoom.x - (control.dstRect.width + control.margin.right) * control.zoom.x;
    }
    if (control.alignmentY === 1) {
      return control.dstRect.y = (rect.height * this.object.zoom.y - (control.dstRect.height + margin.bottom + margin.top) * control.zoom.y) / 2;
    } else if (control.alignmentY === 2) {
      return control.dstRect.y = rect.height - (control.dstRect.height + control.margin.bottom);
    }
  };


  /**
  * Layouts the sub-objects.
  *
  * @method update
   */

  Component_FreeLayoutBehavior.prototype.update = function() {
    var control, i, j, len, ref;
    Component_FreeLayoutBehavior.__super__.update.apply(this, arguments);
    ref = this.object.subObjects;
    for (i = j = 0, len = ref.length; j < len; i = ++j) {
      control = ref[i];
      this.updateControl(control);
    }
    this.sizeToFit();
    return null;
  };

  return Component_FreeLayoutBehavior;

})(gs.Component_LayoutBehavior);

gs.Component_FreeLayoutBehavior = Component_FreeLayoutBehavior;

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsNEJBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7Ozs7Ozs7RUFhYSxzQ0FBQTtJQUNULCtEQUFBLFNBQUE7RUFEUzs7O0FBR2I7Ozs7Ozt5Q0FLQSxTQUFBLEdBQVcsU0FBQTtBQUNQLFFBQUE7SUFBQSxJQUFBLEdBQU8sSUFBQyxDQUFBLE1BQU0sQ0FBQztJQUNmLElBQUcsSUFBQyxDQUFBLE1BQU0sQ0FBQyxTQUFYO0FBQ0k7QUFBQTtXQUFBLHFDQUFBOztRQUNJLElBQUcsQ0FBQyxPQUFPLENBQUMsVUFBWjtVQUNJLElBQUksQ0FBQyxLQUFMLEdBQWEsSUFBSSxDQUFDLEdBQUwsQ0FBUyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQWYsR0FBc0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUF0QyxHQUE4QyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQXRFLEVBQTZFLElBQUksQ0FBQyxLQUFMLElBQWMsQ0FBM0YsRUFEakI7O1FBRUEsSUFBRyxDQUFDLE9BQU8sQ0FBQyxVQUFaO3VCQUNJLElBQUksQ0FBQyxNQUFMLEdBQWMsSUFBSSxDQUFDLEdBQUwsQ0FBUyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQWYsR0FBcUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFyQyxHQUE4QyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQXRFLEVBQThFLElBQUksQ0FBQyxNQUFMLElBQWUsQ0FBN0YsR0FEbEI7U0FBQSxNQUFBOytCQUFBOztBQUhKO3FCQURKOztFQUZPOzs7QUFTWDs7Ozs7Ozs7eUNBT0EsYUFBQSxHQUFlLFNBQUMsT0FBRDtBQUNYLFFBQUE7SUFBQSxpRUFBQSxTQUFBO0lBRUEsSUFBQSxHQUFPLElBQUMsQ0FBQSxNQUFNLENBQUM7SUFDZixNQUFBLEdBQVMsT0FBTyxDQUFDO0lBRWpCLElBQUcsT0FBTyxDQUFDLFVBQVIsS0FBc0IsQ0FBekI7TUFDSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQWhCLEdBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUwsR0FBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBaEIsR0FBc0IsTUFBTSxDQUFDLEtBQTdCLEdBQW1DLE1BQU0sQ0FBQyxJQUEzQyxDQUFkLENBQUEsR0FBa0UsRUFEMUY7S0FBQSxNQUVLLElBQUcsT0FBTyxDQUFDLFVBQVIsS0FBc0IsQ0FBekI7TUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQWhCLEdBQW9CLElBQUksQ0FBQyxLQUFMLEdBQVcsSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBeEIsR0FBNEIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQWhCLEdBQXdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBeEMsQ0FBQSxHQUErQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBRDNHOztJQUdMLElBQUcsT0FBTyxDQUFDLFVBQVIsS0FBc0IsQ0FBekI7YUFDSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQWhCLEdBQW9CLENBQUMsSUFBSSxDQUFDLE1BQUwsR0FBWSxJQUFDLENBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUF6QixHQUE2QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBaEIsR0FBdUIsTUFBTSxDQUFDLE1BQTlCLEdBQXFDLE1BQU0sQ0FBQyxHQUE3QyxDQUFBLEdBQWtELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBN0YsQ0FBQSxHQUFrRyxFQUQxSDtLQUFBLE1BRUssSUFBRyxPQUFPLENBQUMsVUFBUixLQUFzQixDQUF6QjthQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBaEIsR0FBb0IsSUFBSSxDQUFDLE1BQUwsR0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBaEIsR0FBeUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUF6QyxFQURqQzs7RUFiTTs7O0FBa0JmOzs7Ozs7eUNBS0EsTUFBQSxHQUFRLFNBQUE7QUFDSixRQUFBO0lBQUEsMERBQUEsU0FBQTtBQUVBO0FBQUEsU0FBQSw2Q0FBQTs7TUFDSSxJQUFDLENBQUEsYUFBRCxDQUFlLE9BQWY7QUFESjtJQUdBLElBQUMsQ0FBQSxTQUFELENBQUE7QUFHQSxXQUFPO0VBVEg7Ozs7R0E3RCtCLEVBQUUsQ0FBQzs7QUF3RTlDLEVBQUUsQ0FBQyw0QkFBSCxHQUFrQyIsInNvdXJjZXNDb250ZW50IjpbIiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuI1xuIyAgIFNjcmlwdDogQ29tcG9uZW50X0ZyZWVMYXlvdXRCZWhhdmlvclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgQ29tcG9uZW50X0ZyZWVMYXlvdXRCZWhhdmlvciBleHRlbmRzIGdzLkNvbXBvbmVudF9MYXlvdXRCZWhhdmlvclxuICAgICMjIypcbiAgICAqIFR1cm5zIGEgZ2FtZSBvYmplY3QgaW50byBhIGZyZWUtbGF5b3V0IGFuZCBsYXlvdXRzIGFsbCBzdWItb2JqZWN0c1xuICAgICogYXQgdGhlaXIgc3BlY2lmaWVkIHBvc2l0aW9ucy4gU28gdGhhdCBraW5kIG9mIGxheW91dCBhbGxvd3MgZWFjaCBzdWItb2JqZWN0XG4gICAgKiB0byBiZSBmcmVlbHkgcG9zaXRpb25lZC5cbiAgICAqIDxicj5cbiAgICAqIEluIGFkZGl0aW9uLCBlYWNoIHN1Yi1vYmplY3QgY2FuIGhhdmUgZGlmZmVyZW50IGFsaWdubWVudCBvcHRpb25zLlxuICAgICpcbiAgICAqIEBtb2R1bGUgZ3NcbiAgICAqIEBjbGFzcyBDb21wb25lbnRfRnJlZUxheW91dEJlaGF2aW9yXG4gICAgKiBAZXh0ZW5kcyBncy5Db21wb25lbnRfTGF5b3V0QmVoYXZpb3JcbiAgICAqIEBtZW1iZXJvZiBnc1xuICAgICogQGNvbnN0cnVjdG9yXG4gICAgIyMjXG4gICAgY29uc3RydWN0b3I6IC0+IFxuICAgICAgICBzdXBlclxuXG4gICAgIyMjKlxuICAgICogU2l6ZXMgdGhlIGxheW91dCB0byBmaXQgaXRzIGNvbnRlbnQuXG4gICAgKlxuICAgICogQG1ldGhvZCBzaXplVG9GaXRcbiAgICAjIyMgXG4gICAgc2l6ZVRvRml0OiAtPlxuICAgICAgICByZWN0ID0gQG9iamVjdC5kc3RSZWN0XG4gICAgICAgIGlmIEBvYmplY3Quc2l6ZVRvRml0XG4gICAgICAgICAgICBmb3IgY29udHJvbCBpbiBAb2JqZWN0LnN1Yk9iamVjdHNcbiAgICAgICAgICAgICAgICBpZiAhY29udHJvbC5hbGlnbm1lbnRYXG4gICAgICAgICAgICAgICAgICAgIHJlY3Qud2lkdGggPSBNYXRoLm1heChjb250cm9sLm1hcmdpbi5sZWZ0ICsgY29udHJvbC5kc3RSZWN0LndpZHRoICsgY29udHJvbC5tYXJnaW4ucmlnaHQsIHJlY3Qud2lkdGggfHwgMSlcbiAgICAgICAgICAgICAgICBpZiAhY29udHJvbC5hbGlnbm1lbnRZXG4gICAgICAgICAgICAgICAgICAgIHJlY3QuaGVpZ2h0ID0gTWF0aC5tYXgoY29udHJvbC5tYXJnaW4udG9wICsgY29udHJvbC5kc3RSZWN0LmhlaWdodCArIGNvbnRyb2wubWFyZ2luLmJvdHRvbSwgcmVjdC5oZWlnaHQgfHwgMSlcbiAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIGEgc3BlY2lmaWVkIGNvbnRyb2wuXG4gICAgKlxuICAgICogQG1ldGhvZCB1cGRhdGVDb250cm9sXG4gICAgKiBAcHJvdGVjdGVkXG4gICAgKiBAcGFyYW0ge2dzLk9iamVjdF9CYXNlfSBjb250cm9sIFRoZSBjb250cm9sIHRvIHVwZGF0ZVxuICAgICMjIyAgICAgICAgIFxuICAgIHVwZGF0ZUNvbnRyb2w6IChjb250cm9sKSAtPlxuICAgICAgICBzdXBlclxuICAgICAgICBcbiAgICAgICAgcmVjdCA9IEBvYmplY3QuZHN0UmVjdFxuICAgICAgICBtYXJnaW4gPSBjb250cm9sLm1hcmdpblxuXG4gICAgICAgIGlmIGNvbnRyb2wuYWxpZ25tZW50WCA9PSAxXG4gICAgICAgICAgICBjb250cm9sLmRzdFJlY3QueCA9IChyZWN0LndpZHRoIC0gKGNvbnRyb2wuZHN0UmVjdC53aWR0aCttYXJnaW4ucmlnaHQrbWFyZ2luLmxlZnQpKSAvIDJcbiAgICAgICAgZWxzZSBpZiBjb250cm9sLmFsaWdubWVudFggPT0gMlxuICAgICAgICAgICAgY29udHJvbC5kc3RSZWN0LnggPSByZWN0LndpZHRoKkBvYmplY3Quem9vbS54IC0gKGNvbnRyb2wuZHN0UmVjdC53aWR0aCArIGNvbnRyb2wubWFyZ2luLnJpZ2h0KSpjb250cm9sLnpvb20ueCBcbiAgICAgXG4gICAgICAgIGlmIGNvbnRyb2wuYWxpZ25tZW50WSA9PSAxXG4gICAgICAgICAgICBjb250cm9sLmRzdFJlY3QueSA9IChyZWN0LmhlaWdodCpAb2JqZWN0Lnpvb20ueSAtIChjb250cm9sLmRzdFJlY3QuaGVpZ2h0K21hcmdpbi5ib3R0b20rbWFyZ2luLnRvcCkqY29udHJvbC56b29tLnkpIC8gMlxuICAgICAgICBlbHNlIGlmIGNvbnRyb2wuYWxpZ25tZW50WSA9PSAyXG4gICAgICAgICAgICBjb250cm9sLmRzdFJlY3QueSA9IHJlY3QuaGVpZ2h0IC0gKGNvbnRyb2wuZHN0UmVjdC5oZWlnaHQgKyBjb250cm9sLm1hcmdpbi5ib3R0b20pXG4gICAgICAgXG4gICAgICAgIFxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBMYXlvdXRzIHRoZSBzdWItb2JqZWN0cy5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHVwZGF0ZVxuICAgICMjI1xuICAgIHVwZGF0ZTogLT5cbiAgICAgICAgc3VwZXJcbiAgICAgICAgXG4gICAgICAgIGZvciBjb250cm9sLCBpIGluIEBvYmplY3Quc3ViT2JqZWN0c1xuICAgICAgICAgICAgQHVwZGF0ZUNvbnRyb2woY29udHJvbClcbiAgICAgICAgICAgIFxuICAgICAgICBAc2l6ZVRvRml0KClcbiBcbiAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gbnVsbCAgICBcbiAgICAgICAgXG5ncy5Db21wb25lbnRfRnJlZUxheW91dEJlaGF2aW9yID0gQ29tcG9uZW50X0ZyZWVMYXlvdXRCZWhhdmlvciJdfQ==
//# sourceURL=Component_FreeLayoutBehavior_58.js

Commits for Nextrek/s2s/development/Component_FreeLayoutBehavior_C36C2E79K2769A40AES994EE16EAD26D7EC9.js

Diff revisions: vs.
Revision Author Commited Message
1084 MOliva picture MOliva Fri 11 May, 2018 12:41:55 +0000