alternate_nav_infobar_delegate.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
1// Copyright 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_OMNIBOX_ALTERNATE_NAV_INFOBAR_DELEGATE_H_ 6#define CHROME_BROWSER_UI_OMNIBOX_ALTERNATE_NAV_INFOBAR_DELEGATE_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "components/infobars/core/infobar_delegate.h" 10#include "components/omnibox/autocomplete_match.h" 11 12class Profile; 13 14namespace content { 15class WebContents; 16} 17 18class AlternateNavInfoBarDelegate : public infobars::InfoBarDelegate { 19 public: 20 virtual ~AlternateNavInfoBarDelegate(); 21 22 // Creates an alternate nav infobar and delegate and adds the infobar to the 23 // infobar service for |web_contents|. 24 static void Create(content::WebContents* web_contents, 25 const base::string16& text, 26 const AutocompleteMatch& match, 27 const GURL& search_url); 28 29 base::string16 GetMessageTextWithOffset(size_t* link_offset) const; 30 base::string16 GetLinkText() const; 31 bool LinkClicked(WindowOpenDisposition disposition); 32 33 private: 34 AlternateNavInfoBarDelegate(Profile* profile, 35 const base::string16& text, 36 const AutocompleteMatch& match, 37 const GURL& search_url); 38 39 // Returns an alternate nav infobar that owns |delegate|. 40 static scoped_ptr<infobars::InfoBar> CreateInfoBar( 41 scoped_ptr<AlternateNavInfoBarDelegate> delegate); 42 43 // InfoBarDelegate: 44 virtual int GetIconID() const OVERRIDE; 45 virtual Type GetInfoBarType() const OVERRIDE; 46 47 Profile* profile_; 48 const base::string16 text_; 49 const AutocompleteMatch match_; 50 const GURL search_url_; 51 52 DISALLOW_COPY_AND_ASSIGN(AlternateNavInfoBarDelegate); 53}; 54 55#endif // CHROME_BROWSER_UI_OMNIBOX_ALTERNATE_NAV_INFOBAR_DELEGATE_H_ 56