19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.view;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
197b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbyeimport android.annotation.DrawableRes;
207b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbyeimport android.annotation.StringRes;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.drawable.Drawable;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Subclass of {@link Menu} for sub menus.
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sub menus do not support item icons, or nested sub menus.
27558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez *
28558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <div class="special reference">
29558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <h3>Developer Guides</h3>
30558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <p>For information about creating menus, read the
31558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * <a href="{@docRoot}guide/topics/ui/menus.html">Menus</a> developer guide.</p>
32558459fe85f56f29a6ed6a4d0adb4a0bd6665884Joe Fernandez * </div>
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface SubMenu extends Menu {
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the submenu header's title to the title given in <var>titleRes</var>
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * resource identifier.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param titleRes The string resource identifier used for the title.
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
437b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbye    public SubMenu setHeaderTitle(@StringRes int titleRes);
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the submenu header's title to the title given in <var>title</var>.
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param title The character sequence used for the title.
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public SubMenu setHeaderTitle(CharSequence title);
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the submenu header's icon to the icon given in <var>iconRes</var>
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * resource id.
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param iconRes The resource identifier used for the icon.
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
607b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbye    public SubMenu setHeaderIcon(@DrawableRes int iconRes);
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the submenu header's icon to the icon given in <var>icon</var>
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link Drawable}.
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param icon The {@link Drawable} used for the icon.
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public SubMenu setHeaderIcon(Drawable icon);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Sets the header of the submenu to the {@link View} given in
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <var>view</var>. This replaces the header title and icon (and those
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * replace this).
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param view The {@link View} used for the header.
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public SubMenu setHeaderView(View view);
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clears the header of the submenu.
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void clearHeader();
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Change the icon associated with this submenu's item in its parent menu.
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see MenuItem#setIcon(int)
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param iconRes The new icon (as a resource ID) to be displayed.
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
937b9c912f536925ac6ec43935d6e97506851b33d6Tor Norbye    public SubMenu setIcon(@DrawableRes int iconRes);
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Change the icon associated with this submenu's item in its parent menu.
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see MenuItem#setIcon(Drawable)
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param icon The new icon (as a Drawable) to be displayed.
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return This SubMenu so additional setters can be called.
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public SubMenu setIcon(Drawable icon);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the {@link MenuItem} that represents this submenu in the parent
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * menu.  Use this for setting additional item attributes.
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The {@link MenuItem} that launches the submenu when invoked.
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public MenuItem getItem();
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
112