Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(430)

Side by Side Diff: chrome/browser/renderer_host/render_widget_host_view_mac.mm

Issue 6326011: Revert 72570 - Mac: Enable "Check Spelling While Typing" in Edit menu... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <QuartzCore/QuartzCore.h> 5 #include <QuartzCore/QuartzCore.h>
6 6
7 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h" 7 #include "chrome/browser/renderer_host/render_widget_host_view_mac.h"
8 8
9 #include "app/app_switches.h" 9 #include "app/app_switches.h"
10 #include "app/surface/io_surface_support_mac.h" 10 #include "app/surface/io_surface_support_mac.h"
(...skipping 1902 matching lines...) Expand 10 before | Expand all | Expand 10 after
1913 1913
1914 // For now, these actions are always enabled for render view, 1914 // For now, these actions are always enabled for render view,
1915 // this is sub-optimal. 1915 // this is sub-optimal.
1916 // TODO(suzhe): Plumb the "can*" methods up from WebCore. 1916 // TODO(suzhe): Plumb the "can*" methods up from WebCore.
1917 if (action == @selector(undo:) || 1917 if (action == @selector(undo:) ||
1918 action == @selector(redo:) || 1918 action == @selector(redo:) ||
1919 action == @selector(cut:) || 1919 action == @selector(cut:) ||
1920 action == @selector(copy:) || 1920 action == @selector(copy:) ||
1921 action == @selector(copyToFindPboard:) || 1921 action == @selector(copyToFindPboard:) ||
1922 action == @selector(paste:) || 1922 action == @selector(paste:) ||
1923 action == @selector(pasteAsPlainText:) || 1923 action == @selector(pasteAsPlainText:)) {
1924 action == @selector(checkSpelling:)) {
1925 return renderWidgetHostView_->render_widget_host_->IsRenderView(); 1924 return renderWidgetHostView_->render_widget_host_->IsRenderView();
1926 } 1925 }
1927 1926
1928 if (action == @selector(toggleContinuousSpellChecking:)) {
1929 RenderViewHost::CommandState state;
1930 state.is_enabled = false;
1931 state.checked_state = RENDER_VIEW_COMMAND_CHECKED_STATE_UNCHECKED;
1932 if (renderWidgetHostView_->render_widget_host_->IsRenderView()) {
1933 state = static_cast<RenderViewHost*>(
1934 renderWidgetHostView_->render_widget_host_)->
1935 GetStateForCommand(RENDER_VIEW_COMMAND_TOGGLE_SPELL_CHECK);
1936 }
1937 if ([(id)item respondsToSelector:@selector(setState:)]) {
1938 NSCellStateValue checked_state;
1939 switch (state.checked_state) {
1940 case RENDER_VIEW_COMMAND_CHECKED_STATE_UNCHECKED:
1941 checked_state = NSOffState;
1942 break;
1943 case RENDER_VIEW_COMMAND_CHECKED_STATE_CHECKED:
1944 checked_state = NSOnState;
1945 break;
1946 case RENDER_VIEW_COMMAND_CHECKED_STATE_MIXED:
1947 checked_state = NSMixedState;
1948 break;
1949 }
1950 [(id)item setState:checked_state];
1951 }
1952 return state.is_enabled;
1953 }
1954
1955 return editCommand_helper_->IsMenuItemEnabled(action, self); 1927 return editCommand_helper_->IsMenuItemEnabled(action, self);
1956 } 1928 }
1957 1929
1958 - (RenderWidgetHostViewMac*)renderWidgetHostViewMac { 1930 - (RenderWidgetHostViewMac*)renderWidgetHostViewMac {
1959 return renderWidgetHostView_.get(); 1931 return renderWidgetHostView_.get();
1960 } 1932 }
1961 1933
1962 // Determine whether we should autohide the cursor (i.e., hide it until mouse 1934 // Determine whether we should autohide the cursor (i.e., hide it until mouse
1963 // move) for the given event. Customize here to be more selective about which 1935 // move) for the given event. Customize here to be more selective about which
1964 // key presses to autohide on. 1936 // key presses to autohide on.
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
2096 base::SysNSStringToUTF16(newWord)); 2068 base::SysNSStringToUTF16(newWord));
2097 } 2069 }
2098 } 2070 }
2099 2071
2100 // This message is sent by NSSpellChecker whenever the next word should be 2072 // This message is sent by NSSpellChecker whenever the next word should be
2101 // advanced to, either after a correction or clicking the "Find Next" button. 2073 // advanced to, either after a correction or clicking the "Find Next" button.
2102 // This isn't documented anywhere useful, like in NSSpellProtocol.h with the 2074 // This isn't documented anywhere useful, like in NSSpellProtocol.h with the
2103 // other spelling panel methods. This is probably because Apple assumes that the 2075 // other spelling panel methods. This is probably because Apple assumes that the
2104 // the spelling panel will be used with an NSText, which will automatically 2076 // the spelling panel will be used with an NSText, which will automatically
2105 // catch this and advance to the next word for you. Thanks Apple. 2077 // catch this and advance to the next word for you. Thanks Apple.
2106 // This is also called from the Edit -> Spelling -> Check Spelling menu item.
2107 - (void)checkSpelling:(id)sender { 2078 - (void)checkSpelling:(id)sender {
2108 RenderWidgetHostViewMac* thisHostView = [self renderWidgetHostViewMac]; 2079 RenderWidgetHostViewMac* thisHostView = [self renderWidgetHostViewMac];
2109 thisHostView->GetRenderWidgetHost()->AdvanceToNextMisspelling(); 2080 thisHostView->GetRenderWidgetHost()->AdvanceToNextMisspelling();
2110 } 2081 }
2111 2082
2112 // This message is sent by the spelling panel whenever a word is ignored. 2083 // This message is sent by the spelling panel whenever a word is ignored.
2113 - (void)ignoreSpelling:(id)sender { 2084 - (void)ignoreSpelling:(id)sender {
2114 // Ideally, we would ask the current RenderView for its tag, but that would 2085 // Ideally, we would ask the current RenderView for its tag, but that would
2115 // mean making a blocking IPC call from the browser. Instead, 2086 // mean making a blocking IPC call from the browser. Instead,
2116 // SpellCheckerPlatform::CheckSpelling remembers the last tag and 2087 // SpellCheckerPlatform::CheckSpelling remembers the last tag and
2117 // SpellCheckerPlatform::IgnoreWord assumes that is the correct tag. 2088 // SpellCheckerPlatform::IgnoreWord assumes that is the correct tag.
2118 NSString* wordToIgnore = [sender stringValue]; 2089 NSString* wordToIgnore = [sender stringValue];
2119 if (wordToIgnore != nil) 2090 if (wordToIgnore != nil)
2120 SpellCheckerPlatform::IgnoreWord(base::SysNSStringToUTF16(wordToIgnore)); 2091 SpellCheckerPlatform::IgnoreWord(base::SysNSStringToUTF16(wordToIgnore));
2121 } 2092 }
2122 2093
2123 - (void)showGuessPanel:(id)sender { 2094 - (void)showGuessPanel:(id)sender {
2124 RenderWidgetHostViewMac* thisHostView = [self renderWidgetHostViewMac]; 2095 RenderWidgetHostViewMac* thisHostView = [self renderWidgetHostViewMac];
2125 thisHostView->GetRenderWidgetHost()->ToggleSpellPanel( 2096 thisHostView->GetRenderWidgetHost()->ToggleSpellPanel(
2126 SpellCheckerPlatform::SpellingPanelVisible()); 2097 SpellCheckerPlatform::SpellingPanelVisible());
2127 } 2098 }
2128 2099
2129 - (void)toggleContinuousSpellChecking:(id)sender {
2130 if (renderWidgetHostView_->render_widget_host_->IsRenderView()) {
2131 static_cast<RenderViewHost*>(renderWidgetHostView_->render_widget_host_)->
2132 ToggleSpellCheck();
2133 }
2134 }
2135
2136 // END Spellchecking methods 2100 // END Spellchecking methods
2137 2101
2138 // Below is the nasty tooltip stuff -- copied from WebKit's WebHTMLView.mm 2102 // Below is the nasty tooltip stuff -- copied from WebKit's WebHTMLView.mm
2139 // with minor modifications for code style and commenting. 2103 // with minor modifications for code style and commenting.
2140 // 2104 //
2141 // The 'public' interface is -setToolTipAtMousePoint:. This differs from 2105 // The 'public' interface is -setToolTipAtMousePoint:. This differs from
2142 // -setToolTip: in that the updated tooltip takes effect immediately, 2106 // -setToolTip: in that the updated tooltip takes effect immediately,
2143 // without the user's having to move the mouse out of and back into the view. 2107 // without the user's having to move the mouse out of and back into the view.
2144 // 2108 //
2145 // Unfortunately, doing this requires sending fake mouseEnter/Exit events to 2109 // Unfortunately, doing this requires sending fake mouseEnter/Exit events to
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 if (!string) return NO; 2745 if (!string) return NO;
2782 2746
2783 // If the user is currently using an IME, confirm the IME input, 2747 // If the user is currently using an IME, confirm the IME input,
2784 // and then insert the text from the service, the same as TextEdit and Safari. 2748 // and then insert the text from the service, the same as TextEdit and Safari.
2785 [self confirmComposition]; 2749 [self confirmComposition];
2786 [self insertText:string]; 2750 [self insertText:string];
2787 return YES; 2751 return YES;
2788 } 2752 }
2789 2753
2790 @end 2754 @end
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_view_host.cc ('k') | chrome/common/render_messages_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698