summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/ui
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-01-07 19:43:14 -0800
committernicolasroard <nicolasroard@google.com>2013-01-08 11:14:48 -0800
commit962f4d03e92a3aa38202950053b1557e12860624 (patch)
treee86b53a61d9fd82d626cda9b7e7501ca669501a4 /src/com/android/gallery3d/filtershow/ui
parenta4205e4eab691b402e7a6dc1e913a611b7fdc45f (diff)
downloadandroid_packages_apps_Snap-962f4d03e92a3aa38202950053b1557e12860624.tar.gz
android_packages_apps_Snap-962f4d03e92a3aa38202950053b1557e12860624.tar.bz2
android_packages_apps_Snap-962f4d03e92a3aa38202950053b1557e12860624.zip
Refactoring UI editors
bug:7688780 Change-Id: I30f8691788332a01d591435474a84cc352b71138
Diffstat (limited to 'src/com/android/gallery3d/filtershow/ui')
-rw-r--r--src/com/android/gallery3d/filtershow/ui/FramedTextButton.java18
-rw-r--r--src/com/android/gallery3d/filtershow/ui/ImageCurves.java51
2 files changed, 62 insertions, 7 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java b/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
index c717b6e61..c1e4109d2 100644
--- a/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
+++ b/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
@@ -37,8 +37,6 @@ public class FramedTextButton extends ImageButton {
private static int mTrianglePadding = 2;
private static int mTriangleSize = 30;
- private Context mContext = null;
-
public static void setTextSize(int value) {
mTextSize = value;
}
@@ -63,28 +61,34 @@ public class FramedTextButton extends ImageButton {
public void setTextFrom(int itemId) {
switch (itemId) {
case R.id.curve_menu_rgb: {
- setText(mContext.getString(R.string.curves_channel_rgb));
+ setText(getContext().getString(R.string.curves_channel_rgb));
break;
}
case R.id.curve_menu_red: {
- setText(mContext.getString(R.string.curves_channel_red));
+ setText(getContext().getString(R.string.curves_channel_red));
break;
}
case R.id.curve_menu_green: {
- setText(mContext.getString(R.string.curves_channel_green));
+ setText(getContext().getString(R.string.curves_channel_green));
break;
}
case R.id.curve_menu_blue: {
- setText(mContext.getString(R.string.curves_channel_blue));
+ setText(getContext().getString(R.string.curves_channel_blue));
break;
}
}
invalidate();
}
+ public FramedTextButton(Context context) {
+ this(context, null);
+ }
+
public FramedTextButton(Context context, AttributeSet attrs) {
super(context, attrs);
- mContext = context;
+ if (attrs == null) {
+ return;
+ }
TypedArray a = getContext().obtainStyledAttributes(
attrs, R.styleable.ImageButtonTitle);
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index 7b04133ce..5fbfc900f 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -26,7 +26,13 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.os.AsyncTask;
import android.util.AttributeSet;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.MotionEvent;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.PopupMenu;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.filters.ImageFilterCurves;
@@ -62,6 +68,51 @@ public class ImageCurves extends ImageSlave {
resetCurve();
}
+ @Override
+ public boolean useUtilityPanel() {
+ return true;
+ }
+
+ private void showPopupMenu(LinearLayout accessoryViewList) {
+ final FramedTextButton button = (FramedTextButton) accessoryViewList.findViewById(
+ R.id.curvesUtilityButton);
+ if (button == null) {
+ return;
+ }
+ PopupMenu popupMenu = new PopupMenu(getActivity(), button);
+ popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_curves, popupMenu.getMenu());
+ popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ setChannel(item.getItemId());
+ button.setTextFrom(item.getItemId());
+ return true;
+ }
+ });
+ popupMenu.show();
+ }
+
+ @Override
+ public void openUtilityPanel(final LinearLayout accessoryViewList) {
+ View view = accessoryViewList.findViewById(R.id.curvesUtilityButton);
+ if (view == null) {
+ LayoutInflater inflater = (LayoutInflater)getActivity().getSystemService
+ (Context.LAYOUT_INFLATER_SERVICE);
+ view = inflater.inflate(R.layout.filtershow_curves_button, accessoryViewList, false);
+ accessoryViewList.addView(view, view.getLayoutParams());
+ view.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View arg0) {
+ showPopupMenu(accessoryViewList);
+ }
+ });
+ }
+
+ if (view != null) {
+ view.setVisibility(View.VISIBLE);
+ }
+ }
+
public void nextChannel() {
mCurrentCurveIndex = ((mCurrentCurveIndex + 1) % 4);
invalidate();