OSDN Git Service

tiny planet fix
[android-x86/packages-apps-Gallery2.git] / src / com / android / gallery3d / filtershow / editors / Editor.java
index 69266ff..1e239e6 100644 (file)
 package com.android.gallery3d.filtershow.editors;
 
 import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.text.Html;
+import android.util.AttributeSet;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.*;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.PopupMenu;
+import android.widget.SeekBar;
 import android.widget.SeekBar.OnSeekBarChangeListener;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.PanelController;
 import com.android.gallery3d.filtershow.cache.ImageLoader;
+import com.android.gallery3d.filtershow.controller.Control;
 import com.android.gallery3d.filtershow.filters.FilterRepresentation;
 import com.android.gallery3d.filtershow.imageshow.ImageShow;
 import com.android.gallery3d.filtershow.imageshow.MasterImage;
@@ -37,12 +43,13 @@ import com.android.gallery3d.filtershow.presets.ImagePreset;
 /**
  * Base class for Editors Must contain a mImageShow and a top level view
  */
-public class Editor implements OnSeekBarChangeListener {
+public class Editor implements OnSeekBarChangeListener, SwapButton.SwapButtonListener {
     protected Context mContext;
     protected View mView;
     protected ImageShow mImageShow;
     protected FrameLayout mFrameLayout;
     protected SeekBar mSeekBar;
+    Button mEditTitle;
     protected PanelController mPanelController;
     protected int mID;
     private final String LOGTAG = "Editor";
@@ -57,7 +64,7 @@ public class Editor implements OnSeekBarChangeListener {
     }
 
     public String calculateUserMessage(Context context, String effectName, Object parameterValue) {
-        String apply = context.getString(R.string.apply_effect);
+        String apply = "";
         if (mShowParameter == SHOW_VALUE_INT) {
             apply += " " + effectName + " " + parameterValue;
         } else {
@@ -74,7 +81,6 @@ public class Editor implements OnSeekBarChangeListener {
         return mID;
     }
 
-
     public byte showParameterValue() {
         return mShowParameter;
     }
@@ -83,6 +89,12 @@ public class Editor implements OnSeekBarChangeListener {
         return true;
     }
 
+    public void setUpEditorUI(View actionButton, View editControl, Button editTitle) {
+        this.mEditTitle = editTitle;
+        setMenuIcon(true);
+        setUtilityPanelUI(actionButton, editControl);
+    }
+
     public boolean showsPopupIndicator() {
         return true;
     }
@@ -92,17 +104,28 @@ public class Editor implements OnSeekBarChangeListener {
      * @param editControl this is the black area for sliders etc
      */
     public void setUtilityPanelUI(View actionButton, View editControl) {
-        mSeekBar = (SeekBar) editControl.findViewById(R.id.primarySeekBar);
+
+        AttributeSet aset;
+        Context context = editControl.getContext();
+        LayoutInflater inflater =
+                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        LinearLayout lp = (LinearLayout) inflater.inflate(
+                R.layout.filtershow_seekbar, (ViewGroup) editControl, true);
+        mSeekBar = (SeekBar) lp.findViewById(R.id.primarySeekBar);
+        mSeekBar.setOnSeekBarChangeListener(this);
+
         if (showsSeekBar()) {
             mSeekBar.setOnSeekBarChangeListener(this);
             mSeekBar.setVisibility(View.VISIBLE);
         } else {
             mSeekBar.setVisibility(View.INVISIBLE);
         }
+
         Button button = (Button) actionButton.findViewById(R.id.applyEffect);
         if (button != null) {
             if (showsPopupIndicator()) {
-                button.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, R.drawable.filtershow_menu_marker, 0);
+                button.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0,
+                        R.drawable.filtershow_menu_marker, 0);
             } else {
                 button.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, 0);
             }
@@ -191,6 +214,7 @@ public class Editor implements OnSeekBarChangeListener {
     public void commitLocalRepresentation() {
         ImagePreset preset = MasterImage.getImage().getPreset();
         preset.updateFilterRepresentation(getLocalRepresentation());
+        mPanelController.onNewValue(-1);
     }
 
     /**
@@ -205,19 +229,29 @@ public class Editor implements OnSeekBarChangeListener {
     }
 
     public void openUtilityPanel(LinearLayout mAccessoryViewList) {
+        setMenuIcon(false);
         if (mImageShow != null) {
             mImageShow.openUtilityPanel(mAccessoryViewList);
         }
     }
 
+    protected void setMenuIcon(boolean on) {
+        mEditTitle.setCompoundDrawablesRelativeWithIntrinsicBounds(
+                0, 0, on ? R.drawable.filtershow_menu_marker : 0, 0);
+    }
     protected void createMenu(int[] strId, View button) {
         PopupMenu pmenu = new PopupMenu(mContext, button);
         Menu menu = pmenu.getMenu();
         for (int i = 0; i < strId.length; i++) {
             menu.add(Menu.NONE, Menu.FIRST + i, 0, mContext.getString(strId[i]));
         }
+        setMenuIcon(true);
+
     }
 
+    public Control[] getControls() {
+        return null;
+    }
     @Override
     public void onStartTrackingTouch(SeekBar arg0) {
 
@@ -228,4 +262,17 @@ public class Editor implements OnSeekBarChangeListener {
 
     }
 
+    @Override
+    public void swapLeft(MenuItem item) {
+
+    }
+
+    @Override
+    public void swapRight(MenuItem item) {
+
+    }
+
+    public void detach() {
+
+    }
 }