blob: bd7e3d3837f75193f4d69cffe578b1c006a48ef5 [file] [log] [blame]
// Copyright (c) 2012 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_APP_LIST_VIEW_DELEGATE_H_
#define UI_APP_LIST_APP_LIST_VIEW_DELEGATE_H_
#include "base/callback_forward.h"
#include "base/strings/string16.h"
#include "ui/app_list/app_list_export.h"
namespace base {
class FilePath;
}
namespace gfx {
class ImageSkia;
}
namespace app_list {
class AppListItemModel;
class AppListModel;
class SearchResult;
class SigninDelegate;
class APP_LIST_EXPORT AppListViewDelegate {
public:
// AppListView owns the delegate.
virtual ~AppListViewDelegate() {}
// Invoked to set the model that AppListView uses.
// Note that AppListView owns the model.
virtual void SetModel(AppListModel* model) = 0;
// Gets the SigninDelegate for the app list. Owned by the AppListViewDelegate.
virtual SigninDelegate* GetSigninDelegate() = 0;
// Gets a path to a shortcut for the given app. Returns asynchronously as the
// shortcut may not exist yet.
virtual void GetShortcutPathForApp(
const std::string& app_id,
const base::Callback<void(const base::FilePath&)>& callback) = 0;
// Invoked when an AppListeItemModelView is activated by click or enter key.
virtual void ActivateAppListItem(AppListItemModel* item,
int event_flags) = 0;
// Invoked to start a new search. Delegate collects query input from
// SearchBoxModel and populates SearchResults. Both models are sub models
// of AppListModel.
virtual void StartSearch() = 0;
// Invoked to stop the current search.
virtual void StopSearch() = 0;
// Invoked to open the search result.
virtual void OpenSearchResult(SearchResult* result, int event_flags) = 0;
// Called to invoke a custom action on |result|. |action_index| corresponds
// to the index of an icon in |result.action_icons()|.
virtual void InvokeSearchResultAction(SearchResult* result,
int action_index,
int event_flags) = 0;
// Invoked to dismiss app list. This may leave the view open but hidden from
// the user.
virtual void Dismiss() = 0;
// Invoked when the app list is closing.
virtual void ViewClosing() = 0;
// Invoked when the app list's activated state changes.
virtual void ViewActivationChanged(bool active) = 0;
// Returns the icon to be displayed in the window and taskbar.
virtual gfx::ImageSkia GetWindowIcon() = 0;
// Returns the name of the current user.
virtual base::string16 GetCurrentUserName() = 0;
// Returns the email of the current user.
virtual base::string16 GetCurrentUserEmail() = 0;
// Open the settings UI.
virtual void OpenSettings() = 0;
// Open the help UI.
virtual void OpenHelp() = 0;
// Open the feedback UI.
virtual void OpenFeedback() = 0;
};
} // namespace app_list
#endif // UI_APP_LIST_APP_LIST_VIEW_DELEGATE_H_