Home | History | Annotate | Download | only in location_bar
      1 // Copyright (c) 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_VIEWS_LOCATION_BAR_OPEN_PDF_IN_READER_VIEW_H_
      6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_OPEN_PDF_IN_READER_VIEW_H_
      7 
      8 #include "ui/views/controls/image_view.h"
      9 #include "ui/views/widget/widget_observer.h"
     10 
     11 class OpenPDFInReaderBubbleView;
     12 
     13 namespace content {
     14 class WebContents;
     15 }
     16 
     17 namespace pdf {
     18 class OpenPDFInReaderPromptClient;
     19 }
     20 
     21 // A Page Action image view for the "Open PDF in Reader" bubble.
     22 class OpenPDFInReaderView : public views::ImageView,
     23                             public views::WidgetObserver {
     24  public:
     25   OpenPDFInReaderView();
     26   virtual ~OpenPDFInReaderView();
     27 
     28   void Update(content::WebContents* web_contents);
     29 
     30  private:
     31   void ShowBubble();
     32 
     33   // views::ImageView:
     34   virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE;
     35   virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
     36   virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
     37   virtual bool OnKeyPressed(const ui::KeyEvent& event) OVERRIDE;
     38 
     39   // views::WidgetObserver:
     40   virtual void OnWidgetDestroying(views::Widget* widget) OVERRIDE;
     41 
     42   OpenPDFInReaderBubbleView* bubble_;
     43 
     44   // Weak pointer; owned by the PDFWebContentsHelper of the currently active
     45   // tab.
     46   pdf::OpenPDFInReaderPromptClient* model_;
     47 
     48   DISALLOW_COPY_AND_ASSIGN(OpenPDFInReaderView);
     49 };
     50 
     51 #endif  // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_OPEN_PDF_IN_READER_VIEW_H_
     52