6679cf38602bce40fb53ee11f43f5be5929dd4b6
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
;