MenuView.java revision 20ac724a3a836bfd362c911f7dc55a61c02b4d44
1bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/* 2bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Copyright (C) 2006 The Android Open Source Project 3bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 4bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 5bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * you may not use this file except in compliance with the License. 6bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * You may obtain a copy of the License at 7bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 8bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * http://www.apache.org/licenses/LICENSE-2.0 9bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 10bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Unless required by applicable law or agreed to in writing, software 11bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * distributed under the License is distributed on an "AS IS" BASIS, 12bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * See the License for the specific language governing permissions and 14bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * limitations under the License. 15bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 16bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 17bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpackage android.support.appcompat.view.menu; 18bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 19bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.appcompat.view.menu.MenuBuilder; 20bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.appcompat.view.menu.MenuItemImpl; 21bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 22bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.graphics.drawable.Drawable; 23bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 24bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/** 2520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Minimal interface for a menu view. {@link #initialize(MenuBuilder)} must be called for the menu 2620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * to be functional. 27bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 28bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * @hide 29bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 30bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpublic interface MenuView { 31bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 32bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell /** 3320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Initializes the menu to the given menu. This should be called after the view is inflated. 3420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 3520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param menu The menu that this MenuView should display. 36bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 3720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void initialize(MenuBuilder menu); 38bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 39bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell /** 4020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Returns the default animations to be used for this menu when entering/exiting. 4120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 4220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @return A resource ID for the default animations to be used for this menu. 43bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 4420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public int getWindowAnimations(); 45bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 46bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell /** 4720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Minimal interface for a menu item view. {@link #initialize(MenuItemImpl, int)} must be 4820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * called for the item to be functional. 49bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 5020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public interface ItemView { 51bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 5220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 5320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Initializes with the provided MenuItemData. This should be called after the view is 5420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * inflated. 5520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 5620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param itemData The item that this ItemView should display. 5720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param menuType The type of this menu, one of {@link MenuBuilder#TYPE_ICON}, {@link 5820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * MenuBuilder#TYPE_EXPANDED}, {@link MenuBuilder#TYPE_DIALOG}). 5920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 6020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void initialize(MenuItemImpl itemData, int menuType); 61bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 6220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 6320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Gets the item data that this view is displaying. 6420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 6520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @return the item data, or null if there is not one 6620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 6720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public MenuItemImpl getItemData(); 68bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 6920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 7020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Sets the title of the item view. 7120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 7220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param title The title to set. 7320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 7420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setTitle(CharSequence title); 75bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 7620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 7720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Sets the enabled state of the item view. 7820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 7920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param enabled Whether the item view should be enabled. 8020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 8120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setEnabled(boolean enabled); 82bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 8320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 8420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Displays the checkbox for the item view. This does not ensure the item view will be 8520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * checked, for that use {@link #setChecked}. 8620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 8720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param checkable Whether to display the checkbox or to hide it 8820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 8920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setCheckable(boolean checkable); 90bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 9120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 9220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Checks the checkbox for the item view. If the checkbox is hidden, it will NOT be made 9320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * visible, call {@link #setCheckable(boolean)} for that. 9420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 9520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param checked Whether the checkbox should be checked 9620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 9720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setChecked(boolean checked); 9820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 9920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 10020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Sets the shortcut for the item. 10120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 10220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param showShortcut Whether a shortcut should be shown(if false, the value of shortcutKey 10320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * should be ignored). 10420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param shortcutKey The shortcut key that should be shown on the ItemView. 10520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 10620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setShortcut(boolean showShortcut, char shortcutKey); 10720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 10820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 10920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Set the icon of this item view. 11020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 11120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @param icon The icon of this item. null to hide the icon. 11220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 11320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setIcon(Drawable icon); 11420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 11520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 11620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Whether this item view prefers displaying the condensed title rather than the normal 11720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * title. If a condensed title is not available, the normal title will be used. 11820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 11920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @return Whether this item view prefers displaying the condensed title. 12020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 12120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public boolean prefersCondensedTitle(); 12220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 12320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /** 12420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Whether this item view shows an icon. 12520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * 12620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * @return Whether this item view shows an icon. 12720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns */ 12820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public boolean showsIcon(); 12920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 130bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell} 131