blob: 26b103d7aa71c1ea0ae3794684c0a8db0f731da8 [file] [log] [blame]
// Copyright 2013 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.
package org.chromium.chrome.browser.contextmenu;
import android.content.Context;
import android.view.ContextMenu;
/**
* A delegate responsible for populating context menus and processing results from
* {@link ContextMenuHelper}.
*/
public interface ContextMenuPopulator {
/**
* Determines whether or not a context menu should be shown for {@code params}.
* @param params The {@link ContextMenuParams} that represent what should be shown in the
* context menu.
* @return Whether or not a context menu should be shown.
*/
public boolean shouldShowContextMenu(ContextMenuParams params);
/**
* Should be used to populate {@code menu} with the correct context menu items.
* @param menu The menu to populate.
* @param context A {@link Context} instance.
* @param params The parameters that represent what should be shown in the context menu.
*/
public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params);
/**
* Called when a context menu item has been selected.
* @param helper The {@link ContextMenuHelper} driving the menu operations.
* @param params The parameters that represent what is being shown in the context menu.
* @param itemId The id of the selected menu item.
* @return Whether or not the selection was handled.
*/
public boolean onItemSelected(ContextMenuHelper helper, ContextMenuParams params, int itemId);
}