app_list_linux.h revision f2477e01787aa58f445919b809d89e252beef54f
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_LINUX_APP_LIST_LINUX_H_ 6#define CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_LINUX_H_ 7 8#include "chrome/browser/ui/app_list/app_list.h" 9#include "ui/app_list/views/app_list_view.h" 10 11// Responsible for positioning, hiding and showing an AppListView on Linux. 12// This includes watching window activation/deactivation messages to determine 13// if the user has clicked away from it. 14class AppListLinux : public AppList, 15 public app_list::AppListView::Observer { 16 public: 17 AppListLinux(app_list::AppListView* view, 18 const base::Closure& on_should_dismiss); 19 virtual ~AppListLinux(); 20 21 // AppList overrides. 22 virtual void Show() OVERRIDE; 23 virtual void Hide() OVERRIDE; 24 virtual void MoveNearCursor() OVERRIDE; 25 virtual bool IsVisible() OVERRIDE; 26 virtual void Prerender() OVERRIDE; 27 virtual void ReactivateOnNextFocusLoss() OVERRIDE; 28 virtual gfx::NativeWindow GetWindow() OVERRIDE; 29 virtual void SetProfile(Profile* profile) OVERRIDE; 30 31 // app_list::AppListView::Observer overrides. 32 virtual void OnActivationChanged(views::Widget* widget, bool active) OVERRIDE; 33 34 private: 35 // Weak pointer. The view manages its own lifetime. 36 app_list::AppListView* view_; 37 bool window_icon_updated_; 38 39 // Called to request |view_| be closed. 40 base::Closure on_should_dismiss_; 41 42 DISALLOW_COPY_AND_ASSIGN(AppListLinux); 43}; 44 45#endif // CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_LINUX_H_ 46