2 * Copyright (C) 2010 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.android.gallery3d.ui;
19 import android.content.Context;
20 import android.view.Menu;
21 import android.view.MenuItem;
22 import android.view.View;
23 import android.view.View.OnClickListener;
24 import android.widget.Button;
25 import android.widget.PopupMenu;
26 import android.widget.PopupMenu.OnMenuItemClickListener;
28 import com.android.gallery3d.R;
30 import java.util.ArrayList;
32 public class CustomMenu implements OnMenuItemClickListener {
33 @SuppressWarnings("unused")
34 private static final String TAG = "FilterMenu";
36 public static class DropDownMenu {
37 private Button mButton;
38 private PopupMenu mPopupMenu;
41 public DropDownMenu(Context context, Button button, int menuId,
42 OnMenuItemClickListener listener) {
44 mPopupMenu = new PopupMenu(context, mButton);
45 mMenu = mPopupMenu.getMenu();
46 mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
47 mPopupMenu.setOnMenuItemClickListener(listener);
48 mButton.setOnClickListener(new OnClickListener() {
49 public void onClick(View v) {
55 public MenuItem findItem(int id) {
56 return mMenu.findItem(id);
59 public void setTitle(CharSequence title) {
60 mButton.setText(title);
66 private Context mContext;
67 private ArrayList<DropDownMenu> mMenus;
68 private OnMenuItemClickListener mListener;
70 public CustomMenu(Context context) {
72 mMenus = new ArrayList<DropDownMenu>();
75 public DropDownMenu addDropDownMenu(Button button, int menuId) {
76 DropDownMenu menu = new DropDownMenu(mContext, button, menuId, this);
81 public void setOnMenuItemClickListener(OnMenuItemClickListener listener) {
85 public boolean onMenuItemClick(MenuItem item) {
86 if (mListener != null) {
87 return mListener.onMenuItemClick(item);