2 * Copyright (C) 2006 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package com.actionbarsherlock.internal.view.menu;
19 import android.content.Context;
20 import android.graphics.drawable.Drawable;
21 import android.view.View;
23 import com.actionbarsherlock.view.Menu;
24 import com.actionbarsherlock.view.MenuItem;
25 import com.actionbarsherlock.view.SubMenu;
28 * The model for a sub menu, which is an extension of the menu. Most methods are proxied to
31 public class SubMenuBuilder extends MenuBuilder implements SubMenu {
32 private MenuBuilder mParentMenu;
33 private MenuItemImpl mItem;
35 public SubMenuBuilder(Context context, MenuBuilder parentMenu, MenuItemImpl item) {
38 mParentMenu = parentMenu;
43 public void setQwertyMode(boolean isQwerty) {
44 mParentMenu.setQwertyMode(isQwerty);
48 public boolean isQwertyMode() {
49 return mParentMenu.isQwertyMode();
53 public void setShortcutsVisible(boolean shortcutsVisible) {
54 mParentMenu.setShortcutsVisible(shortcutsVisible);
58 public boolean isShortcutsVisible() {
59 return mParentMenu.isShortcutsVisible();
62 public Menu getParentMenu() {
66 public MenuItem getItem() {
71 public void setCallback(Callback callback) {
72 mParentMenu.setCallback(callback);
76 public MenuBuilder getRootMenu() {
81 boolean dispatchMenuItemSelected(MenuBuilder menu, MenuItem item) {
82 return super.dispatchMenuItemSelected(menu, item) ||
83 mParentMenu.dispatchMenuItemSelected(menu, item);
86 public SubMenu setIcon(Drawable icon) {
91 public SubMenu setIcon(int iconRes) {
92 mItem.setIcon(iconRes);
96 public SubMenu setHeaderIcon(Drawable icon) {
97 return (SubMenu) super.setHeaderIconInt(icon);
100 public SubMenu setHeaderIcon(int iconRes) {
101 return (SubMenu) super.setHeaderIconInt(iconRes);
104 public SubMenu setHeaderTitle(CharSequence title) {
105 return (SubMenu) super.setHeaderTitleInt(title);
108 public SubMenu setHeaderTitle(int titleRes) {
109 return (SubMenu) super.setHeaderTitleInt(titleRes);
112 public SubMenu setHeaderView(View view) {
113 return (SubMenu) super.setHeaderViewInt(view);
117 public boolean expandItemActionView(MenuItemImpl item) {
118 return mParentMenu.expandItemActionView(item);
122 public boolean collapseItemActionView(MenuItemImpl item) {
123 return mParentMenu.collapseItemActionView(item);
127 public String getActionViewStatesKey() {
128 final int itemId = mItem != null ? mItem.getItemId() : 0;
132 return super.getActionViewStatesKey() + ":" + itemId;