OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 17 matching lines...) Expand all Loading... |
28 | 28 |
29 #include "core/dom/Document.h" | 29 #include "core/dom/Document.h" |
30 #include "core/editing/FrameSelection.h" | 30 #include "core/editing/FrameSelection.h" |
31 #include "core/editing/htmlediting.h" | 31 #include "core/editing/htmlediting.h" |
32 #include "core/html/HTMLElement.h" | 32 #include "core/html/HTMLElement.h" |
33 #include "core/page/Frame.h" | 33 #include "core/page/Frame.h" |
34 #include "core/rendering/RenderObject.h" | 34 #include "core/rendering/RenderObject.h" |
35 | 35 |
36 namespace WebCore { | 36 namespace WebCore { |
37 | 37 |
38 ModifySelectionListLevelCommand::ModifySelectionListLevelCommand(Document* docum
ent) | 38 ModifySelectionListLevelCommand::ModifySelectionListLevelCommand(Document& docum
ent) |
39 : CompositeEditCommand(document) | 39 : CompositeEditCommand(document) |
40 { | 40 { |
41 } | 41 } |
42 | 42 |
43 bool ModifySelectionListLevelCommand::preservesTypingStyle() const | 43 bool ModifySelectionListLevelCommand::preservesTypingStyle() const |
44 { | 44 { |
45 return true; | 45 return true; |
46 } | 46 } |
47 | 47 |
48 // This needs to be static so it can be called by canIncreaseSelectionListLevel
and canDecreaseSelectionListLevel | 48 // This needs to be static so it can be called by canIncreaseSelectionListLevel
and canDecreaseSelectionListLevel |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 removeNode(node); | 127 removeNode(node); |
128 appendNode(node, newParent); | 128 appendNode(node, newParent); |
129 | 129 |
130 if (node == endNode) | 130 if (node == endNode) |
131 break; | 131 break; |
132 | 132 |
133 node = next; | 133 node = next; |
134 } | 134 } |
135 } | 135 } |
136 | 136 |
137 IncreaseSelectionListLevelCommand::IncreaseSelectionListLevelCommand(Document* d
ocument, Type listType) | 137 IncreaseSelectionListLevelCommand::IncreaseSelectionListLevelCommand(Document& d
ocument, Type listType) |
138 : ModifySelectionListLevelCommand(document) | 138 : ModifySelectionListLevelCommand(document) |
139 , m_listType(listType) | 139 , m_listType(listType) |
140 { | 140 { |
141 } | 141 } |
142 | 142 |
143 // This needs to be static so it can be called by canIncreaseSelectionListLevel | 143 // This needs to be static so it can be called by canIncreaseSelectionListLevel |
144 static bool canIncreaseListLevel(const VisibleSelection& selection, Node*& start
, Node*& end) | 144 static bool canIncreaseListLevel(const VisibleSelection& selection, Node*& start
, Node*& end) |
145 { | 145 { |
146 if (!getStartEndListChildren(selection, start, end)) | 146 if (!getStartEndListChildren(selection, start, end)) |
147 return false; | 147 return false; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 } else { | 183 } else { |
184 // create a sublist for the preceding element and move nodes there | 184 // create a sublist for the preceding element and move nodes there |
185 RefPtr<Element> newParent; | 185 RefPtr<Element> newParent; |
186 switch (m_listType) { | 186 switch (m_listType) { |
187 case InheritedListType: | 187 case InheritedListType: |
188 newParent = startListChild->parentElement(); | 188 newParent = startListChild->parentElement(); |
189 if (newParent) | 189 if (newParent) |
190 newParent = newParent->cloneElementWithoutChildren(); | 190 newParent = newParent->cloneElementWithoutChildren(); |
191 break; | 191 break; |
192 case OrderedList: | 192 case OrderedList: |
193 newParent = createOrderedListElement(document()); | 193 newParent = createOrderedListElement(&document()); |
194 break; | 194 break; |
195 case UnorderedList: | 195 case UnorderedList: |
196 newParent = createUnorderedListElement(document()); | 196 newParent = createUnorderedListElement(&document()); |
197 break; | 197 break; |
198 } | 198 } |
199 insertNodeBefore(newParent, startListChild); | 199 insertNodeBefore(newParent, startListChild); |
200 appendSiblingNodeRange(startListChild, endListChild, newParent.get()); | 200 appendSiblingNodeRange(startListChild, endListChild, newParent.get()); |
201 m_listElement = newParent.release(); | 201 m_listElement = newParent.release(); |
202 } | 202 } |
203 } | 203 } |
204 | 204 |
205 bool IncreaseSelectionListLevelCommand::canIncreaseSelectionListLevel(Document*
document) | 205 bool IncreaseSelectionListLevelCommand::canIncreaseSelectionListLevel(Document&
document) |
206 { | 206 { |
207 Node* startListChild; | 207 Node* startListChild; |
208 Node* endListChild; | 208 Node* endListChild; |
209 return canIncreaseListLevel(document->frame()->selection()->selection(), sta
rtListChild, endListChild); | 209 return canIncreaseListLevel(document.frame()->selection()->selection(), star
tListChild, endListChild); |
210 } | 210 } |
211 | 211 |
212 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevel(D
ocument* document, Type type) | 212 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevel(D
ocument& document, Type type) |
213 { | 213 { |
214 ASSERT(document); | 214 ASSERT(document.frame()); |
215 ASSERT(document->frame()); | |
216 RefPtr<IncreaseSelectionListLevelCommand> command = create(document, type); | 215 RefPtr<IncreaseSelectionListLevelCommand> command = create(document, type); |
217 command->apply(); | 216 command->apply(); |
218 return command->m_listElement.release(); | 217 return command->m_listElement.release(); |
219 } | 218 } |
220 | 219 |
221 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevel(D
ocument* document) | 220 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevel(D
ocument& document) |
222 { | 221 { |
223 return increaseSelectionListLevel(document, InheritedListType); | 222 return increaseSelectionListLevel(document, InheritedListType); |
224 } | 223 } |
225 | 224 |
226 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevelOr
dered(Document* document) | 225 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevelOr
dered(Document& document) |
227 { | 226 { |
228 return increaseSelectionListLevel(document, OrderedList); | 227 return increaseSelectionListLevel(document, OrderedList); |
229 } | 228 } |
230 | 229 |
231 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevelUn
ordered(Document* document) | 230 PassRefPtr<Node> IncreaseSelectionListLevelCommand::increaseSelectionListLevelUn
ordered(Document& document) |
232 { | 231 { |
233 return increaseSelectionListLevel(document, UnorderedList); | 232 return increaseSelectionListLevel(document, UnorderedList); |
234 } | 233 } |
235 | 234 |
236 DecreaseSelectionListLevelCommand::DecreaseSelectionListLevelCommand(Document* d
ocument) | 235 DecreaseSelectionListLevelCommand::DecreaseSelectionListLevelCommand(Document& d
ocument) |
237 : ModifySelectionListLevelCommand(document) | 236 : ModifySelectionListLevelCommand(document) |
238 { | 237 { |
239 } | 238 } |
240 | 239 |
241 // This needs to be static so it can be called by canDecreaseSelectionListLevel | 240 // This needs to be static so it can be called by canDecreaseSelectionListLevel |
242 static bool canDecreaseListLevel(const VisibleSelection& selection, Node*& start
, Node*& end) | 241 static bool canDecreaseListLevel(const VisibleSelection& selection, Node*& start
, Node*& end) |
243 { | 242 { |
244 if (!getStartEndListChildren(selection, start, end)) | 243 if (!getStartEndListChildren(selection, start, end)) |
245 return false; | 244 return false; |
246 | 245 |
(...skipping 24 matching lines...) Expand all Loading... |
271 } else if (!nextItem) { | 270 } else if (!nextItem) { |
272 // at end of list, move the child(ren) to after the sublist | 271 // at end of list, move the child(ren) to after the sublist |
273 insertSiblingNodeRangeAfter(startListChild, endListChild, listNode); | 272 insertSiblingNodeRangeAfter(startListChild, endListChild, listNode); |
274 } else if (listNode) { | 273 } else if (listNode) { |
275 // in the middle of list, split the list and move the children to the di
vide | 274 // in the middle of list, split the list and move the children to the di
vide |
276 splitElement(listNode, startListChild); | 275 splitElement(listNode, startListChild); |
277 insertSiblingNodeRangeBefore(startListChild, endListChild, listNode); | 276 insertSiblingNodeRangeBefore(startListChild, endListChild, listNode); |
278 } | 277 } |
279 } | 278 } |
280 | 279 |
281 bool DecreaseSelectionListLevelCommand::canDecreaseSelectionListLevel(Document*
document) | 280 bool DecreaseSelectionListLevelCommand::canDecreaseSelectionListLevel(Document&
document) |
282 { | 281 { |
283 Node* startListChild; | 282 Node* startListChild; |
284 Node* endListChild; | 283 Node* endListChild; |
285 return canDecreaseListLevel(document->frame()->selection()->selection(), sta
rtListChild, endListChild); | 284 return canDecreaseListLevel(document.frame()->selection()->selection(), star
tListChild, endListChild); |
286 } | 285 } |
287 | 286 |
288 void DecreaseSelectionListLevelCommand::decreaseSelectionListLevel(Document* doc
ument) | 287 void DecreaseSelectionListLevelCommand::decreaseSelectionListLevel(Document& doc
ument) |
289 { | 288 { |
290 ASSERT(document); | 289 ASSERT(document.frame()); |
291 ASSERT(document->frame()); | |
292 applyCommand(create(document)); | 290 applyCommand(create(document)); |
293 } | 291 } |
294 | 292 |
295 } | 293 } |
OLD | NEW |