OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 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 21 matching lines...) Expand all Loading... |
32 namespace WebCore { | 32 namespace WebCore { |
33 | 33 |
34 class Document; | 34 class Document; |
35 class VisibleSelection; | 35 class VisibleSelection; |
36 | 36 |
37 class TextInsertionBaseCommand : public CompositeEditCommand { | 37 class TextInsertionBaseCommand : public CompositeEditCommand { |
38 public: | 38 public: |
39 virtual ~TextInsertionBaseCommand() { }; | 39 virtual ~TextInsertionBaseCommand() { }; |
40 | 40 |
41 protected: | 41 protected: |
42 explicit TextInsertionBaseCommand(Document*); | 42 explicit TextInsertionBaseCommand(Document&); |
43 static void applyTextInsertionCommand(Frame*, PassRefPtr<TextInsertionBaseCo
mmand>, const VisibleSelection& selectionForInsertion, const VisibleSelection& e
ndingSelection); | 43 static void applyTextInsertionCommand(Frame*, PassRefPtr<TextInsertionBaseCo
mmand>, const VisibleSelection& selectionForInsertion, const VisibleSelection& e
ndingSelection); |
44 }; | 44 }; |
45 | 45 |
46 String dispatchBeforeTextInsertedEvent(const String& text, const VisibleSelectio
n& selectionForInsertion, bool insertionIsForUpdatingComposition); | 46 String dispatchBeforeTextInsertedEvent(const String& text, const VisibleSelectio
n& selectionForInsertion, bool insertionIsForUpdatingComposition); |
47 bool canAppendNewLineFeedToSelection(const VisibleSelection&); | 47 bool canAppendNewLineFeedToSelection(const VisibleSelection&); |
48 | 48 |
49 // LineOperation should define member function "opeartor (size_t lineOffset, siz
e_t lineLength, bool isLastLine)". | 49 // LineOperation should define member function "opeartor (size_t lineOffset, siz
e_t lineLength, bool isLastLine)". |
50 // lienLength doesn't include the newline character. So the value of lineLength
could be 0. | 50 // lienLength doesn't include the newline character. So the value of lineLength
could be 0. |
51 template <class LineOperation> | 51 template <class LineOperation> |
52 void forEachLineInString(const String& string, const LineOperation& operation) | 52 void forEachLineInString(const String& string, const LineOperation& operation) |
53 { | 53 { |
54 unsigned offset = 0; | 54 unsigned offset = 0; |
55 size_t newline; | 55 size_t newline; |
56 while ((newline = string.find('\n', offset)) != notFound) { | 56 while ((newline = string.find('\n', offset)) != notFound) { |
57 operation(offset, newline - offset, false); | 57 operation(offset, newline - offset, false); |
58 offset = newline + 1; | 58 offset = newline + 1; |
59 } | 59 } |
60 if (!offset) | 60 if (!offset) |
61 operation(0, string.length(), true); | 61 operation(0, string.length(), true); |
62 else { | 62 else { |
63 unsigned length = string.length(); | 63 unsigned length = string.length(); |
64 if (length != offset) | 64 if (length != offset) |
65 operation(offset, length - offset, true); | 65 operation(offset, length - offset, true); |
66 } | 66 } |
67 } | 67 } |
68 | 68 |
69 } | 69 } |
70 | 70 |
71 #endif | 71 #endif |
OLD | NEW |