Index: chrome/browser/ui/cocoa/browser/edit_search_engine_cocoa_controller.mm |
diff --git a/chrome/browser/ui/cocoa/browser/edit_search_engine_cocoa_controller.mm b/chrome/browser/ui/cocoa/browser/edit_search_engine_cocoa_controller.mm |
deleted file mode 100644 |
index 741afb8a6f26e09438a014165b93de03720ced9c..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/cocoa/browser/edit_search_engine_cocoa_controller.mm |
+++ /dev/null |
@@ -1,190 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#import "chrome/browser/ui/cocoa/browser/edit_search_engine_cocoa_controller.h" |
- |
-#include "base/logging.h" |
-#include "base/mac/bundle_locations.h" |
-#include "base/strings/string16.h" |
-#include "base/strings/sys_string_conversions.h" |
-#include "chrome/browser/search_engines/ui_thread_search_terms_data.h" |
-#include "chrome/grit/generated_resources.h" |
-#include "components/search_engines/template_url.h" |
-#include "grit/theme_resources.h" |
-#include "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
-#include "ui/base/l10n/l10n_util_mac.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/image/image.h" |
- |
-namespace { |
- |
-void ShiftOriginY(NSView* view, CGFloat amount) { |
- NSPoint origin = [view frame].origin; |
- origin.y += amount; |
- [view setFrameOrigin:origin]; |
-} |
- |
-} // namespace |
- |
-@implementation EditSearchEngineCocoaController |
- |
-- (id)initWithProfile:(Profile*)profile |
- delegate:(EditSearchEngineControllerDelegate*)delegate |
- templateURL:(TemplateURL*)url { |
- DCHECK(profile); |
- NSString* nibpath = [base::mac::FrameworkBundle() |
- pathForResource:@"EditSearchEngine" |
- ofType:@"nib"]; |
- if ((self = [super initWithWindowNibPath:nibpath owner:self])) { |
- profile_ = profile; |
- templateURL_ = url; |
- controller_.reset( |
- new EditSearchEngineController(templateURL_, delegate, profile_)); |
- } |
- return self; |
-} |
- |
-- (void)awakeFromNib { |
- DCHECK([self window]); |
- DCHECK_EQ(self, [[self window] delegate]); |
- |
- // Make sure the url description field fits the text in it. |
- CGFloat descriptionShift = [GTMUILocalizerAndLayoutTweaker |
- sizeToFitFixedWidthTextField:urlDescriptionField_]; |
- |
- // Move the label container above the url description. |
- ShiftOriginY(labelContainer_, descriptionShift); |
- // There was no way via view containment to use a helper view to move all |
- // the textfields and images at once, most move them all on their own so |
- // they stay above the url description. |
- ShiftOriginY(nameField_, descriptionShift); |
- ShiftOriginY(keywordField_, descriptionShift); |
- ShiftOriginY(urlField_, descriptionShift); |
- ShiftOriginY(nameImage_, descriptionShift); |
- ShiftOriginY(keywordImage_, descriptionShift); |
- ShiftOriginY(urlImage_, descriptionShift); |
- |
- // Resize the containing box for the name/keyword/url fields/images since it |
- // also contains the url description (which just grew). |
- [[fieldAndImageContainer_ contentView] setAutoresizesSubviews:NO]; |
- NSRect rect = [fieldAndImageContainer_ frame]; |
- rect.size.height += descriptionShift; |
- [fieldAndImageContainer_ setFrame:rect]; |
- [[fieldAndImageContainer_ contentView] setAutoresizesSubviews:YES]; |
- |
- // Resize the window. |
- NSWindow* window = [self window]; |
- NSSize windowDelta = NSMakeSize(0, descriptionShift); |
- [GTMUILocalizerAndLayoutTweaker |
- resizeWindowWithoutAutoResizingSubViews:window |
- delta:windowDelta]; |
- |
- if (templateURL_) { |
- // Defaults to |..._NEW_WINDOW_TITLE|. |
- [window setTitle:l10n_util::GetNSString( |
- IDS_SEARCH_ENGINES_EDITOR_EDIT_WINDOW_TITLE)]; |
- [nameField_ setStringValue: |
- base::SysUTF16ToNSString(templateURL_->short_name())]; |
- [keywordField_ setStringValue: |
- base::SysUTF16ToNSString(templateURL_->keyword())]; |
- [urlField_ setStringValue: |
- base::SysUTF16ToNSString(templateURL_->url_ref().DisplayURL( |
- UIThreadSearchTermsData(profile_)))]; |
- [urlField_ setEnabled:(templateURL_->prepopulate_id() == 0)]; |
- } |
- // When creating a new keyword, this will mark the fields as "invalid" and |
- // will not let the user save. If this is an edit, then this will set all |
- // the images to the "valid" state. |
- [self validateFields]; |
-} |
- |
-// When the window closes, clean ourselves up. |
-- (void)windowWillClose:(NSNotification*)notif { |
- [self autorelease]; |
-} |
- |
-// Performs the logic of closing the window. If we are a sheet, then it ends the |
-// modal session; otherwise, it closes the window. |
-- (void)doClose { |
- if ([[self window] isSheet]) { |
- [NSApp endSheet:[self window]]; |
- } else { |
- [[self window] close]; |
- } |
-} |
- |
-- (IBAction)cancel:(id)sender { |
- [self doClose]; |
-} |
- |
-- (IBAction)save:(id)sender { |
- DCHECK([self validateFields]); |
- base::string16 title = base::SysNSStringToUTF16([nameField_ stringValue]); |
- base::string16 keyword = |
- base::SysNSStringToUTF16([keywordField_ stringValue]); |
- std::string url = base::SysNSStringToUTF8([urlField_ stringValue]); |
- controller_->AcceptAddOrEdit(title, keyword, url); |
- [self doClose]; |
-} |
- |
-// Delegate method for the text fields. |
- |
-- (void)controlTextDidChange:(NSNotification*)notif { |
- [self validateFields]; |
-} |
- |
-- (void)controlTextDidEndEditing:(NSNotification*)notif { |
- [self validateFields]; |
-} |
- |
-// Private ///////////////////////////////////////////////////////////////////// |
- |
-// Sets the appropriate image and tooltip based on a boolean |valid|. |
-- (void)setIsValid:(BOOL)valid |
- toolTip:(int)messageID |
- forImageView:(NSImageView*)imageView |
- textField:(NSTextField*)textField { |
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
- NSImage* image = valid ? rb.GetNativeImageNamed(IDR_INPUT_GOOD).ToNSImage() |
- : rb.GetNativeImageNamed(IDR_INPUT_ALERT).ToNSImage(); |
- [imageView setImage:image]; |
- |
- NSString* toolTip = nil; |
- if (!valid) |
- toolTip = l10n_util::GetNSString(messageID); |
- [textField setToolTip:toolTip]; |
- [imageView setToolTip:toolTip]; |
-} |
- |
-// This sets the image state for all the controls and enables or disables the |
-// done button. Returns YES if all the fields are valid. |
-- (BOOL)validateFields { |
- base::string16 title = base::SysNSStringToUTF16([nameField_ stringValue]); |
- BOOL titleValid = controller_->IsTitleValid(title); |
- [self setIsValid:titleValid |
- toolTip:IDS_SEARCH_ENGINES_INVALID_TITLE_TT |
- forImageView:nameImage_ |
- textField:nameField_]; |
- |
- base::string16 keyword = |
- base::SysNSStringToUTF16([keywordField_ stringValue]); |
- BOOL keywordValid = controller_->IsKeywordValid(keyword); |
- [self setIsValid:keywordValid |
- toolTip:IDS_SEARCH_ENGINES_INVALID_KEYWORD_TT |
- forImageView:keywordImage_ |
- textField:keywordField_]; |
- |
- std::string url = base::SysNSStringToUTF8([urlField_ stringValue]); |
- BOOL urlValid = controller_->IsURLValid(url); |
- [self setIsValid:urlValid |
- toolTip:IDS_SEARCH_ENGINES_INVALID_URL_TT |
- forImageView:urlImage_ |
- textField:urlField_]; |
- |
- BOOL isValid = (titleValid && keywordValid && urlValid); |
- [doneButton_ setEnabled:isValid]; |
- return isValid; |
-} |
- |
-@end |