app_list_win.h revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
1// Copyright 2013 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_APP_LIST_WIN_APP_LIST_WIN_H_ 6#define CHROME_BROWSER_UI_VIEWS_APP_LIST_WIN_APP_LIST_WIN_H_ 7 8#include "base/callback_forward.h" 9#include "chrome/browser/ui/app_list/app_list.h" 10#include "chrome/browser/ui/views/app_list/win/activation_tracker_win.h" 11#include "ui/app_list/views/app_list_view.h" 12 13// Responsible for positioning, hiding and showing an AppListView on Windows. 14// This includes watching window activation/deactivation messages to determine 15// if the user has clicked away from it. 16class AppListWin : public AppList { 17 public: 18 AppListWin(app_list::AppListView* view, 19 const base::Closure& on_should_dismiss); 20 virtual ~AppListWin(); 21 22 // AppList overrides. 23 virtual void Show() OVERRIDE; 24 virtual void Hide() OVERRIDE; 25 virtual void MoveNearCursor() OVERRIDE; 26 virtual bool IsVisible() OVERRIDE; 27 virtual void Prerender() OVERRIDE; 28 virtual void RegainNextLostFocus() OVERRIDE; 29 virtual gfx::NativeWindow GetWindow() OVERRIDE; 30 virtual void SetProfile(Profile* profile) OVERRIDE; 31 32 app_list::AppListModel* model() { 33 return view_->model(); 34 } 35 36 private: 37 // Weak pointer. The view manages its own lifetime. 38 app_list::AppListView* view_; 39 ActivationTrackerWin activation_tracker_; 40 bool window_icon_updated_; 41 42 DISALLOW_COPY_AND_ASSIGN(AppListWin); 43}; 44 45#endif // CHROME_BROWSER_UI_VIEWS_APP_LIST_WIN_APP_LIST_WIN_H_ 46