aboutsummaryrefslogtreecommitdiff
path: root/js/components/tools-properties/rect-properties.reel/rect-properties.js
blob: 94c674a2f59b268e9a789f9934d6e369edb1da21 (plain)
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc.  All Rights Reserved.
</copyright> */

var Montage = require("montage/core/core").Montage,
    ToolProperties = require("js/components/tools-properties/tool-properties").ToolProperties;

exports.RectProperties = Montage.create(ToolProperties, {
    base: {
        value: null,
        serializable: true
    },

    lockButton: {
        value: null,
        serializable: true
    },

    TLRadiusControl: { value: null, serializable: true },
    TRRadiusControl: { value: null, serializable: true },
    BLRadiusControl: { value: null, serializable: true },
    BRRadiusControl: { value: null, serializable: true },

    _unlocked: { value: false, enumerable: false},

    _subPrepare: {
        value: function() {
        }
    },

    handleLockButtonAction: {
        value: function(event) {
            this.TRRadiusControl.enabled = this.BLRadiusControl.enabled = this.BRRadiusControl.enabled = !this.lockButton.pressed;

            if(this.lockButton.pressed) {
                this._syncRadii(this.TLRadiusControl.value, this.TLRadiusControl.units);
            }
        }
    },

    // Public API
    fill: {
        get: function () { return this.base.fill; }
    },

    stroke: {
        get: function () { return this.base.stroke; }
    },

    use3D: {
        get: function() { return this.base._use3D; }
    },
    
    strokeSize: {
        get: function() { return this.base._strokeSize; }
    },

    strokeStyle : {
        get: function() {
//            return this.base._strokeStyle.options[this.base._strokeStyle.value].text;
            return "Solid";
        }
    },

    strokeStyleIndex : {
        get: function() {
//            return this.base._strokeStyle.options[this.base._strokeStyle.value].value;
            return 1;
        }
    },

    strokeMaterial: {
        get: function() { return this.base._strokeMaterial.value; }
    },

    fillMaterial: {
        get: function() { return this.base._fillMaterial.value; }
    },

    handleChanging: {
        value: function(event) {
            if(event.wasSetByCode) {
                return;
            }

            this._setBorderRadius(event);
        }
    },

    handleChange: {
        value: function(event) {
            if(event.wasSetByCode) {
                return;
            }

            this._setBorderRadius(event);
        }
    },

    _setBorderRadius: {
        value: function(event) {
            var hotTxt = event.currentTarget;
            if(hotTxt.units === "%") {
                if(hotTxt.value > 50) {
                    hotTxt.maxValue = 50;
                }
            }

            if(this.lockButton.pressed && (this.TLRadiusControl === hotTxt)) {
                this._syncRadii(hotTxt.value, hotTxt.units);
            }
        }
    },

    _syncRadii: {
        value: function(value, units) {
            this.TRRadiusControl.value = value;
            this.BLRadiusControl.value = value;
            this.BRRadiusControl.value = value;

            this.TRRadiusControl.units = units;
            this.BLRadiusControl.units = units;
            this.BRRadiusControl.units = units;
        }
    }

});