1 <html><head><meta http-equiv=
"content-type" content=
"text/html; charset=utf-8"> <style>
3 .COMM {color: #bbb; font-style: italic;}
7 .line {border-right:
1px dotted #
666; color: #
666; font-style: normal;}
8 </style></head><body><pre><span class='line'
> 1</span> <span class=
"COMM">/*
9 <span class='line'
> 2</span> * Copyright (C)
2008,
2009 Mihai Şucan
10 <span class='line'
> 3</span> *
11 <span class='line'
> 4</span> * This file is part of PaintWeb.
12 <span class='line'
> 5</span> *
13 <span class='line'
> 6</span> * PaintWeb is free software: you can redistribute it and/or modify
14 <span class='line'
> 7</span> * it under the terms of the GNU General Public License as published by
15 <span class='line'
> 8</span> * the Free Software Foundation, either version
3 of the License, or
16 <span class='line'
> 9</span> * (at your option) any later version.
17 <span class='line'
> 10</span> *
18 <span class='line'
> 11</span> * PaintWeb is distributed in the hope that it will be useful,
19 <span class='line'
> 12</span> * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 <span class='line'
> 13</span> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 <span class='line'
> 14</span> * GNU General Public License for more details.
22 <span class='line'
> 15</span> *
23 <span class='line'
> 16</span> * You should have received a copy of the GNU General Public License
24 <span class='line'
> 17</span> * along with PaintWeb. If not, see
<http://www.gnu.org/licenses
/>.
25 <span class='line'
> 18</span> *
26 <span class='line'
> 19</span> * $URL: http://code.google.com/p/paintweb $
27 <span class='line'
> 20</span> * $Date:
2009-
07-
02 16:
07:
14 +
0300 $
28 <span class='line'
> 21</span> */
</span><span class=
"WHIT">
29 <span class='line'
> 22</span>
30 <span class='line'
> 23</span> </span><span class=
"COMM">/**
31 <span class='line'
> 24</span> * @author
<a
lang=
"ro" href=
"http://www.robodesign.ro/mihai">Mihai Şucan
</a
>
32 <span class='line'
> 25</span> * @fileOverview Holds the selection tool implementation.
33 <span class='line'
> 26</span> */
</span><span class=
"WHIT">
34 <span class='line'
> 27</span>
35 <span class='line'
> 28</span> </span><span class=
"COMM">/**
36 <span class='line'
> 29</span> * @class The selection tool.
37 <span class='line'
> 30</span> *
38 <span class='line'
> 31</span> * @param {PaintWeb} app Reference to the main paint application object.
39 <span class='line'
> 32</span> */
</span><span class=
"WHIT">
40 <span class='line'
> 33</span> </span><span class=
"NAME">pwlib.tools.selection
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">app
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
41 <span class='line'
> 34</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">_self
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">this
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
42 <span class='line'
> 35</span> </span><span class=
"WHIT"> </span><span class=
"NAME">appEvent
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">pwlib.appEvent
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
43 <span class='line'
> 36</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.buffer.context
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
44 <span class='line'
> 37</span> </span><span class=
"WHIT"> </span><span class=
"NAME">clearInterval
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.win.clearInterval
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
45 <span class='line'
> 38</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.config.selection
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
46 <span class='line'
> 39</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.gui
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
47 <span class='line'
> 40</span> </span><span class=
"WHIT"> </span><span class=
"NAME">image
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.image
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
48 <span class='line'
> 41</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lang
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.lang
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
49 <span class='line'
> 42</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerCanvas
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.layer.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
50 <span class='line'
> 43</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.layer.context
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
51 <span class='line'
> 44</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
52 <span class='line'
> 45</span> </span><span class=
"WHIT"> </span><span class=
"NAME">MathAbs
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">Math.abs
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
53 <span class='line'
> 46</span> </span><span class=
"WHIT"> </span><span class=
"NAME">MathMin
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">Math.min
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
54 <span class='line'
> 47</span> </span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">Math.round
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
55 <span class='line'
> 48</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.mouse
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
56 <span class='line'
> 49</span> </span><span class=
"WHIT"> </span><span class=
"NAME">setInterval
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.win.setInterval
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
57 <span class='line'
> 50</span> </span><span class=
"WHIT"> </span><span class=
"NAME">snapXY
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.toolSnapXY
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
58 <span class='line'
> 51</span>
59 <span class='line'
> 52</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
60 <span class='line'
> 53</span> * The interval ID used for invoking the drawing operation every few
61 <span class='line'
> 54</span> * milliseconds.
62 <span class='line'
> 55</span> *
63 <span class='line'
> 56</span> * @private
64 <span class='line'
> 57</span> * @see PaintWeb.config.toolDrawDelay
65 <span class='line'
> 58</span> */
</span><span class=
"WHIT">
66 <span class='line'
> 59</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">timer
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
67 <span class='line'
> 60</span>
68 <span class='line'
> 61</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
69 <span class='line'
> 62</span> * Tells if the drawing canvas needs to be updated or not.
70 <span class='line'
> 63</span> *
71 <span class='line'
> 64</span> * @private
72 <span class='line'
> 65</span> * @type Boolean
73 <span class='line'
> 66</span> * @default false
74 <span class='line'
> 67</span> */
</span><span class=
"WHIT">
75 <span class='line'
> 68</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">needsRedraw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
76 <span class='line'
> 69</span>
77 <span class='line'
> 70</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
78 <span class='line'
> 71</span> * The selection has been dropped, and the mouse button is down. The user has
79 <span class='line'
> 72</span> * two choices: he releases the mouse button, thus the selection is dropped
80 <span class='line'
> 73</span> * and the tool switches to STATE_NONE, or he moves the mouse in order to
81 <span class='line'
> 74</span> * start a new selection (STATE_DRAWING).
82 <span class='line'
> 75</span> * @constant
83 <span class='line'
> 76</span> */
</span><span class=
"WHIT">
84 <span class='line'
> 77</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_PENDING
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"NUMB">1</span><span class=
"PUNC">;
</span><span class=
"WHIT">
85 <span class='line'
> 78</span>
86 <span class='line'
> 79</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
87 <span class='line'
> 80</span> * No selection is available.
88 <span class='line'
> 81</span> * @constant
89 <span class='line'
> 82</span> */
</span><span class=
"WHIT">
90 <span class='line'
> 83</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_NONE
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
91 <span class='line'
> 84</span>
92 <span class='line'
> 85</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
93 <span class='line'
> 86</span> * The user is drawing a selection.
94 <span class='line'
> 87</span> * @constant
95 <span class='line'
> 88</span> */
</span><span class=
"WHIT">
96 <span class='line'
> 89</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_DRAWING
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">1</span><span class=
"PUNC">;
</span><span class=
"WHIT">
97 <span class='line'
> 90</span>
98 <span class='line'
> 91</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
99 <span class='line'
> 92</span> * The selection rectangle is available.
100 <span class='line'
> 93</span> * @constant
101 <span class='line'
> 94</span> */
</span><span class=
"WHIT">
102 <span class='line'
> 95</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_SELECTED
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">2</span><span class=
"PUNC">;
</span><span class=
"WHIT">
103 <span class='line'
> 96</span>
104 <span class='line'
> 97</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
105 <span class='line'
> 98</span> * The user is dragging/moving the selection rectangle.
106 <span class='line'
> 99</span> * @constant
107 <span class='line'
>100</span> */
</span><span class=
"WHIT">
108 <span class='line'
>101</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_DRAGGING
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">3</span><span class=
"PUNC">;
</span><span class=
"WHIT">
109 <span class='line'
>102</span>
110 <span class='line'
>103</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
111 <span class='line'
>104</span> * The user is resizing the selection rectangle.
112 <span class='line'
>105</span> * @constant
113 <span class='line'
>106</span> */
</span><span class=
"WHIT">
114 <span class='line'
>107</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_RESIZING
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">4</span><span class=
"PUNC">;
</span><span class=
"WHIT">
115 <span class='line'
>108</span>
116 <span class='line'
>109</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
117 <span class='line'
>110</span> * Selection state. Known states:
118 <span class='line'
>111</span> *
119 <span class='line'
>112</span> *
<ul
>
120 <span class='line'
>113</span> *
<li
>{@link pwlib.tools.selection#STATE_PENDING} - Selection dropped after
121 <span class='line'
>114</span> * the
<code
>mousedown
</code
> event is fired. The script can switch to
122 <span class='line'
>115</span> * STATE_DRAWING if the mouse moves, or to STATE_NONE if it does not
123 <span class='line'
>116</span> * (allowing the user to drop the selection).
124 <span class='line'
>117</span> *
125 <span class='line'
>118</span> *
<li
>{@link pwlib.tools.selection#STATE_NONE} - No selection is available.
126 <span class='line'
>119</span> *
127 <span class='line'
>120</span> *
<li
>{@link pwlib.tools.selection#STATE_DRAWING} - The user is drawing the
128 <span class='line'
>121</span> * selection rectangle.
129 <span class='line'
>122</span> *
130 <span class='line'
>123</span> *
<li
>{@link pwlib.tools.selection#STATE_SELECTED} - The selection
131 <span class='line'
>124</span> * rectangle is available.
132 <span class='line'
>125</span> *
133 <span class='line'
>126</span> *
<li
>{@link pwlib.tools.selection#STATE_DRAGGING} - The user is
134 <span class='line'
>127</span> * dragging/moving the current selection.
135 <span class='line'
>128</span> *
136 <span class='line'
>129</span> *
<li
>{@link pwlib.tools.selection#STATE_RESIZING} - The user is resizing
137 <span class='line'
>130</span> * the current selection.
138 <span class='line'
>131</span> *
</ul
>
139 <span class='line'
>132</span> *
140 <span class='line'
>133</span> * @type Number
141 <span class='line'
>134</span> * @default STATE_NONE
142 <span class='line'
>135</span> */
</span><span class=
"WHIT">
143 <span class='line'
>136</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_NONE
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
144 <span class='line'
>137</span>
145 <span class='line'
>138</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
146 <span class='line'
>139</span> * Holds the starting point on the
<var
>x
</var
> axis of the image, for any
147 <span class='line'
>140</span> * ongoing operation.
148 <span class='line'
>141</span> *
149 <span class='line'
>142</span> * @private
150 <span class='line'
>143</span> * @type Number
151 <span class='line'
>144</span> */
</span><span class=
"WHIT">
152 <span class='line'
>145</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
153 <span class='line'
>146</span>
154 <span class='line'
>147</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
155 <span class='line'
>148</span> * Holds the starting point on the
<var
>y
</var
> axis of the image, for the any
156 <span class='line'
>149</span> * ongoing operation.
157 <span class='line'
>150</span> *
158 <span class='line'
>151</span> * @private
159 <span class='line'
>152</span> * @type Number
160 <span class='line'
>153</span> */
</span><span class=
"WHIT">
161 <span class='line'
>154</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
162 <span class='line'
>155</span>
163 <span class='line'
>156</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
164 <span class='line'
>157</span> * Holds selection information and image.
165 <span class='line'
>158</span> * @type Object
166 <span class='line'
>159</span> */
</span><span class=
"WHIT">
167 <span class='line'
>160</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selection
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
168 <span class='line'
>161</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
169 <span class='line'
>162</span> * Selection start point, on the
<var
>x
</var
> axis.
170 <span class='line'
>163</span> * @type Number
171 <span class='line'
>164</span> */
</span><span class=
"WHIT">
172 <span class='line'
>165</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT">
173 <span class='line'
>166</span>
174 <span class='line'
>167</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
175 <span class='line'
>168</span> * Selection start point, on the
<var
>y
</var
> axis.
176 <span class='line'
>169</span> * @type Number
177 <span class='line'
>170</span> */
</span><span class=
"WHIT">
178 <span class='line'
>171</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT">
179 <span class='line'
>172</span>
180 <span class='line'
>173</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
181 <span class='line'
>174</span> * Selection width.
182 <span class='line'
>175</span> * @type Number
183 <span class='line'
>176</span> */
</span><span class=
"WHIT">
184 <span class='line'
>177</span> </span><span class=
"WHIT"> </span><span class=
"NAME">width
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT">
185 <span class='line'
>178</span>
186 <span class='line'
>179</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
187 <span class='line'
>180</span> * Selection height.
188 <span class='line'
>181</span> * @type Number
189 <span class='line'
>182</span> */
</span><span class=
"WHIT">
190 <span class='line'
>183</span> </span><span class=
"WHIT"> </span><span class=
"NAME">height
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT">
191 <span class='line'
>184</span>
192 <span class='line'
>185</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
193 <span class='line'
>186</span> * Selection original width. The user can make a selection rectangle of
194 <span class='line'
>187</span> * a given width and height, but after that he/she can resize the selection.
195 <span class='line'
>188</span> * @type Number
196 <span class='line'
>189</span> */
</span><span class=
"WHIT">
197 <span class='line'
>190</span> </span><span class=
"WHIT"> </span><span class=
"NAME">widthOriginal
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT">
198 <span class='line'
>191</span>
199 <span class='line'
>192</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
200 <span class='line'
>193</span> * Selection original height. The user can make a selection rectangle of
201 <span class='line'
>194</span> * a given width and height, but after that he/she can resize the selection.
202 <span class='line'
>195</span> * @type Number
203 <span class='line'
>196</span> */
</span><span class=
"WHIT">
204 <span class='line'
>197</span> </span><span class=
"WHIT"> </span><span class=
"NAME">heightOriginal
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT">
205 <span class='line'
>198</span>
206 <span class='line'
>199</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
207 <span class='line'
>200</span> * Tells if the selected ImageData has been cut out or not from the
208 <span class='line'
>201</span> * layerContext.
209 <span class='line'
>202</span> *
210 <span class='line'
>203</span> * @type Boolean
211 <span class='line'
>204</span> * @default false
212 <span class='line'
>205</span> */
</span><span class=
"WHIT">
213 <span class='line'
>206</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerCleared
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
214 <span class='line'
>207</span>
215 <span class='line'
>208</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
216 <span class='line'
>209</span> * Selection marquee/border element.
217 <span class='line'
>210</span> * @type HTMLElement
218 <span class='line'
>211</span> */
</span><span class=
"WHIT">
219 <span class='line'
>212</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marquee
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
220 <span class='line'
>213</span>
221 <span class='line'
>214</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
222 <span class='line'
>215</span> * Selection buffer context which holds the selected pixels.
223 <span class='line'
>216</span> * @type CanvasRenderingContext2D
224 <span class='line'
>217</span> */
</span><span class=
"WHIT">
225 <span class='line'
>218</span> </span><span class=
"WHIT"> </span><span class=
"NAME">context
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
226 <span class='line'
>219</span>
227 <span class='line'
>220</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
228 <span class='line'
>221</span> * Selection buffer canvas which holds the selected pixels.
229 <span class='line'
>222</span> * @type HTMLCanvasElement
230 <span class='line'
>223</span> */
</span><span class=
"WHIT">
231 <span class='line'
>224</span> </span><span class=
"WHIT"> </span><span class=
"NAME">canvas
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"WHIT">
232 <span class='line'
>225</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
233 <span class='line'
>226</span>
234 <span class='line'
>227</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
235 <span class='line'
>228</span> * The area type under the current mouse location.
236 <span class='line'
>229</span> *
237 <span class='line'
>230</span> *
<p
>When the selection is available the mouse location can be on top/inside
238 <span class='line'
>231</span> * the selection rectangle, on the border of the selection, or outside the
239 <span class='line'
>232</span> * selection.
240 <span class='line'
>233</span> *
241 <span class='line'
>234</span> *
<p
>Possible values: 'in', 'out', 'border'.
242 <span class='line'
>235</span> *
243 <span class='line'
>236</span> * @private
244 <span class='line'
>237</span> * @type String
245 <span class='line'
>238</span> * @default 'out'
246 <span class='line'
>239</span> */
</span><span class=
"WHIT">
247 <span class='line'
>240</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">mouseArea
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'out'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
248 <span class='line'
>241</span>
249 <span class='line'
>242</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
250 <span class='line'
>243</span> * The resize type. If the mouse is on top of the selection border, then the
251 <span class='line'
>244</span> * selection can be resized. The direction of the resize operation is
252 <span class='line'
>245</span> * determined by the location of the mouse.
253 <span class='line'
>246</span> *
254 <span class='line'
>247</span> *
<p
>While the user resizes the selection this variable can hold the
255 <span class='line'
>248</span> * following values: 'n' (North), 'ne' (North-East), 'e' (East), 'se'
256 <span class='line'
>249</span> * (South-East), 's' (South), 'sw' (South-West), 'w' (West), 'nw'
257 <span class='line'
>250</span> * (North-West).
258 <span class='line'
>251</span> *
259 <span class='line'
>252</span> * @private
260 <span class='line'
>253</span> * @type String
261 <span class='line'
>254</span> * @default null
262 <span class='line'
>255</span> */
</span><span class=
"WHIT">
263 <span class='line'
>256</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">mouseResize
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
264 <span class='line'
>257</span>
265 <span class='line'
>258</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// shorthands / private variables
</span><span class=
"WHIT">
266 <span class='line'
>259</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">sel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">this.selection
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
267 <span class='line'
>260</span> </span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">config.borderWidth
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NUMB">2</span><span class=
"PUNC">,
</span><span class=
"WHIT">
268 <span class='line'
>261</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ev_canvasSizeChangeId
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
269 <span class='line'
>262</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ev_configChangeId
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
270 <span class='line'
>263</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ctrlKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
271 <span class='line'
>264</span> </span><span class=
"WHIT"> </span><span class=
"NAME">shiftKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
272 <span class='line'
>265</span>
273 <span class='line'
>266</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
274 <span class='line'
>267</span> * The last selection rectangle that was drawn. This is used by the selection
275 <span class='line'
>268</span> * drawing functions.
276 <span class='line'
>269</span> *
277 <span class='line'
>270</span> * @private
278 <span class='line'
>271</span> * @type Object
279 <span class='line'
>272</span> */
</span><span class=
"WHIT">
280 <span class='line'
>273</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// We avoid retrieving the mouse coordinates during the mouseup event, due to
</span><span class=
"WHIT">
281 <span class='line'
>274</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// the Opera bug DSK-
232264.
</span><span class=
"WHIT">
282 <span class='line'
>275</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
283 <span class='line'
>276</span>
284 <span class='line'
>277</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
285 <span class='line'
>278</span> * The tool preactivation code. This function prepares the selection canvas
286 <span class='line'
>279</span> * element.
287 <span class='line'
>280</span> *
288 <span class='line'
>281</span> * @returns {Boolean} True if the activation did not fail, or false otherwise.
289 <span class='line'
>282</span> * If false is returned, the selection tool cannot be activated.
290 <span class='line'
>283</span> */
</span><span class=
"WHIT">
291 <span class='line'
>284</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.preActivate
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
292 <span class='line'
>285</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"PUNC">(
</span><span class=
"STRN">'canvasContainer'
</span><span class=
"WHIT"> </span><span class=
"KEYW">in
</span><span class=
"WHIT"> </span><span class=
"NAME">gui.elems
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
293 <span class='line'
>286</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.errorToolActivate
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
294 <span class='line'
>287</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
295 <span class='line'
>288</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
296 <span class='line'
>289</span>
297 <span class='line'
>290</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// The selection image buffer.
</span><span class=
"WHIT">
298 <span class='line'
>291</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.doc.createElement
</span><span class=
"PUNC">(
</span><span class=
"STRN">'canvas'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
299 <span class='line'
>292</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
300 <span class='line'
>293</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.errorToolActivate
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
301 <span class='line'
>294</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
302 <span class='line'
>295</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
303 <span class='line'
>296</span>
304 <span class='line'
>297</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
305 <span class='line'
>298</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
306 <span class='line'
>299</span>
307 <span class='line'
>300</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.context
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.getContext
</span><span class=
"PUNC">(
</span><span class=
"STRN">'
2d'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
308 <span class='line'
>301</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.context
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
309 <span class='line'
>302</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.errorToolActivate
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
310 <span class='line'
>303</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
311 <span class='line'
>304</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
312 <span class='line'
>305</span>
313 <span class='line'
>306</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.doc.createElement
</span><span class=
"PUNC">(
</span><span class=
"STRN">'div'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
314 <span class='line'
>307</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.marquee
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
315 <span class='line'
>308</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.errorToolActivate
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
316 <span class='line'
>309</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
317 <span class='line'
>310</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
318 <span class='line'
>311</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.className
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">gui.classPrefix
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'selectionMarquee'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
319 <span class='line'
>312</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.style
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
320 <span class='line'
>313</span>
321 <span class='line'
>314</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
322 <span class='line'
>315</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
323 <span class='line'
>316</span>
324 <span class='line'
>317</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
325 <span class='line'
>318</span> * The tool activation code. This method sets-up multiple event listeners for
326 <span class='line'
>319</span> * several target objects.
327 <span class='line'
>320</span> */
</span><span class=
"WHIT">
328 <span class='line'
>321</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.activate
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
329 <span class='line'
>322</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Older browsers do not support get/putImageData, thus non-transparent
</span><span class=
"WHIT">
330 <span class='line'
>323</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// selections cannot be used.
</span><span class=
"WHIT">
331 <span class='line'
>324</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">layerContext.putImageData
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">layerContext.getImageData
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
332 <span class='line'
>325</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config.transparent
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
333 <span class='line'
>326</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
334 <span class='line'
>327</span>
335 <span class='line'
>328</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
336 <span class='line'
>329</span>
337 <span class='line'
>330</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.borderWidth
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">config.borderWidth
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
338 <span class='line'
>331</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.addEventListener
</span><span class=
"PUNC">(
</span><span class=
"STRN">'mousedown'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMousedown
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
339 <span class='line'
>332</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.addEventListener
</span><span class=
"PUNC">(
</span><span class=
"STRN">'mousemove'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMousemove
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
340 <span class='line'
>333</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.addEventListener
</span><span class=
"PUNC">(
</span><span class=
"STRN">'mouseup'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMouseup
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
341 <span class='line'
>334</span>
342 <span class='line'
>335</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.elems.canvasContainer.appendChild
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.marquee
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
343 <span class='line'
>336</span>
344 <span class='line'
>337</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Disable the Canvas shadow.
</span><span class=
"WHIT">
345 <span class='line'
>338</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.shadowDisallow
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
346 <span class='line'
>339</span>
347 <span class='line'
>340</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Application event listeners.
</span><span class=
"WHIT">
348 <span class='line'
>341</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ev_canvasSizeChangeId
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.events.add
</span><span class=
"PUNC">(
</span><span class=
"STRN">'canvasSizeChange'
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
349 <span class='line'
>342</span> </span><span class=
"NAME">ev_canvasSizeChange
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
350 <span class='line'
>343</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ev_configChangeId
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.events.add
</span><span class=
"PUNC">(
</span><span class=
"STRN">'configChange'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">ev_configChange
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
351 <span class='line'
>344</span>
352 <span class='line'
>345</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Register selection-related commands
</span><span class=
"WHIT">
353 <span class='line'
>346</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.commandRegister
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionCrop'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionCrop
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
354 <span class='line'
>347</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.commandRegister
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionDelete'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionDelete
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
355 <span class='line'
>348</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.commandRegister
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionFill'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionFill
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
356 <span class='line'
>349</span>
357 <span class='line'
>350</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">timer
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
358 <span class='line'
>351</span> </span><span class=
"WHIT"> </span><span class=
"NAME">timer
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">setInterval
</span><span class=
"PUNC">(
</span><span class=
"NAME">timerFn
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">app.config.toolDrawDelay
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
359 <span class='line'
>352</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
360 <span class='line'
>353</span>
361 <span class='line'
>354</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
362 <span class='line'
>355</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
363 <span class='line'
>356</span>
364 <span class='line'
>357</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
365 <span class='line'
>358</span> * The tool deactivation code. This removes all event listeners and cleans up
366 <span class='line'
>359</span> * the document.
367 <span class='line'
>360</span> */
</span><span class=
"WHIT">
368 <span class='line'
>361</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.deactivate
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
369 <span class='line'
>362</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">timer
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
370 <span class='line'
>363</span> </span><span class=
"WHIT"> </span><span class=
"NAME">clearInterval
</span><span class=
"PUNC">(
</span><span class=
"NAME">timer
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
371 <span class='line'
>364</span> </span><span class=
"WHIT"> </span><span class=
"NAME">timer
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
372 <span class='line'
>365</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
373 <span class='line'
>366</span>
374 <span class='line'
>367</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionMerge
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
375 <span class='line'
>368</span>
376 <span class='line'
>369</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.removeEventListener
</span><span class=
"PUNC">(
</span><span class=
"STRN">'mousedown'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMousedown
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
377 <span class='line'
>370</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.removeEventListener
</span><span class=
"PUNC">(
</span><span class=
"STRN">'mousemove'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMousemove
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
378 <span class='line'
>371</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee.removeEventListener
</span><span class=
"PUNC">(
</span><span class=
"STRN">'mouseup'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMouseup
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
379 <span class='line'
>372</span>
380 <span class='line'
>373</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
381 <span class='line'
>374</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.elems.canvasContainer.removeChild
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.marquee
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
382 <span class='line'
>375</span>
383 <span class='line'
>376</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">delete
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.context
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.marquee
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
384 <span class='line'
>377</span>
385 <span class='line'
>378</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Re-enable canvas shadow.
</span><span class=
"WHIT">
386 <span class='line'
>379</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.shadowAllow
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
387 <span class='line'
>380</span>
388 <span class='line'
>381</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Remove the application event listeners.
</span><span class=
"WHIT">
389 <span class='line'
>382</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev_canvasSizeChangeId
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
390 <span class='line'
>383</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.remove
</span><span class=
"PUNC">(
</span><span class=
"STRN">'canvasSizeChange'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">ev_canvasSizeChangeId
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
391 <span class='line'
>384</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
392 <span class='line'
>385</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev_configChangeId
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
393 <span class='line'
>386</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.remove
</span><span class=
"PUNC">(
</span><span class=
"STRN">'configChange'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">ev_configChangeId
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
394 <span class='line'
>387</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
395 <span class='line'
>388</span>
396 <span class='line'
>389</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Unregister selection-related commands
</span><span class=
"WHIT">
397 <span class='line'
>390</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.commandUnregister
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionCrop'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
398 <span class='line'
>391</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.commandUnregister
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionDelete'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
399 <span class='line'
>392</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.commandUnregister
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionFill'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
400 <span class='line'
>393</span>
401 <span class='line'
>394</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
402 <span class='line'
>395</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
403 <span class='line'
>396</span>
404 <span class='line'
>397</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
405 <span class='line'
>398</span> * The
<code
>mousedown
</code
> event handler. Depending on the mouse location,
406 <span class='line'
>399</span> * this method does initiate different selection operations: drawing,
407 <span class='line'
>400</span> * dropping, dragging or resizing.
408 <span class='line'
>401</span> *
409 <span class='line'
>402</span> *
<p
>Hold the
<kbd
>Control
</kbd
> key down to temporarily toggle the
410 <span class='line'
>403</span> * transformation mode.
411 <span class='line'
>404</span> *
412 <span class='line'
>405</span> * @param {Event} ev The DOM Event object.
413 <span class='line'
>406</span> */
</span><span class=
"WHIT">
414 <span class='line'
>407</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.mousedown
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
415 <span class='line'
>408</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
416 <span class='line'
>409</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
417 <span class='line'
>410</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
418 <span class='line'
>411</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
419 <span class='line'
>412</span>
420 <span class='line'
>413</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Update the current mouse position, this is used as the start position for most of the operations.
</span><span class=
"WHIT">
421 <span class='line'
>414</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
422 <span class='line'
>415</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
423 <span class='line'
>416</span>
424 <span class='line'
>417</span> </span><span class=
"WHIT"> </span><span class=
"NAME">shiftKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.shiftKey
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
425 <span class='line'
>418</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ctrlKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.ctrlKey
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
426 <span class='line'
>419</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
427 <span class='line'
>420</span>
428 <span class='line'
>421</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// No selection is available, then start drawing a selection.
</span><span class=
"WHIT">
429 <span class='line'
>422</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
430 <span class='line'
>423</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_DRAWING
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
431 <span class='line'
>424</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.display
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
432 <span class='line'
>425</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionDraw'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
433 <span class='line'
>426</span>
434 <span class='line'
>427</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
435 <span class='line'
>428</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
436 <span class='line'
>429</span>
437 <span class='line'
>430</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// STATE_SELECTED: selection available.
</span><span class=
"WHIT">
438 <span class='line'
>431</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseAreaUpdate
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
439 <span class='line'
>432</span>
440 <span class='line'
>433</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/*
441 <span class='line'
>434</span> * Check if the user clicked outside the selection: drop the selection,
442 <span class='line'
>435</span> * switch to STATE_PENDING, clear the image buffer and put the current
443 <span class='line'
>436</span> * selection buffer in the image layer.
444 <span class='line'
>437</span> *
445 <span class='line'
>438</span> * If the user moves the mouse without taking the finger off the mouse
446 <span class='line'
>439</span> * button, then a new selection rectangle will start to be drawn: the script
447 <span class='line'
>440</span> * will switch to STATE_DRAWING.
448 <span class='line'
>441</span> *
449 <span class='line'
>442</span> * If the user simply takes the finger off the mouse button (mouseup), then
450 <span class='line'
>443</span> * the script will switch to STATE_NONE (no selection available).
451 <span class='line'
>444</span> */
</span><span class=
"WHIT">
452 <span class='line'
>445</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">switch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouseArea
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
453 <span class='line'
>446</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'out'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
454 <span class='line'
>447</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_PENDING
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
455 <span class='line'
>448</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
456 <span class='line'
>449</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionActive'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
457 <span class='line'
>450</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionMergeStrict
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
458 <span class='line'
>451</span>
459 <span class='line'
>452</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
460 <span class='line'
>453</span>
461 <span class='line'
>454</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'in'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
462 <span class='line'
>455</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// The mouse area: 'in' for drag.
</span><span class=
"WHIT">
463 <span class='line'
>456</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_DRAGGING
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
464 <span class='line'
>457</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionDrag'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
465 <span class='line'
>458</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
466 <span class='line'
>459</span>
467 <span class='line'
>460</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'border'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
468 <span class='line'
>461</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// 'border' for resize (the user is clicking on the borders).
</span><span class=
"WHIT">
469 <span class='line'
>462</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_RESIZING
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
470 <span class='line'
>463</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionResize'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
471 <span class='line'
>464</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
472 <span class='line'
>465</span>
473 <span class='line'
>466</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Temporarily toggle the transformation mode if the user holds the Control
</span><span class=
"WHIT">
474 <span class='line'
>467</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// key down.
</span><span class=
"WHIT">
475 <span class='line'
>468</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev.ctrlKey
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
476 <span class='line'
>469</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config.transform
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
477 <span class='line'
>470</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
478 <span class='line'
>471</span>
479 <span class='line'
>472</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// If there's any ImageData currently in memory, which was
"cut" out from
</span><span class=
"WHIT">
480 <span class='line'
>473</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// the current layer, then put it back on the layer. This needs to be done
</span><span class=
"WHIT">
481 <span class='line'
>474</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// only when the selection.transform mode is not active - that's when the
</span><span class=
"WHIT">
482 <span class='line'
>475</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// drag/resize operation only changes the selection, not the pixels
</span><span class=
"WHIT">
483 <span class='line'
>476</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// themselves.
</span><span class=
"WHIT">
484 <span class='line'
>477</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
485 <span class='line'
>478</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionMergeStrict
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
486 <span class='line'
>479</span>
487 <span class='line'
>480</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">config.transform
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
488 <span class='line'
>481</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// When the user starts dragging/resizing the ImageData we must cut out
</span><span class=
"WHIT">
489 <span class='line'
>482</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// the current selection from the image layer.
</span><span class=
"WHIT">
490 <span class='line'
>483</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionBufferInit
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
491 <span class='line'
>484</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
492 <span class='line'
>485</span>
493 <span class='line'
>486</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
494 <span class='line'
>487</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
495 <span class='line'
>488</span>
496 <span class='line'
>489</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
497 <span class='line'
>490</span> * The
<code
>mousemove
</code
> event handler.
498 <span class='line'
>491</span> *
499 <span class='line'
>492</span> * @param {Event} ev The DOM Event object.
500 <span class='line'
>493</span> */
</span><span class=
"WHIT">
501 <span class='line'
>494</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.mousemove
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
502 <span class='line'
>495</span> </span><span class=
"WHIT"> </span><span class=
"NAME">shiftKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.shiftKey
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
503 <span class='line'
>496</span> </span><span class=
"WHIT"> </span><span class=
"NAME">needsRedraw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
504 <span class='line'
>497</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
505 <span class='line'
>498</span>
506 <span class='line'
>499</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
507 <span class='line'
>500</span> * The timer function. When the mouse button is down, this method performs the
508 <span class='line'
>501</span> * dragging/resizing operation. When the mouse button is not down, this method
509 <span class='line'
>502</span> * simply tracks the mouse location for the purpose of determining the area
510 <span class='line'
>503</span> * being pointed at: the selection, the borders, or if the mouse is outside
511 <span class='line'
>504</span> * the selection.
512 <span class='line'
>505</span> * @private
513 <span class='line'
>506</span> */
</span><span class=
"WHIT">
514 <span class='line'
>507</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">timerFn
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
515 <span class='line'
>508</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">needsRedraw
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
516 <span class='line'
>509</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
517 <span class='line'
>510</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
518 <span class='line'
>511</span>
519 <span class='line'
>512</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">switch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
520 <span class='line'
>513</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_PENDING
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
521 <span class='line'
>514</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// selection dropped, switch to draw selection
</span><span class=
"WHIT">
522 <span class='line'
>515</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_DRAWING
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
523 <span class='line'
>516</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.display
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
524 <span class='line'
>517</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionDraw'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
525 <span class='line'
>518</span>
526 <span class='line'
>519</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_DRAWING
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
527 <span class='line'
>520</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionDraw
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
528 <span class='line'
>521</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
529 <span class='line'
>522</span>
530 <span class='line'
>523</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
531 <span class='line'
>524</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseAreaUpdate
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
532 <span class='line'
>525</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
533 <span class='line'
>526</span>
534 <span class='line'
>527</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_DRAGGING
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
535 <span class='line'
>528</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionDrag
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
536 <span class='line'
>529</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
537 <span class='line'
>530</span>
538 <span class='line'
>531</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_RESIZING
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
539 <span class='line'
>532</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionResize
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
540 <span class='line'
>533</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
541 <span class='line'
>534</span>
542 <span class='line'
>535</span> </span><span class=
"WHIT"> </span><span class=
"NAME">needsRedraw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
543 <span class='line'
>536</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
544 <span class='line'
>537</span>
545 <span class='line'
>538</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
546 <span class='line'
>539</span> * The
<code
>mouseup
</code
> event handler. This method ends any selection
547 <span class='line'
>540</span> * operation.
548 <span class='line'
>541</span> *
549 <span class='line'
>542</span> *
<p
>This method dispatches the {@link pwlib.appEvent.selectionChange}
550 <span class='line'
>543</span> * application event when the selection state is changed or when the selection
551 <span class='line'
>544</span> * size/location is updated.
552 <span class='line'
>545</span> *
553 <span class='line'
>546</span> * @param {Event} ev The DOM Event object.
554 <span class='line'
>547</span> */
</span><span class=
"WHIT">
555 <span class='line'
>548</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.mouseup
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
556 <span class='line'
>549</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Allow click+mousemove+click, not only mousedown+move+up
</span><span class=
"WHIT">
557 <span class='line'
>550</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_PENDING
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
558 <span class='line'
>551</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
559 <span class='line'
>552</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
560 <span class='line'
>553</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
561 <span class='line'
>554</span>
562 <span class='line'
>555</span> </span><span class=
"WHIT"> </span><span class=
"NAME">needsRedraw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
563 <span class='line'
>556</span>
564 <span class='line'
>557</span> </span><span class=
"WHIT"> </span><span class=
"NAME">shiftKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.shiftKey
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
565 <span class='line'
>558</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ctrlKey
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
566 <span class='line'
>559</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config.transform
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
567 <span class='line'
>560</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
568 <span class='line'
>561</span>
569 <span class='line'
>562</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_PENDING
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
570 <span class='line'
>563</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Selection dropped? If yes, switch to the no selection state.
</span><span class=
"WHIT">
571 <span class='line'
>564</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
572 <span class='line'
>565</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
573 <span class='line'
>566</span>
574 <span class='line'
>567</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
575 <span class='line'
>568</span>
576 <span class='line'
>569</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">lastSel
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
577 <span class='line'
>570</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
578 <span class='line'
>571</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
579 <span class='line'
>572</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionActive'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
580 <span class='line'
>573</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
581 <span class='line'
>574</span>
582 <span class='line'
>575</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
583 <span class='line'
>576</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
584 <span class='line'
>577</span>
585 <span class='line'
>578</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">lastSel.x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
586 <span class='line'
>579</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">lastSel.y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
587 <span class='line'
>580</span>
588 <span class='line'
>581</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"STRN">'width'
</span><span class=
"WHIT"> </span><span class=
"KEYW">in
</span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
589 <span class='line'
>582</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">lastSel.width
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
590 <span class='line'
>583</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">lastSel.height
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
591 <span class='line'
>584</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
592 <span class='line'
>585</span>
593 <span class='line'
>586</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
594 <span class='line'
>587</span>
595 <span class='line'
>588</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
596 <span class='line'
>589</span> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
597 <span class='line'
>590</span>
598 <span class='line'
>591</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionAvailable'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
599 <span class='line'
>592</span>
600 <span class='line'
>593</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
601 <span class='line'
>594</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
602 <span class='line'
>595</span>
603 <span class='line'
>596</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
604 <span class='line'
>597</span> * The
<code
>mousedown
</code
> event handler for the selection marquee element.
605 <span class='line'
>598</span> *
606 <span class='line'
>599</span> * @private
607 <span class='line'
>600</span> * @param {Event} ev The DOM Event object.
608 <span class='line'
>601</span> */
</span><span class=
"WHIT">
609 <span class='line'
>602</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMousedown
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
610 <span class='line'
>603</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.buttonDown
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
611 <span class='line'
>604</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
612 <span class='line'
>605</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
613 <span class='line'
>606</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.buttonDown
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
614 <span class='line'
>607</span>
615 <span class='line'
>608</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ev.preventDefault
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
616 <span class='line'
>609</span>
617 <span class='line'
>610</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.mousedown
</span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
618 <span class='line'
>611</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
619 <span class='line'
>612</span>
620 <span class='line'
>613</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
621 <span class='line'
>614</span> * The
<code
>mousemove
</code
> event handler for the selection marquee element.
622 <span class='line'
>615</span> *
623 <span class='line'
>616</span> * @private
624 <span class='line'
>617</span> * @param {Event} ev The DOM Event object.
625 <span class='line'
>618</span> */
</span><span class=
"WHIT">
626 <span class='line'
>619</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMousemove
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
627 <span class='line'
>620</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"STRN">'layerX'
</span><span class=
"WHIT"> </span><span class=
"KEYW">in
</span><span class=
"WHIT"> </span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
628 <span class='line'
>621</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"PUNC">(
</span><span class=
"NAME">this.offsetLeft
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.layerX
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
629 <span class='line'
>622</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"PUNC">(
</span><span class=
"NAME">this.offsetTop
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.layerY
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
630 <span class='line'
>623</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"STRN">'offsetX'
</span><span class=
"WHIT"> </span><span class=
"KEYW">in
</span><span class=
"WHIT"> </span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
631 <span class='line'
>624</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"PUNC">(
</span><span class=
"NAME">this.offsetLeft
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.offsetX
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
632 <span class='line'
>625</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"PUNC">(
</span><span class=
"NAME">this.offsetTop
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.offsetY
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
633 <span class='line'
>626</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
634 <span class='line'
>627</span>
635 <span class='line'
>628</span> </span><span class=
"WHIT"> </span><span class=
"NAME">shiftKey
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.shiftKey
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
636 <span class='line'
>629</span> </span><span class=
"WHIT"> </span><span class=
"NAME">needsRedraw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
637 <span class='line'
>630</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
638 <span class='line'
>631</span>
639 <span class='line'
>632</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
640 <span class='line'
>633</span> * The
<code
>mouseup
</code
> event handler for the selection marquee element.
641 <span class='line'
>634</span> *
642 <span class='line'
>635</span> * @private
643 <span class='line'
>636</span> * @param {Event} ev The DOM Event object.
644 <span class='line'
>637</span> */
</span><span class=
"WHIT">
645 <span class='line'
>638</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeMouseup
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
646 <span class='line'
>639</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">mouse.buttonDown
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
647 <span class='line'
>640</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
648 <span class='line'
>641</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
649 <span class='line'
>642</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.buttonDown
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
650 <span class='line'
>643</span>
651 <span class='line'
>644</span> </span><span class=
"WHIT"> </span><span class=
"NAME">ev.preventDefault
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
652 <span class='line'
>645</span>
653 <span class='line'
>646</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.mouseup
</span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
654 <span class='line'
>647</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
655 <span class='line'
>648</span>
656 <span class='line'
>649</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
657 <span class='line'
>650</span> * Hide the selection marquee element.
658 <span class='line'
>651</span> * @private
659 <span class='line'
>652</span> */
</span><span class=
"WHIT">
660 <span class='line'
>653</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
661 <span class='line'
>654</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.display
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'none'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
662 <span class='line'
>655</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'-'
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">borderDouble
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NUMB">50</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
663 <span class='line'
>656</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'-'
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">borderDouble
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NUMB">50</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
664 <span class='line'
>657</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'
1px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
665 <span class='line'
>658</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'
1px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
666 <span class='line'
>659</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
667 <span class='line'
>660</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
668 <span class='line'
>661</span>
669 <span class='line'
>662</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
670 <span class='line'
>663</span> * Perform the selection rectangle drawing operation.
671 <span class='line'
>664</span> *
672 <span class='line'
>665</span> * @private
673 <span class='line'
>666</span> */
</span><span class=
"WHIT">
674 <span class='line'
>667</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">selectionDraw
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
675 <span class='line'
>668</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathMin
</span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"PUNC">)
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
676 <span class='line'
>669</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathMin
</span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"PUNC">)
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
677 <span class='line'
>670</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathAbs
</span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"PUNC">)
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
678 <span class='line'
>671</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathAbs
</span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
679 <span class='line'
>672</span>
680 <span class='line'
>673</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Constrain the shape to a square.
</span><span class=
"WHIT">
681 <span class='line'
>674</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">shiftKey
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
682 <span class='line'
>675</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
683 <span class='line'
>676</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
684 <span class='line'
>677</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">-
</span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
685 <span class='line'
>678</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
686 <span class='line'
>679</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
687 <span class='line'
>680</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
688 <span class='line'
>681</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
689 <span class='line'
>682</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">-
</span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
690 <span class='line'
>683</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
691 <span class='line'
>684</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
692 <span class='line'
>685</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
693 <span class='line'
>686</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
694 <span class='line'
>687</span>
695 <span class='line'
>688</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">mw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
696 <span class='line'
>689</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mh
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
697 <span class='line'
>690</span>
698 <span class='line'
>691</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mw
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">1</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"NAME">mh
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">1</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
699 <span class='line'
>692</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
700 <span class='line'
>693</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
701 <span class='line'
>694</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
702 <span class='line'
>695</span>
703 <span class='line'
>696</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
704 <span class='line'
>697</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
705 <span class='line'
>698</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mw
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
706 <span class='line'
>699</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mh
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
707 <span class='line'
>700</span>
708 <span class='line'
>701</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"STRN">'x'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'y'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'width'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'height'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
709 <span class='line'
>702</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
710 <span class='line'
>703</span>
711 <span class='line'
>704</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
712 <span class='line'
>705</span> * Perform the selection drag operation.
713 <span class='line'
>706</span> *
714 <span class='line'
>707</span> * @private
715 <span class='line'
>708</span> *
716 <span class='line'
>709</span> * @returns {false|Array} False is returned if the selection is too small,
717 <span class='line'
>710</span> * otherwise an array of two elements is returned. The array holds the
718 <span class='line'
>711</span> * selection coordinates, x and y.
719 <span class='line'
>712</span> */
</span><span class=
"WHIT">
720 <span class='line'
>713</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">selectionDrag
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
721 <span class='line'
>714</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Snapping on the X/Y axis
</span><span class=
"WHIT">
722 <span class='line'
>715</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">shiftKey
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
723 <span class='line'
>716</span> </span><span class=
"WHIT"> </span><span class=
"NAME">snapXY
</span><span class=
"PUNC">(
</span><span class=
"NAME">x0
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
724 <span class='line'
>717</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
725 <span class='line'
>718</span>
726 <span class='line'
>719</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
727 <span class='line'
>720</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
728 <span class='line'
>721</span>
729 <span class='line'
>722</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Dragging the ImageData
</span><span class=
"WHIT">
730 <span class='line'
>723</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
731 <span class='line'
>724</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
732 <span class='line'
>725</span>
733 <span class='line'
>726</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">config.transparent
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
734 <span class='line'
>727</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
735 <span class='line'
>728</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
736 <span class='line'
>729</span>
737 <span class='line'
>730</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Parameters:
</span><span class=
"WHIT">
738 <span class='line'
>731</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// source image, dest x, dest y, dest width, dest height
</span><span class=
"WHIT">
739 <span class='line'
>732</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
740 <span class='line'
>733</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
741 <span class='line'
>734</span>
742 <span class='line'
>735</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
743 <span class='line'
>736</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
744 <span class='line'
>737</span>
745 <span class='line'
>738</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"STRN">'x'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'y'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
746 <span class='line'
>739</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
747 <span class='line'
>740</span>
748 <span class='line'
>741</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
749 <span class='line'
>742</span> * Perform the selection resize operation.
750 <span class='line'
>743</span> *
751 <span class='line'
>744</span> * @private
752 <span class='line'
>745</span> *
753 <span class='line'
>746</span> * @returns {false|Array} False is returned if the selection is too small,
754 <span class='line'
>747</span> * otherwise an array of four elements is returned. The array holds the
755 <span class='line'
>748</span> * selection information: x, y, width and height.
756 <span class='line'
>749</span> */
</span><span class=
"WHIT">
757 <span class='line'
>750</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">selectionResize
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
758 <span class='line'
>751</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">x0
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
759 <span class='line'
>752</span> </span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">y0
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
760 <span class='line'
>753</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
761 <span class='line'
>754</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
762 <span class='line'
>755</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
763 <span class='line'
>756</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
764 <span class='line'
>757</span>
765 <span class='line'
>758</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">switch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouseResize
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
766 <span class='line'
>759</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'nw'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
767 <span class='line'
>760</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
768 <span class='line'
>761</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
769 <span class='line'
>762</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
770 <span class='line'
>763</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
771 <span class='line'
>764</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
772 <span class='line'
>765</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'n'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
773 <span class='line'
>766</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
774 <span class='line'
>767</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
775 <span class='line'
>768</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
776 <span class='line'
>769</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'ne'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
777 <span class='line'
>770</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
778 <span class='line'
>771</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
779 <span class='line'
>772</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
780 <span class='line'
>773</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
781 <span class='line'
>774</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'e'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
782 <span class='line'
>775</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
783 <span class='line'
>776</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
784 <span class='line'
>777</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'se'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
785 <span class='line'
>778</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
786 <span class='line'
>779</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
787 <span class='line'
>780</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
788 <span class='line'
>781</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'s'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
789 <span class='line'
>782</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
790 <span class='line'
>783</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
791 <span class='line'
>784</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'sw'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
792 <span class='line'
>785</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
793 <span class='line'
>786</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
794 <span class='line'
>787</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffy
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
795 <span class='line'
>788</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
796 <span class='line'
>789</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'w'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
797 <span class='line'
>790</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
798 <span class='line'
>791</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">diffx
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
799 <span class='line'
>792</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
800 <span class='line'
>793</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">default
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
801 <span class='line'
>794</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
802 <span class='line'
>795</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
803 <span class='line'
>796</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
804 <span class='line'
>797</span>
805 <span class='line'
>798</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
806 <span class='line'
>799</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
807 <span class='line'
>800</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
808 <span class='line'
>801</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
809 <span class='line'
>802</span>
810 <span class='line'
>803</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Constrain the rectangle to have the same aspect ratio as the initial
</span><span class=
"WHIT">
811 <span class='line'
>804</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// rectangle.
</span><span class=
"WHIT">
812 <span class='line'
>805</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">shiftKey
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
813 <span class='line'
>806</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">p
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
814 <span class='line'
>807</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w2
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
815 <span class='line'
>808</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h2
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
816 <span class='line'
>809</span>
817 <span class='line'
>810</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">switch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouseResize.charAt
</span><span class=
"PUNC">(
</span><span class=
"NUMB">0</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
818 <span class='line'
>811</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'n'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
819 <span class='line'
>812</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'s'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
820 <span class='line'
>813</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w2
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"NAME">h
</span><span class=
"PUNC">*
</span><span class=
"NAME">p
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
821 <span class='line'
>814</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
822 <span class='line'
>815</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">default
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
823 <span class='line'
>816</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h2
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"NAME">w
</span><span class=
"PUNC">/
</span><span class=
"NAME">p
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
824 <span class='line'
>817</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
825 <span class='line'
>818</span>
826 <span class='line'
>819</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">switch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouseResize
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
827 <span class='line'
>820</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'nw'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
828 <span class='line'
>821</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"STRN">'sw'
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
829 <span class='line'
>822</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w2
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
830 <span class='line'
>823</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h2
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
831 <span class='line'
>824</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
832 <span class='line'
>825</span>
833 <span class='line'
>826</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w2
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
834 <span class='line'
>827</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h2
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
835 <span class='line'
>828</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
836 <span class='line'
>829</span>
837 <span class='line'
>830</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
838 <span class='line'
>831</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
839 <span class='line'
>832</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"NUMB">1</span><span class=
"PUNC">;
</span><span class=
"WHIT">
840 <span class='line'
>833</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
841 <span class='line'
>834</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
842 <span class='line'
>835</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
843 <span class='line'
>836</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"NUMB">1</span><span class=
"PUNC">;
</span><span class=
"WHIT">
844 <span class='line'
>837</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
845 <span class='line'
>838</span>
846 <span class='line'
>839</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">mw
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
847 <span class='line'
>840</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mh
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
848 <span class='line'
>841</span>
849 <span class='line'
>842</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mw
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">1</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"NAME">mh
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">1</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
850 <span class='line'
>843</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">null
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
851 <span class='line'
>844</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
852 <span class='line'
>845</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
853 <span class='line'
>846</span>
854 <span class='line'
>847</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Resizing the ImageData
</span><span class=
"WHIT">
855 <span class='line'
>848</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
856 <span class='line'
>849</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
857 <span class='line'
>850</span>
858 <span class='line'
>851</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">config.transparent
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
859 <span class='line'
>852</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
860 <span class='line'
>853</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
861 <span class='line'
>854</span>
862 <span class='line'
>855</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Parameters:
</span><span class=
"WHIT">
863 <span class='line'
>856</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// source image, dest x, dest y, dest width, dest height
</span><span class=
"WHIT">
864 <span class='line'
>857</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
865 <span class='line'
>858</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
866 <span class='line'
>859</span>
867 <span class='line'
>860</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
868 <span class='line'
>861</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
869 <span class='line'
>862</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mw
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
870 <span class='line'
>863</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">mh
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
871 <span class='line'
>864</span>
872 <span class='line'
>865</span> </span><span class=
"WHIT"> </span><span class=
"NAME">lastSel
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"STRN">'x'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'y'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'width'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'height'
</span><span class=
"PUNC">:
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
873 <span class='line'
>866</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
874 <span class='line'
>867</span>
875 <span class='line'
>868</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
876 <span class='line'
>869</span> * Determine the are where the mouse is located: if it is inside or outside of
877 <span class='line'
>870</span> * the selection rectangle, or on the selection border.
878 <span class='line'
>871</span> * @private
879 <span class='line'
>872</span> */
</span><span class=
"WHIT">
880 <span class='line'
>873</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">mouseAreaUpdate
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
881 <span class='line'
>874</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">border
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">config.borderWidth
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
882 <span class='line'
>875</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
883 <span class='line'
>876</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
884 <span class='line'
>877</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
885 <span class='line'
>878</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x1_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">x1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">border
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
886 <span class='line'
>879</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y1_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">y1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">border
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
887 <span class='line'
>880</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
888 <span class='line'
>881</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
889 <span class='line'
>882</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x0_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">border
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
890 <span class='line'
>883</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y0_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">border
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
891 <span class='line'
>884</span>
892 <span class='line'
>885</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseArea
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'out'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
893 <span class='line'
>886</span>
894 <span class='line'
>887</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Inside the rectangle
</span><span class=
"WHIT">
895 <span class='line'
>888</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NAME">x1_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NAME">y1_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
896 <span class='line'
>889</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">x0_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">y0_in
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
897 <span class='line'
>890</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'move'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
898 <span class='line'
>891</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseArea
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'in'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
899 <span class='line'
>892</span>
900 <span class='line'
>893</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
901 <span class='line'
>894</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// On one of the borders (north/south)
</span><span class=
"WHIT">
902 <span class='line'
>895</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">x0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">x1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
903 <span class='line'
>896</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">y0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">y0_in
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
904 <span class='line'
>897</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'n'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
905 <span class='line'
>898</span>
906 <span class='line'
>899</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">x0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">x1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
907 <span class='line'
>900</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">y1_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">y1_out
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
908 <span class='line'
>901</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'s'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
909 <span class='line'
>902</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
910 <span class='line'
>903</span>
911 <span class='line'
>904</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// West/east
</span><span class=
"WHIT">
912 <span class='line'
>905</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">y0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">y1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
913 <span class='line'
>906</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">x0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">x0_in
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
914 <span class='line'
>907</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'w'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
915 <span class='line'
>908</span>
916 <span class='line'
>909</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">y0_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.y
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">y1_out
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT">
917 <span class='line'
>910</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">>=
</span><span class=
"WHIT"> </span><span class=
"NAME">x1_in
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">mouse.x
</span><span class=
"WHIT"> </span><span class=
"PUNC"><=
</span><span class=
"WHIT"> </span><span class=
"NAME">x1_out
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
918 <span class='line'
>911</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'e'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
919 <span class='line'
>912</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
920 <span class='line'
>913</span>
921 <span class='line'
>914</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
922 <span class='line'
>915</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseResize
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
923 <span class='line'
>916</span> </span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'-resize'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
924 <span class='line'
>917</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseArea
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'border'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
925 <span class='line'
>918</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
926 <span class='line'
>919</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
927 <span class='line'
>920</span>
928 <span class='line'
>921</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Due to bug
126457 Opera will not automatically update the cursor,
</span><span class=
"WHIT">
929 <span class='line'
>922</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// therefore they will not see any visual feedback.
</span><span class=
"WHIT">
930 <span class='line'
>923</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.cursor
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
931 <span class='line'
>924</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.cursor
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">cursor
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
932 <span class='line'
>925</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
933 <span class='line'
>926</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
934 <span class='line'
>927</span>
935 <span class='line'
>928</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
936 <span class='line'
>929</span> * The
<code
>canvasSizeChange
</code
> application event handler. This method
937 <span class='line'
>930</span> * makes sure the selection size stays in sync.
938 <span class='line'
>931</span> *
939 <span class='line'
>932</span> * @private
940 <span class='line'
>933</span> * @param {pwlib.appEvent.canvasSizeChange} ev The application event object.
941 <span class='line'
>934</span> */
</span><span class=
"WHIT">
942 <span class='line'
>935</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">ev_canvasSizeChange
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
943 <span class='line'
>936</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
944 <span class='line'
>937</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
945 <span class='line'
>938</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
946 <span class='line'
>939</span>
947 <span class='line'
>940</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.scale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
948 <span class='line'
>941</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.scale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
949 <span class='line'
>942</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.scale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
950 <span class='line'
>943</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.scale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
951 <span class='line'
>944</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
952 <span class='line'
>945</span>
953 <span class='line'
>946</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
954 <span class='line'
>947</span> * The
<code
>configChange
</code
> application event handler. This method makes
955 <span class='line'
>948</span> * sure that changes to the selection transparency configuration option are
956 <span class='line'
>949</span> * applied.
957 <span class='line'
>950</span> *
958 <span class='line'
>951</span> * @private
959 <span class='line'
>952</span> * @param {pwlib.appEvent.configChange} ev The application event object.
960 <span class='line'
>953</span> */
</span><span class=
"WHIT">
961 <span class='line'
>954</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">ev_configChange
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
962 <span class='line'
>955</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Continue only if the selection rectangle is available.
</span><span class=
"WHIT">
963 <span class='line'
>956</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev.group
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"STRN">'selection'
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"NAME">ev.config
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"STRN">'transparent'
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT">
964 <span class='line'
>957</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
965 <span class='line'
>958</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
966 <span class='line'
>959</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
967 <span class='line'
>960</span>
968 <span class='line'
>961</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
969 <span class='line'
>962</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionBufferInit
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
970 <span class='line'
>963</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
971 <span class='line'
>964</span>
972 <span class='line'
>965</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
973 <span class='line'
>966</span>
974 <span class='line'
>967</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">ev.value
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
975 <span class='line'
>968</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
976 <span class='line'
>969</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
977 <span class='line'
>970</span>
978 <span class='line'
>971</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Draw the updated selection
</span><span class=
"WHIT">
979 <span class='line'
>972</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
980 <span class='line'
>973</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
981 <span class='line'
>974</span>
982 <span class='line'
>975</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
983 <span class='line'
>976</span> * Initialize the selection buffer, when the user starts dragging or resizing
984 <span class='line'
>977</span> * the selected pixels.
985 <span class='line'
>978</span> *
986 <span class='line'
>979</span> * @private
987 <span class='line'
>980</span> */
</span><span class=
"WHIT">
988 <span class='line'
>981</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">selectionBufferInit
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
989 <span class='line'
>982</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
990 <span class='line'
>983</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
991 <span class='line'
>984</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
992 <span class='line'
>985</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
993 <span class='line'
>986</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
994 <span class='line'
>987</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
995 <span class='line'
>988</span> </span><span class=
"WHIT"> </span><span class=
"NAME">dx
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">dy
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
996 <span class='line'
>989</span>
997 <span class='line'
>990</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.widthOriginal
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
998 <span class='line'
>991</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.heightOriginal
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
999 <span class='line'
>992</span>
1000 <span class='line'
>993</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1001 <span class='line'
>994</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1002 <span class='line'
>995</span> </span><span class=
"WHIT"> </span><span class=
"NAME">dx
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1003 <span class='line'
>996</span> </span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1004 <span class='line'
>997</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1005 <span class='line'
>998</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC"><</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1006 <span class='line'
>999</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1007 <span class='line'
>1000</span> </span><span class=
"WHIT"> </span><span class=
"NAME">dy
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1008 <span class='line'
>1001</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1009 <span class='line'
>1002</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1010 <span class='line'
>1003</span>
1011 <span class='line'
>1004</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1012 <span class='line'
>1005</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1013 <span class='line'
>1006</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1014 <span class='line'
>1007</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1015 <span class='line'
>1008</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1016 <span class='line'
>1009</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1017 <span class='line'
>1010</span>
1018 <span class='line'
>1011</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">config.transparent
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1019 <span class='line'
>1012</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1020 <span class='line'
>1013</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1021 <span class='line'
>1014</span>
1022 <span class='line'
>1015</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Parameters:
</span><span class=
"WHIT">
1023 <span class='line'
>1016</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// source image, src x, src y, src w, src h, dest x, dest y, dest w, dest h
</span><span class=
"WHIT">
1024 <span class='line'
>1017</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">layerCanvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1025 <span class='line'
>1018</span>
1026 <span class='line'
>1019</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.widthOriginal
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1027 <span class='line'
>1020</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.heightOriginal
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1028 <span class='line'
>1021</span>
1029 <span class='line'
>1022</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Also put the selected pixels into the selection buffer.
</span><span class=
"WHIT">
1030 <span class='line'
>1023</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.context.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">layerCanvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">dx
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">dy
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1031 <span class='line'
>1024</span>
1032 <span class='line'
>1025</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Clear the selected pixels from the image
</span><span class=
"WHIT">
1033 <span class='line'
>1026</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1034 <span class='line'
>1027</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1035 <span class='line'
>1028</span>
1036 <span class='line'
>1029</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.historyAdd
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1037 <span class='line'
>1030</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1038 <span class='line'
>1031</span>
1039 <span class='line'
>1032</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1040 <span class='line'
>1033</span> * Perform the selection buffer merge onto the current image layer.
1041 <span class='line'
>1034</span> * @private
1042 <span class='line'
>1035</span> */
</span><span class=
"WHIT">
1043 <span class='line'
>1036</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"NAME">selectionMergeStrict
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1044 <span class='line'
>1037</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1045 <span class='line'
>1038</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1046 <span class='line'
>1039</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1047 <span class='line'
>1040</span>
1048 <span class='line'
>1041</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">config.transparent
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1049 <span class='line'
>1042</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1050 <span class='line'
>1043</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1051 <span class='line'
>1044</span>
1052 <span class='line'
>1045</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1053 <span class='line'
>1046</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1054 <span class='line'
>1047</span>
1055 <span class='line'
>1048</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1056 <span class='line'
>1049</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1057 <span class='line'
>1050</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1058 <span class='line'
>1051</span>
1059 <span class='line'
>1052</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.historyAdd
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1060 <span class='line'
>1053</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1061 <span class='line'
>1054</span>
1062 <span class='line'
>1055</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1063 <span class='line'
>1056</span> * Merge the selection buffer onto the current image layer.
1064 <span class='line'
>1057</span> *
1065 <span class='line'
>1058</span> *
<p
>This method dispatches the {@link pwlib.appEvent.selectionChange}
1066 <span class='line'
>1059</span> * application event.
1067 <span class='line'
>1060</span> *
1068 <span class='line'
>1061</span> * @returns {Boolean} True if the operation was successful, or false if not.
1069 <span class='line'
>1062</span> */
</span><span class=
"WHIT">
1070 <span class='line'
>1063</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionMerge
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1071 <span class='line'
>1064</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1072 <span class='line'
>1065</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1073 <span class='line'
>1066</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1074 <span class='line'
>1067</span>
1075 <span class='line'
>1068</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionMergeStrict
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1076 <span class='line'
>1069</span>
1077 <span class='line'
>1070</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1078 <span class='line'
>1071</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1079 <span class='line'
>1072</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionActive'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1080 <span class='line'
>1073</span>
1081 <span class='line'
>1074</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1082 <span class='line'
>1075</span>
1083 <span class='line'
>1076</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1084 <span class='line'
>1077</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1085 <span class='line'
>1078</span>
1086 <span class='line'
>1079</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1087 <span class='line'
>1080</span> * Select all the entire image.
1088 <span class='line'
>1081</span> *
1089 <span class='line'
>1082</span> *
<p
>This method dispatches the {@link pwlib.appEvent.selectionChange}
1090 <span class='line'
>1083</span> * application event.
1091 <span class='line'
>1084</span> *
1092 <span class='line'
>1085</span> * @returns {Boolean} True if the operation was successful, or false if not.
1093 <span class='line'
>1086</span> */
</span><span class=
"WHIT">
1094 <span class='line'
>1087</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectAll
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1095 <span class='line'
>1088</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT">
1096 <span class='line'
>1089</span> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1097 <span class='line'
>1090</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1098 <span class='line'
>1091</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1099 <span class='line'
>1092</span>
1100 <span class='line'
>1093</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1101 <span class='line'
>1094</span> </span><span class=
"WHIT"> </span><span class=
"NAME">selectionMergeStrict
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1102 <span class='line'
>1095</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1103 <span class='line'
>1096</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1104 <span class='line'
>1097</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.display
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1105 <span class='line'
>1098</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1106 <span class='line'
>1099</span>
1107 <span class='line'
>1100</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1108 <span class='line'
>1101</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1109 <span class='line'
>1102</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1110 <span class='line'
>1103</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1111 <span class='line'
>1104</span>
1112 <span class='line'
>1105</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'
0px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1113 <span class='line'
>1106</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">'
0px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1114 <span class='line'
>1107</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.width
</span><span class=
"PUNC">*
</span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1115 <span class='line'
>1108</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.height
</span><span class=
"PUNC">*
</span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1116 <span class='line'
>1109</span>
1117 <span class='line'
>1110</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseAreaUpdate
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1118 <span class='line'
>1111</span>
1119 <span class='line'
>1112</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1120 <span class='line'
>1113</span> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1121 <span class='line'
>1114</span>
1122 <span class='line'
>1115</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1123 <span class='line'
>1116</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1124 <span class='line'
>1117</span>
1125 <span class='line'
>1118</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1126 <span class='line'
>1119</span> * Cut the selected pixels. The associated ImageData is stored in {@link
1127 <span class='line'
>1120</span> * PaintWeb#clipboard}.
1128 <span class='line'
>1121</span> *
1129 <span class='line'
>1122</span> *
<p
>This method dispatches two application events: {@link
1130 <span class='line'
>1123</span> * pwlib.appEvent.clipboardUpdate} and {@link pwlib.appEvent.selectionChange}.
1131 <span class='line'
>1124</span> *
1132 <span class='line'
>1125</span> * @returns {Boolean} True if the operation was successful, or false if not.
1133 <span class='line'
>1126</span> */
</span><span class=
"WHIT">
1134 <span class='line'
>1127</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionCut
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1135 <span class='line'
>1128</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">_self.selectionCopy
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1136 <span class='line'
>1129</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1137 <span class='line'
>1130</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1138 <span class='line'
>1131</span>
1139 <span class='line'
>1132</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1140 <span class='line'
>1133</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1141 <span class='line'
>1134</span>
1142 <span class='line'
>1135</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1143 <span class='line'
>1136</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1144 <span class='line'
>1137</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1145 <span class='line'
>1138</span>
1146 <span class='line'
>1139</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1147 <span class='line'
>1140</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1148 <span class='line'
>1141</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.historyAdd
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1149 <span class='line'
>1142</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1150 <span class='line'
>1143</span>
1151 <span class='line'
>1144</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1152 <span class='line'
>1145</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1153 <span class='line'
>1146</span>
1154 <span class='line'
>1147</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1155 <span class='line'
>1148</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionActive'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1156 <span class='line'
>1149</span>
1157 <span class='line'
>1150</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1158 <span class='line'
>1151</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1159 <span class='line'
>1152</span>
1160 <span class='line'
>1153</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1161 <span class='line'
>1154</span> * Copy the selected pixels. The associated ImageData is stored in {@link
1162 <span class='line'
>1155</span> * PaintWeb#clipboard}.
1163 <span class='line'
>1156</span> *
1164 <span class='line'
>1157</span> *
<p
>This method dispatches the {@link pwlib.appEvent.clipboardUpdate}
1165 <span class='line'
>1158</span> * application event.
1166 <span class='line'
>1159</span> *
1167 <span class='line'
>1160</span> * @returns {Boolean} True if the operation was successful, or false if not.
1168 <span class='line'
>1161</span> */
</span><span class=
"WHIT">
1169 <span class='line'
>1162</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionCopy
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1170 <span class='line'
>1163</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1171 <span class='line'
>1164</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1172 <span class='line'
>1165</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1173 <span class='line'
>1166</span>
1174 <span class='line'
>1167</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">layerContext.getImageData
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">layerContext.putImageData
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1175 <span class='line'
>1168</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.errorClipboardUnsupported
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1176 <span class='line'
>1169</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1177 <span class='line'
>1170</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1178 <span class='line'
>1171</span>
1179 <span class='line'
>1172</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1180 <span class='line'
>1173</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1181 <span class='line'
>1174</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1182 <span class='line'
>1175</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1183 <span class='line'
>1176</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1184 <span class='line'
>1177</span>
1185 <span class='line'
>1178</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1186 <span class='line'
>1179</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1187 <span class='line'
>1180</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1188 <span class='line'
>1181</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1189 <span class='line'
>1182</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1190 <span class='line'
>1183</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1191 <span class='line'
>1184</span>
1192 <span class='line'
>1185</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">try
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1193 <span class='line'
>1186</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.clipboard
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.getImageData
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1194 <span class='line'
>1187</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">catch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">err
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1195 <span class='line'
>1188</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.failedSelectionCopy
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1196 <span class='line'
>1189</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1197 <span class='line'
>1190</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1198 <span class='line'
>1191</span>
1199 <span class='line'
>1192</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1200 <span class='line'
>1193</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">try
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1201 <span class='line'
>1194</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.clipboard
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.context.getImageData
</span><span class=
"PUNC">(
</span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.widthOriginal
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1202 <span class='line'
>1195</span> </span><span class=
"NAME">sel.heightOriginal
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1203 <span class='line'
>1196</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">catch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">err
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1204 <span class='line'
>1197</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.failedSelectionCopy
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1205 <span class='line'
>1198</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1206 <span class='line'
>1199</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1207 <span class='line'
>1200</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1208 <span class='line'
>1201</span>
1209 <span class='line'
>1202</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.clipboardUpdate
</span><span class=
"PUNC">(
</span><span class=
"NAME">app.clipboard
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1210 <span class='line'
>1203</span>
1211 <span class='line'
>1204</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1212 <span class='line'
>1205</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1213 <span class='line'
>1206</span>
1214 <span class='line'
>1207</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1215 <span class='line'
>1208</span> * Paste an image from the
"clipboard". The {@link PaintWeb#clipboard} object
1216 <span class='line'
>1209</span> * must be an ImageData. This method will generate a new selection which will
1217 <span class='line'
>1210</span> * hold the pasted image.
1218 <span class='line'
>1211</span> *
1219 <span class='line'
>1212</span> *
<p
>The {@link pwlib.appEvent.selectionChange} application event is
1220 <span class='line'
>1213</span> * dispatched.
1221 <span class='line'
>1214</span> *
1222 <span class='line'
>1215</span> *
<p
>If the {@link PaintWeb.config.selection.transform} value is false, then
1223 <span class='line'
>1216</span> * it becomes true. The {@link pwlib.appEvent.configChange} application is
1224 <span class='line'
>1217</span> * then dispatched.
1225 <span class='line'
>1218</span> *
1226 <span class='line'
>1219</span> * @returns {Boolean} True if the operation was successful, or false if not.
1227 <span class='line'
>1220</span> */
</span><span class=
"WHIT">
1228 <span class='line'
>1221</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.clipboardPaste
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1229 <span class='line'
>1222</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">app.clipboard
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"WHIT"> </span><span class=
"PUNC">&&
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT">
1230 <span class='line'
>1223</span> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1231 <span class='line'
>1224</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1232 <span class='line'
>1225</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1233 <span class='line'
>1226</span>
1234 <span class='line'
>1227</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">layerContext.getImageData
</span><span class=
"WHIT"> </span><span class=
"PUNC">||
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">layerContext.putImageData
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1235 <span class='line'
>1228</span> </span><span class=
"WHIT"> </span><span class=
"NAME">alert
</span><span class=
"PUNC">(
</span><span class=
"NAME">lang.errorClipboardUnsupported
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1236 <span class='line'
>1229</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1237 <span class='line'
>1230</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1238 <span class='line'
>1231</span>
1239 <span class='line'
>1232</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// The default position for the pasted image is the top left corner of the
</span><span class=
"WHIT">
1240 <span class='line'
>1233</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// visible area, taking into consideration the zoom level.
</span><span class=
"WHIT">
1241 <span class='line'
>1234</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"NAME">gui.elems.viewport.scrollLeft
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1242 <span class='line'
>1235</span> </span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">MathRound
</span><span class=
"PUNC">(
</span><span class=
"NAME">gui.elems.viewport.scrollTop
</span><span class=
"WHIT"> </span><span class=
"PUNC">/
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1243 <span class='line'
>1236</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.clipboard.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1244 <span class='line'
>1237</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">app.clipboard.height
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1245 <span class='line'
>1238</span>
1246 <span class='line'
>1239</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1247 <span class='line'
>1240</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1248 <span class='line'
>1241</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.context.putImageData
</span><span class=
"PUNC">(
</span><span class=
"NAME">app.clipboard
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1249 <span class='line'
>1242</span>
1250 <span class='line'
>1243</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">===
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1251 <span class='line'
>1244</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1252 <span class='line'
>1245</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1253 <span class='line'
>1246</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1254 <span class='line'
>1247</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1255 <span class='line'
>1248</span>
1256 <span class='line'
>1249</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">config.transparent
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1257 <span class='line'
>1250</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1258 <span class='line'
>1251</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1259 <span class='line'
>1252</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.drawImage
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.canvas
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1260 <span class='line'
>1253</span>
1261 <span class='line'
>1254</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.widthOriginal
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1262 <span class='line'
>1255</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.heightOriginal
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1263 <span class='line'
>1256</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1264 <span class='line'
>1257</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1265 <span class='line'
>1258</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1266 <span class='line'
>1259</span>
1267 <span class='line'
>1260</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.top
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">y
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1268 <span class='line'
>1261</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.left
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">x
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1269 <span class='line'
>1262</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1270 <span class='line'
>1263</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">*
</span><span class=
"WHIT"> </span><span class=
"NAME">image.canvasScale
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">borderDouble
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"STRN">'px'
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1271 <span class='line'
>1264</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeStyle.display
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"STRN">''
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1272 <span class='line'
>1265</span>
1273 <span class='line'
>1266</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1274 <span class='line'
>1267</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config.transform
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1275 <span class='line'
>1268</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.configChange
</span><span class=
"PUNC">(
</span><span class=
"KEYW">true
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'transform'
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1276 <span class='line'
>1269</span> </span><span class=
"STRN">'selection'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">config
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1277 <span class='line'
>1270</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1278 <span class='line'
>1271</span>
1279 <span class='line'
>1272</span> </span><span class=
"WHIT"> </span><span class=
"NAME">mouseAreaUpdate
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1280 <span class='line'
>1273</span>
1281 <span class='line'
>1274</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1282 <span class='line'
>1275</span> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1283 <span class='line'
>1276</span>
1284 <span class='line'
>1277</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionAvailable'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1285 <span class='line'
>1278</span>
1286 <span class='line'
>1279</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1287 <span class='line'
>1280</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1288 <span class='line'
>1281</span>
1289 <span class='line'
>1282</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1290 <span class='line'
>1283</span> * Perform selection delete.
1291 <span class='line'
>1284</span> *
1292 <span class='line'
>1285</span> *
<p
>This method changes the {@link PaintWeb.config.selection.transform}
1293 <span class='line'
>1286</span> * value to false if the current selection has pixels that are currently being
1294 <span class='line'
>1287</span> * manipulated. In such cases, the {@link pwlib.appEvent.configChange}
1295 <span class='line'
>1288</span> * application event is also dispatched.
1296 <span class='line'
>1289</span> *
1297 <span class='line'
>1290</span> * @returns {Boolean} True if the operation was successful, or false if not.
1298 <span class='line'
>1291</span> */
</span><span class=
"WHIT">
1299 <span class='line'
>1292</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionDelete
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1300 <span class='line'
>1293</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Delete the pixels from the image if they are not deleted already.
</span><span class=
"WHIT">
1301 <span class='line'
>1294</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1302 <span class='line'
>1295</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1303 <span class='line'
>1296</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1304 <span class='line'
>1297</span>
1305 <span class='line'
>1298</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">!
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1306 <span class='line'
>1299</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1307 <span class='line'
>1300</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.historyAdd
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1308 <span class='line'
>1301</span>
1309 <span class='line'
>1302</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1310 <span class='line'
>1303</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1311 <span class='line'
>1304</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1312 <span class='line'
>1305</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1313 <span class='line'
>1306</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1314 <span class='line'
>1307</span>
1315 <span class='line'
>1308</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1316 <span class='line'
>1309</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config.transform
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1317 <span class='line'
>1310</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.configChange
</span><span class=
"PUNC">(
</span><span class=
"KEYW">false
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'transform'
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1318 <span class='line'
>1311</span> </span><span class=
"STRN">'selection'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">config
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1319 <span class='line'
>1312</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1320 <span class='line'
>1313</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1321 <span class='line'
>1314</span>
1322 <span class='line'
>1315</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1323 <span class='line'
>1316</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1324 <span class='line'
>1317</span>
1325 <span class='line'
>1318</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1326 <span class='line'
>1319</span> * Drop the current selection.
1327 <span class='line'
>1320</span> *
1328 <span class='line'
>1321</span> *
<p
>This method dispatches the {@link pwlib.appEvent.selectionChange}
1329 <span class='line'
>1322</span> * application event.
1330 <span class='line'
>1323</span> *
1331 <span class='line'
>1324</span> * @returns {Boolean} True if the operation was successful, or false if not.
1332 <span class='line'
>1325</span> */
</span><span class=
"WHIT">
1333 <span class='line'
>1326</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionDrop
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1334 <span class='line'
>1327</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1335 <span class='line'
>1328</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1336 <span class='line'
>1329</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1337 <span class='line'
>1330</span>
1338 <span class='line'
>1331</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1339 <span class='line'
>1332</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.clearRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1340 <span class='line'
>1333</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1341 <span class='line'
>1334</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.canvas.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">5</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1342 <span class='line'
>1335</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.layerCleared
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1343 <span class='line'
>1336</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1344 <span class='line'
>1337</span>
1345 <span class='line'
>1338</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_NONE
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1346 <span class='line'
>1339</span>
1347 <span class='line'
>1340</span> </span><span class=
"WHIT"> </span><span class=
"NAME">marqueeHide
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1348 <span class='line'
>1341</span> </span><span class=
"WHIT"> </span><span class=
"NAME">gui.statusShow
</span><span class=
"PUNC">(
</span><span class=
"STRN">'selectionActive'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1349 <span class='line'
>1342</span>
1350 <span class='line'
>1343</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.selectionChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1351 <span class='line'
>1344</span>
1352 <span class='line'
>1345</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1353 <span class='line'
>1346</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1354 <span class='line'
>1347</span>
1355 <span class='line'
>1348</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1356 <span class='line'
>1349</span> * Fill the available selection with the current
1357 <span class='line'
>1350</span> *
<var
>bufferContext.fillStyle
</var
>.
1358 <span class='line'
>1351</span> *
1359 <span class='line'
>1352</span> * @returns {Boolean} True if the operation was successful, or false if not.
1360 <span class='line'
>1353</span> */
</span><span class=
"WHIT">
1361 <span class='line'
>1354</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionFill
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1362 <span class='line'
>1355</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1363 <span class='line'
>1356</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1364 <span class='line'
>1357</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1365 <span class='line'
>1358</span>
1366 <span class='line'
>1359</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sel.layerCleared
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1367 <span class='line'
>1360</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.context.fillStyle
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillStyle
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1368 <span class='line'
>1361</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sel.context.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.widthOriginal
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.heightOriginal
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1369 <span class='line'
>1362</span> </span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1370 <span class='line'
>1363</span>
1371 <span class='line'
>1364</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT"> </span><span class=
"KEYW">else
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1372 <span class='line'
>1365</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.fillStyle
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">bufferContext.fillStyle
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1373 <span class='line'
>1366</span> </span><span class=
"WHIT"> </span><span class=
"NAME">layerContext.fillRect
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1374 <span class='line'
>1367</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.historyAdd
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1375 <span class='line'
>1368</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1376 <span class='line'
>1369</span>
1377 <span class='line'
>1370</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1378 <span class='line'
>1371</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1379 <span class='line'
>1372</span>
1380 <span class='line'
>1373</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1381 <span class='line'
>1374</span> * Crop the image to selection width and height. The selected pixels become
1382 <span class='line'
>1375</span> * the image itself.
1383 <span class='line'
>1376</span> *
1384 <span class='line'
>1377</span> *
<p
>This method invokes the {@link this#selectionMerge} and {@link
1385 <span class='line'
>1378</span> * PaintWeb#imageCrop} methods.
1386 <span class='line'
>1379</span> *
1387 <span class='line'
>1380</span> * @returns {Boolean} True if the operation was successful, or false if not.
1388 <span class='line'
>1381</span> */
</span><span class=
"WHIT">
1389 <span class='line'
>1382</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.selectionCrop
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1390 <span class='line'
>1383</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">_self.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">!==
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.STATE_SELECTED
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1391 <span class='line'
>1384</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1392 <span class='line'
>1385</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1393 <span class='line'
>1386</span>
1394 <span class='line'
>1387</span> </span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionMerge
</span><span class=
"PUNC">(
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1395 <span class='line'
>1388</span>
1396 <span class='line'
>1389</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">var
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.width
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1397 <span class='line'
>1390</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.height
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1398 <span class='line'
>1391</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1399 <span class='line'
>1392</span> </span><span class=
"WHIT"> </span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">+
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1400 <span class='line'
>1393</span>
1401 <span class='line'
>1394</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1402 <span class='line'
>1395</span> </span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sumX
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">image.width
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1403 <span class='line'
>1396</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1404 <span class='line'
>1397</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">if
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">></span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1405 <span class='line'
>1398</span> </span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">sumY
</span><span class=
"WHIT"> </span><span class=
"PUNC">-
</span><span class=
"WHIT"> </span><span class=
"NAME">image.height
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1406 <span class='line'
>1399</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1407 <span class='line'
>1400</span>
1408 <span class='line'
>1401</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.imageCrop
</span><span class=
"PUNC">(
</span><span class=
"NAME">sel.x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">sel.y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">w
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">h
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1409 <span class='line'
>1402</span>
1410 <span class='line'
>1403</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1411 <span class='line'
>1404</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1412 <span class='line'
>1405</span>
1413 <span class='line'
>1406</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1414 <span class='line'
>1407</span> * The
<code
>keydown
</code
> event handler. This method calls selection-related
1415 <span class='line'
>1408</span> * commands associated to keyboard shortcuts.
1416 <span class='line'
>1409</span> *
1417 <span class='line'
>1410</span> * @param {Event} ev The DOM Event object.
1418 <span class='line'
>1411</span> *
1419 <span class='line'
>1412</span> * @returns {Boolean} True if the keyboard shortcut was recognized, or false
1420 <span class='line'
>1413</span> * if not.
1421 <span class='line'
>1414</span> *
1422 <span class='line'
>1415</span> * @see PaintWeb.config.selection.keys holds the keyboard shortcuts
1423 <span class='line'
>1416</span> * configuration.
1424 <span class='line'
>1417</span> */
</span><span class=
"WHIT">
1425 <span class='line'
>1418</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.keydown
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1426 <span class='line'
>1419</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">switch
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">ev.kid_
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1427 <span class='line'
>1420</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">config.keys.transformToggle
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
1428 <span class='line'
>1421</span> </span><span class=
"WHIT"> </span><span class=
"COMM">// Toggle the selection transformation mode.
</span><span class=
"WHIT">
1429 <span class='line'
>1422</span> </span><span class=
"WHIT"> </span><span class=
"NAME">config.transform
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1430 <span class='line'
>1423</span> </span><span class=
"WHIT"> </span><span class=
"NAME">app.events.dispatch
</span><span class=
"PUNC">(
</span><span class=
"KEYW">new
</span><span class=
"WHIT"> </span><span class=
"NAME">appEvent.configChange
</span><span class=
"PUNC">(
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">,
</span><span class=
"WHIT">
1431 <span class='line'
>1424</span> </span><span class=
"PUNC">!
</span><span class=
"NAME">config.transform
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'transform'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'selection'
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">config
</span><span class=
"PUNC">)
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1432 <span class='line'
>1425</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">break
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1433 <span class='line'
>1426</span>
1434 <span class='line'
>1427</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">config.keys.selectionCrop
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
1435 <span class='line'
>1428</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionCrop
</span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1436 <span class='line'
>1429</span>
1437 <span class='line'
>1430</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">config.keys.selectionDelete
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
1438 <span class='line'
>1431</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionDelete
</span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1439 <span class='line'
>1432</span>
1440 <span class='line'
>1433</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">config.keys.selectionDrop
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
1441 <span class='line'
>1434</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionDrop
</span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1442 <span class='line'
>1435</span>
1443 <span class='line'
>1436</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">case
</span><span class=
"WHIT"> </span><span class=
"NAME">config.keys.selectionFill
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
1444 <span class='line'
>1437</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"NAME">_self.selectionFill
</span><span class=
"PUNC">(
</span><span class=
"NAME">ev
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1445 <span class='line'
>1438</span>
1446 <span class='line'
>1439</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">default
</span><span class=
"PUNC">:
</span><span class=
"WHIT">
1447 <span class='line'
>1440</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">false
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1448 <span class='line'
>1441</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"WHIT">
1449 <span class='line'
>1442</span>
1450 <span class='line'
>1443</span> </span><span class=
"WHIT"> </span><span class=
"KEYW">return
</span><span class=
"WHIT"> </span><span class=
"KEYW">true
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1451 <span class='line'
>1444</span> </span><span class=
"WHIT"> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1452 <span class='line'
>1445</span> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1453 <span class='line'
>1446</span>
1454 <span class='line'
>1447</span> </span><span class=
"COMM">/**
1455 <span class='line'
>1448</span> * @class Selection change event. This event is not cancelable.
1456 <span class='line'
>1449</span> *
1457 <span class='line'
>1450</span> * @augments pwlib.appEvent
1458 <span class='line'
>1451</span> *
1459 <span class='line'
>1452</span> * @param {Number} state Tells the new state of the selection.
1460 <span class='line'
>1453</span> * @param {Number} [x] Selection start position on the x-axis of the image.
1461 <span class='line'
>1454</span> * @param {Number} [y] Selection start position on the y-axis of the image.
1462 <span class='line'
>1455</span> * @param {Number} [width] Selection width.
1463 <span class='line'
>1456</span> * @param {Number} [height] Selection height.
1464 <span class='line'
>1457</span> */
</span><span class=
"WHIT">
1465 <span class='line'
>1458</span> </span><span class=
"NAME">pwlib.appEvent.selectionChange
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"KEYW">function
</span><span class=
"WHIT"> </span><span class=
"PUNC">(
</span><span class=
"NAME">state
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">width
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"NAME">height
</span><span class=
"PUNC">)
</span><span class=
"WHIT"> </span><span class=
"PUNC">{
</span><span class=
"WHIT">
1466 <span class='line'
>1459</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1467 <span class='line'
>1460</span> * No selection is available.
1468 <span class='line'
>1461</span> * @constant
1469 <span class='line'
>1462</span> */
</span><span class=
"WHIT">
1470 <span class='line'
>1463</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_NONE
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">0</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1471 <span class='line'
>1464</span>
1472 <span class='line'
>1465</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1473 <span class='line'
>1466</span> * Selection available.
1474 <span class='line'
>1467</span> * @constant
1475 <span class='line'
>1468</span> */
</span><span class=
"WHIT">
1476 <span class='line'
>1469</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.STATE_SELECTED
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NUMB">2</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1477 <span class='line'
>1470</span>
1478 <span class='line'
>1471</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1479 <span class='line'
>1472</span> * Selection state.
1480 <span class='line'
>1473</span> * @type Number
1481 <span class='line'
>1474</span> */
</span><span class=
"WHIT">
1482 <span class='line'
>1475</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.state
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">state
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1483 <span class='line'
>1476</span>
1484 <span class='line'
>1477</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1485 <span class='line'
>1478</span> * Selection location on the x-axis of the image.
1486 <span class='line'
>1479</span> * @type Number
1487 <span class='line'
>1480</span> */
</span><span class=
"WHIT">
1488 <span class='line'
>1481</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.x
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">x
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1489 <span class='line'
>1482</span>
1490 <span class='line'
>1483</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1491 <span class='line'
>1484</span> * Selection location on the y-axis of the image.
1492 <span class='line'
>1485</span> * @type Number
1493 <span class='line'
>1486</span> */
</span><span class=
"WHIT">
1494 <span class='line'
>1487</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.y
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">y
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1495 <span class='line'
>1488</span>
1496 <span class='line'
>1489</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1497 <span class='line'
>1490</span> * Selection width.
1498 <span class='line'
>1491</span> * @type Number
1499 <span class='line'
>1492</span> */
</span><span class=
"WHIT">
1500 <span class='line'
>1493</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.width
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">width
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1501 <span class='line'
>1494</span>
1502 <span class='line'
>1495</span> </span><span class=
"WHIT"> </span><span class=
"COMM">/**
1503 <span class='line'
>1496</span> * Selection height.
1504 <span class='line'
>1497</span> * @type Number
1505 <span class='line'
>1498</span> */
</span><span class=
"WHIT">
1506 <span class='line'
>1499</span> </span><span class=
"WHIT"> </span><span class=
"NAME">this.height
</span><span class=
"WHIT"> </span><span class=
"PUNC">=
</span><span class=
"WHIT"> </span><span class=
"NAME">height
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1507 <span class='line'
>1500</span>
1508 <span class='line'
>1501</span> </span><span class=
"WHIT"> </span><span class=
"NAME">pwlib.appEvent.call
</span><span class=
"PUNC">(
</span><span class=
"KEYW">this
</span><span class=
"PUNC">,
</span><span class=
"WHIT"> </span><span class=
"STRN">'selectionChange'
</span><span class=
"PUNC">)
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1509 <span class='line'
>1502</span> </span><span class=
"PUNC">}
</span><span class=
"PUNC">;
</span><span class=
"WHIT">
1510 <span class='line'
>1503</span>
1511 <span class='line'
>1504</span> </span><span class=
"COMM">// vim:set spell spl=en fo=wan1croqlt tw=
80 ts=
2 sw=
2 sts=
2 sta et ai cin fenc=utf-
8 ff=unix:
</span><span class=
"WHIT">
1512 <span class='line'
>1505</span>
1513 <span class='line'
>1506</span> </span></pre></body></html>