Changeset 75093 in webkit
- Timestamp:
- Jan 5, 2011 12:19:04 PM (13 years ago)
- Location:
- trunk/WebKit2
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit2/ChangeLog
r75089 r75093 1 2011-01-05 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Adele Peterson. 4 5 Implement word transformation 6 https://bugs.webkit.org/show_bug.cgi?id=51943 7 8 * UIProcess/API/mac/WKView.mm: 9 (-[WKView validateUserInterfaceItem:]): 10 Handle the word transformation selectors. 11 12 (-[WKView uppercaseWord:]): 13 (-[WKView lowercaseWord:]): 14 (-[WKView capitalizeWord:]): 15 Call down to the WebPageProxy. 16 17 * UIProcess/WebPageProxy.cpp: 18 (WebKit::WebPageProxy::uppercaseWord): 19 (WebKit::WebPageProxy::lowercaseWord): 20 (WebKit::WebPageProxy::capitalizeWord): 21 Send messages to the WebPage. 22 23 * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: 24 (WebKit::changeWordCase): 25 Add helper function. 26 27 (WebKit::WebEditorClient::uppercaseWord): 28 (WebKit::WebEditorClient::lowercaseWord): 29 (WebKit::WebEditorClient::capitalizeWord): 30 Call helper function. 31 32 * WebProcess/WebPage/WebPage.cpp: 33 (WebKit::WebPage::changeSpellingToWord): 34 Call replaceSelectionWithText. 35 36 (WebKit::WebPage::uppercaseWord): 37 (WebKit::WebPage::lowercaseWord): 38 (WebKit::WebPage::capitalizeWord): 39 Call the editor functions. 40 41 (WebKit::WebPage::replaceSelectionWithText): 42 New helper function that replaces the selected string with another string. 43 44 * WebProcess/WebPage/WebPage.messages.in: 45 Add new messages. 46 1 47 2011-01-05 Alexey Proskuryakov <ap@apple.com> 2 48 -
trunk/WebKit2/UIProcess/API/mac/WKView.mm
r75086 r75093 412 412 } 413 413 414 if (action == @selector(uppercaseWord:) || action == @selector(lowercaseWord:) || action == @selector(capitalizeWord:)) 415 return _data->_page->selectionState().selectedRangeLength && _data->_page->selectionState().isContentEditable; 416 414 417 if (action == @selector(stopSpeaking:)) 415 418 return [NSApp isSpeaking]; … … 612 615 TextChecker::setAutomaticTextReplacementEnabled(!TextChecker::state().isAutomaticTextReplacementEnabled); 613 616 _data->_page->process()->updateTextCheckerState(); 617 } 618 619 - (void)uppercaseWord:(id)sender 620 { 621 _data->_page->uppercaseWord(); 622 } 623 624 - (void)lowercaseWord:(id)sender 625 { 626 _data->_page->lowercaseWord(); 627 } 628 629 - (void)capitalizeWord:(id)sender 630 { 631 _data->_page->capitalizeWord(); 614 632 } 615 633 -
trunk/WebKit2/UIProcess/WebPageProxy.cpp
r75086 r75093 1783 1783 } 1784 1784 1785 #if PLATFORM(MAC) 1786 void WebPageProxy::uppercaseWord() 1787 { 1788 process()->send(Messages::WebPage::UppercaseWord(), m_pageID); 1789 } 1790 1791 void WebPageProxy::lowercaseWord() 1792 { 1793 process()->send(Messages::WebPage::LowercaseWord(), m_pageID); 1794 } 1795 1796 void WebPageProxy::capitalizeWord() 1797 { 1798 process()->send(Messages::WebPage::CapitalizeWord(), m_pageID); 1799 } 1800 #endif 1801 1785 1802 void WebPageProxy::registerEditCommand(PassRefPtr<WebEditCommandProxy> commandProxy, UndoOrRedo undoOrRedo) 1786 1803 { -
trunk/WebKit2/UIProcess/WebPageProxy.h
r75086 r75093 304 304 void unmarkAllMisspellings(); 305 305 void unmarkAllBadGrammar(); 306 #if PLATFORM(MAC) 307 void uppercaseWord(); 308 void lowercaseWord(); 309 void capitalizeWord(); 310 #endif 306 311 307 312 private: -
trunk/WebKit2/WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm
r75086 r75093 131 131 #endif 132 132 133 #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) 133 static void changeWordCase(WebPage* page, SEL selector) 134 { 135 Frame* frame = page->corePage()->focusController()->focusedOrMainFrame(); 136 if (!frame->editor()->canEdit()) 137 return; 138 139 frame->editor()->command("selectWord").execute(); 140 141 NSString *selectedString = frame->displayStringModifiedByEncoding(frame->editor()->selectedText()); 142 page->replaceSelectionWithText(frame, [selectedString performSelector:selector]); 143 } 144 134 145 void WebEditorClient::uppercaseWord() 135 146 { 136 notImplemented();147 changeWordCase(m_page, @selector(uppercaseString)); 137 148 } 138 149 139 150 void WebEditorClient::lowercaseWord() 140 151 { 141 notImplemented();152 changeWordCase(m_page, @selector(lowercaseString)); 142 153 } 143 154 144 155 void WebEditorClient::capitalizeWord() 145 156 { 146 notImplemented();157 changeWordCase(m_page, @selector(capitalizedString)); 147 158 } 148 159 … … 222 233 m_page->sendSync(Messages::WebPageProxy::CheckTextOfParagraph(String(text, length), checkingTypes), Messages::WebPageProxy::CheckTextOfParagraph::Reply(results)); 223 234 } 224 #endif225 235 226 236 #if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD) -
trunk/WebKit2/WebProcess/WebPage/WebPage.cpp
r75086 r75093 1268 1268 void WebPage::changeSpellingToWord(const String& word) 1269 1269 { 1270 Frame* frame = m_page->focusController()->focusedOrMainFrame(); 1271 if (frame->selection()->isNone()) 1272 return; 1273 1274 RefPtr<DocumentFragment> textFragment = createFragmentFromText(frame->selection()->toNormalizedRange().get(), word); 1275 applyCommand(ReplaceSelectionCommand::create(frame->document(), textFragment.release(), true, false, true)); 1276 frame->selection()->revealSelection(ScrollAlignment::alignToEdgeIfNeeded); 1270 replaceSelectionWithText(m_page->focusController()->focusedOrMainFrame(), word); 1277 1271 } 1278 1272 … … 1293 1287 } 1294 1288 1289 void WebPage::uppercaseWord() 1290 { 1291 m_page->focusController()->focusedOrMainFrame()->editor()->uppercaseWord(); 1292 } 1293 1294 void WebPage::lowercaseWord() 1295 { 1296 m_page->focusController()->focusedOrMainFrame()->editor()->lowercaseWord(); 1297 } 1298 1299 void WebPage::capitalizeWord() 1300 { 1301 m_page->focusController()->focusedOrMainFrame()->editor()->capitalizeWord(); 1302 } 1303 1295 1304 void WebPage::setTextForActivePopupMenu(int32_t index) 1296 1305 { … … 1306 1315 m_contextMenu->itemSelected(item); 1307 1316 m_contextMenu = 0; 1317 } 1318 1319 void WebPage::replaceSelectionWithText(Frame* frame, const String& text) 1320 { 1321 if (frame->selection()->isNone()) 1322 return; 1323 1324 RefPtr<DocumentFragment> textFragment = createFragmentFromText(frame->selection()->toNormalizedRange().get(), text); 1325 applyCommand(ReplaceSelectionCommand::create(frame->document(), textFragment.release(), true, false, true)); 1326 frame->selection()->revealSelection(ScrollAlignment::alignToEdgeIfNeeded); 1308 1327 } 1309 1328 -
trunk/WebKit2/WebProcess/WebPage/WebPage.h
r75086 r75093 289 289 #endif 290 290 291 void replaceSelectionWithText(WebCore::Frame*, const String&); 292 291 293 private: 292 294 WebPage(uint64_t pageID, const WebPageCreationParameters&); … … 379 381 void unmarkAllMisspellings(); 380 382 void unmarkAllBadGrammar(); 383 #if PLATFORM(MAC) 384 void uppercaseWord(); 385 void lowercaseWord(); 386 void capitalizeWord(); 387 #endif 381 388 382 389 #if ENABLE(CONTEXT_MENUS) -
trunk/WebKit2/WebProcess/WebPage/WebPage.messages.in
r75086 r75093 106 106 UnmarkAllMisspellings() 107 107 UnmarkAllBadGrammar() 108 #if PLATFORM(MAC) 109 UppercaseWord(); 110 LowercaseWord(); 111 CapitalizeWord(); 112 #endif 108 113 109 114 SetWindowResizerSize(WebCore::IntSize intersectsView)
Note: See TracChangeset
for help on using the changeset viewer.