@@ -16,7 +16,6 @@ use dom::eventtarget::{EventTarget, NodeTargetTypeId};
16
16
use dom:: htmlelement:: HTMLElement ;
17
17
use dom:: node:: { Node , ElementNodeTypeId , NodeHelpers , window_from_node} ;
18
18
use dom:: virtualmethods:: VirtualMethods ;
19
-
20
19
use servo_net:: image_cache_task;
21
20
use servo_util:: atom:: Atom ;
22
21
use servo_util:: geometry:: to_px;
@@ -96,67 +95,93 @@ impl LayoutHTMLImageElementHelpers for JS<HTMLImageElement> {
96
95
}
97
96
98
97
impl < ' a > HTMLImageElementMethods for JSRef < ' a , HTMLImageElement > {
99
-
100
- make_getters ! ( Alt , Src , UseMap , Name , Align , LongDesc , Border )
101
- make_bool_getters ! ( IsMap )
102
- make_uint_getters ! ( Width , Height , Hspace , Vspace )
98
+ make_getter ! ( Alt )
103
99
104
100
fn SetAlt ( & self , alt : DOMString ) {
105
101
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
106
102
element. set_string_attribute ( "alt" , alt)
107
103
}
108
104
105
+ make_getter ! ( Src )
106
+
109
107
fn SetSrc ( & self , src : DOMString ) {
110
108
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
111
109
element. set_url_attribute ( "src" , src)
112
110
}
113
111
112
+ make_getter ! ( UseMap )
113
+
114
114
fn SetUseMap ( & self , use_map : DOMString ) {
115
115
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
116
116
element. set_string_attribute ( "useMap" , use_map)
117
117
}
118
118
119
+ make_bool_getter ! ( IsMap )
120
+
119
121
fn SetIsMap ( & self , is_map : bool ) {
120
122
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
121
123
element. set_string_attribute ( "isMap" , is_map. to_string ( ) )
122
124
}
123
125
124
-
126
+ fn Width ( & self ) -> u32 {
127
+ let node: & JSRef < Node > = NodeCast :: from_ref ( self ) ;
128
+ let rect = node. get_bounding_content_box ( ) ;
129
+ to_px ( rect. size . width ) as u32
130
+ }
131
+
125
132
fn SetWidth ( & self , width : u32 ) {
126
133
let elem: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
127
134
elem. set_uint_attribute ( "width" , width)
128
135
}
129
136
137
+ fn Height ( & self ) -> u32 {
138
+ let node: & JSRef < Node > = NodeCast :: from_ref ( self ) ;
139
+ let rect = node. get_bounding_content_box ( ) ;
140
+ to_px ( rect. size . height ) as u32
141
+ }
142
+
130
143
fn SetHeight ( & self , height : u32 ) {
131
144
let elem: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
132
145
elem. set_uint_attribute ( "height" , height)
133
146
}
134
147
148
+ make_getter ! ( Name )
149
+
135
150
fn SetName ( & self , name : DOMString ) {
136
151
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
137
152
element. set_string_attribute ( "name" , name)
138
153
}
139
154
155
+ make_getter ! ( Align )
156
+
140
157
fn SetAlign ( & self , align : DOMString ) {
141
158
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
142
159
element. set_string_attribute ( "align" , align)
143
160
}
144
161
162
+ make_uint_getter ! ( Hspace )
163
+
145
164
fn SetHspace ( & self , hspace : u32 ) {
146
165
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
147
166
element. set_uint_attribute ( "hspace" , hspace)
148
167
}
149
168
169
+ make_uint_getter ! ( Vspace )
170
+
150
171
fn SetVspace ( & self , vspace : u32 ) {
151
172
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
152
173
element. set_uint_attribute ( "vspace" , vspace)
153
174
}
154
175
176
+ make_getter ! ( LongDesc )
177
+
155
178
fn SetLongDesc ( & self , longdesc : DOMString ) {
156
179
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
157
180
element. set_string_attribute ( "longdesc" , longdesc)
158
181
}
159
182
183
+ make_getter ! ( Border )
184
+
160
185
fn SetBorder ( & self , border : DOMString ) {
161
186
let element: & JSRef < Element > = ElementCast :: from_ref ( self ) ;
162
187
element. set_string_attribute ( "border" , border)
0 commit comments