// Copyright 2015 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 UI_APP_LIST_VIEWS_CUSTOM_LAUNCHER_PAGE_VIEW_H_
#define UI_APP_LIST_VIEWS_CUSTOM_LAUNCHER_PAGE_VIEW_H_

#include "base/macros.h"
#include "ui/app_list/app_list_export.h"
#include "ui/app_list/views/app_list_page.h"

namespace app_list {

// A wrapper view around the custom launcher page web view.
class APP_LIST_EXPORT CustomLauncherPageView : public AppListPage {
 public:
  explicit CustomLauncherPageView(View* custom_launcher_page_webview);
  ~CustomLauncherPageView() override;

  // Gets the location of the custom launcher page in "collapsed" state. This is
  // where the page is peeking in from the bottom of the launcher (neither full
  // on-screen or off-screen).
  gfx::Rect GetCollapsedLauncherPageBounds() const;

  View* custom_launcher_page_contents() {
    return custom_launcher_page_contents_;
  }

  // AppListPage overrides:
  gfx::Rect GetPageBoundsForState(AppListModel::State state) const override;
  void OnShown() override;
  void OnWillBeHidden() override;

 private:
  View* custom_launcher_page_contents_;

  DISALLOW_COPY_AND_ASSIGN(CustomLauncherPageView);
};

}  // namespace app_list

#endif  // UI_APP_LIST_VIEWS_CUSTOM_LAUNCHER_PAGE_VIEW_H_
