package com.actionbarsherlock.internal.view.menu;
import android.content.ComponentName;
import android.content.Intent;
import android.support.v4.view.Menu;
import android.support.v4.view.MenuItem;
import android.support.v4.view.SubMenu;
import android.view.KeyEvent;
/**
* Wrapper around a native Menu instance which implements our version of the
* Menu interface.
*/
public class MenuWrapper implements Menu {
/** Native menu. */
private final android.view.Menu mMenu;
/**
* Create a new wrapped instance.
*
* @param menu Native menu.
*/
public MenuWrapper(android.view.Menu menu) {
this.mMenu = menu;
}
/**
* Get the native menu instance we are wrapping.
*
* @return Native menu.
*/
android.view.Menu unwrap() {
return mMenu;
}
@Override
public MenuItem add(CharSequence title) {
return new MenuItemWrapper(mMenu.add(title));
}
@Override
public MenuItem add(int groupId, int itemId, int order, int titleRes) {
return new MenuItemWrapper(mMenu.add(groupId, itemId, order, titleRes));
}
@Override
public MenuItem add(int titleRes) {
return new MenuItemWrapper(mMenu.add(titleRes));
}
@Override
public MenuItem add(int groupId, int itemId, int order, CharSequence title) {
return new MenuItemWrapper(mMenu.add(groupId, itemId, order, title));
}
@Override
public int addIntentOptions(int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, Intent intent, int flags, android.view.MenuItem[] outSpecificItems) {
return mMenu.addIntentOptions(groupId, itemId, order, caller, specifics, intent, flags, outSpecificItems);
}
@Override
public SubMenu addSubMenu(CharSequence title) {
return new SubMenuWrapper(mMenu.addSubMenu(title));
}
@Override
public SubMenu addSubMenu(int titleRes) {
return new SubMenuWrapper(mMenu.addSubMenu(titleRes));
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) {
return new SubMenuWrapper(mMenu.addSubMenu(groupId, itemId, order, title));
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) {
return new SubMenuWrapper(mMenu.addSubMenu(groupId, itemId, order, titleRes));
}
@Override
public void clear() {
mMenu.clear();
}
@Override
public void close() {
mMenu.close();
}
@Override
public MenuItem findItem(int id) {
android.view.MenuItem item = mMenu.findItem(id);
return (item != null) ? new MenuItemWrapper(item) : null;
}
@Override
public MenuItem getItem(int index) {
return new MenuItemWrapper(mMenu.getItem(index));
}
@Override
public boolean hasVisibleItems() {
return mMenu.hasVisibleItems();
}
@Override
public boolean isShortcutKey(int keyCode, KeyEvent event) {
return mMenu.isShortcutKey(keyCode, event);
}
@Override
public boolean performIdentifierAction(int id, int flags) {
return mMenu.performIdentifierAction(id, flags);
}
@Override
public boolean performShortcut(int keyCode, KeyEvent event, int flags) {
return mMenu.performShortcut(keyCode, event, flags);
}
@Override
public void removeGroup(int groupId) {
mMenu.removeGroup(groupId);
}
@Override
public void removeItem(int id) {
mMenu.removeItem(id);
}
@Override
public void setGroupCheckable(int group, boolean checkable, boolean exclusive) {
mMenu.setGroupCheckable(group, checkable, exclusive);
}
@Override
public void setGroupEnabled(int group, boolean enabled) {
mMenu.setGroupEnabled(group, enabled);
}
@Override
public void setGroupVisible(int group, boolean visible) {
mMenu.setGroupVisible(group, visible);
}
@Override
public void setQwertyMode(boolean isQwerty) {
mMenu.setQwertyMode(isQwerty);
}
@Override
public int size() {
return mMenu.size();
}
}