C++程序  |  49行  |  1.73 KB

// Copyright 2014 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 ATHENA_EXTENSIONS_ATHENA_APP_DELEGATE_BASE_H_
#define ATHENA_EXTENSIONS_ATHENA_APP_DELEGATE_BASE_H_

#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "extensions/browser/app_window/app_delegate.h"

namespace athena {

class AthenaAppDelegateBase : public extensions::AppDelegate {
 public:
  AthenaAppDelegateBase();
  virtual ~AthenaAppDelegateBase();

 private:
  class NewActivityContentsDelegate;

  // extensions::AppDelegate:
  virtual void ResizeWebContents(content::WebContents* web_contents,
                                 const gfx::Size& size) OVERRIDE;
  virtual content::WebContents* OpenURLFromTab(
      content::BrowserContext* context,
      content::WebContents* source,
      const content::OpenURLParams& params) OVERRIDE;
  virtual void AddNewContents(content::BrowserContext* context,
                              content::WebContents* new_contents,
                              WindowOpenDisposition disposition,
                              const gfx::Rect& initial_pos,
                              bool user_gesture,
                              bool* was_blocked) OVERRIDE;
  virtual int PreferredIconSize() OVERRIDE;
  virtual bool IsWebContentsVisible(
      content::WebContents* web_contents) OVERRIDE;
  virtual void SetTerminatingCallback(const base::Closure& callback) OVERRIDE;

  scoped_ptr<NewActivityContentsDelegate> new_window_contents_delegate_;
  base::Closure terminating_callback_;

  DISALLOW_COPY_AND_ASSIGN(AthenaAppDelegateBase);
};

}  // namespace athena

#endif  // ATHENA_EXTENSIONS_ATHENA_APP_DELEGATE_BASE_H_