| Index: chrome/browser/cocoa/view_id_util.h
 | 
| diff --git a/chrome/browser/cocoa/view_id_util.h b/chrome/browser/cocoa/view_id_util.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..72bb11969041fb15ea97828f11478b3fd09aac53
 | 
| --- /dev/null
 | 
| +++ b/chrome/browser/cocoa/view_id_util.h
 | 
| @@ -0,0 +1,37 @@
 | 
| +// Copyright (c) 2010 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.
 | 
| +
 | 
| +#ifndef CHROME_BROWSER_COCOA_VIEW_ID_UTIL_H_
 | 
| +#define CHROME_BROWSER_COCOA_VIEW_ID_UTIL_H_
 | 
| +
 | 
| +#include "gfx/native_widget_types.h"
 | 
| +#include "chrome/browser/view_ids.h"
 | 
| +
 | 
| +namespace view_id_util {
 | 
| +
 | 
| +// We use NSView's tag property to support ViewID, so we don't need special code
 | 
| +// for binding a ViewID to a NSView. The subclasses of NSView shall override tag
 | 
| +// method to return their ViewIDs.
 | 
| +// However the tag property is also used elsewhere, such as the window buttons
 | 
| +// provided by the Cocoa system (the three stoplights on the top left corner),
 | 
| +// whose tags will be set to 0, 1, 2 by the Cocoa system.
 | 
| +// In order to avoid conflict, we use negative tag value for ViewID.
 | 
| +// No existing chromium code uses negative tag value, so it's safe for us to use
 | 
| +// it.
 | 
| +// See http://dev.chromium.org/developers/design-documents/viewid-support-on-mac
 | 
| +// for details.
 | 
| +
 | 
| +// A convenient function to convert a ViewID value to negative tag value. Using
 | 
| +// this function to make sure that we only need to change this fuction when we
 | 
| +// have to change the mapping algorithm to avoid conflict in the future.
 | 
| +inline int ViewIDToTag(ViewID viewID) {
 | 
| +  return -viewID - 1;
 | 
| +}
 | 
| +
 | 
| +// A convenient function to lookup a view by a ViewID in a given window.
 | 
| +NSView* GetView(NSWindow* window, ViewID viewID);
 | 
| +
 | 
| +}  // namespace view_id_util
 | 
| +
 | 
| +#endif  // CHROME_BROWSER_COCOA_VIEW_ID_UTIL_H_
 | 
| 
 |