OSDN Git Service

fix menus for all editors
[android-x86/packages-apps-Gallery2.git] / src / com / android / gallery3d / filtershow / editors / EditorDraw.java
index a31c1d3..1cc8aa2 100644 (file)
@@ -18,12 +18,9 @@ package com.android.gallery3d.filtershow.editors;
 
 import android.app.Dialog;
 import android.content.Context;
-import android.util.Log;
-import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.view.WindowManager;
 import android.view.WindowManager.LayoutParams;
 import android.widget.Button;
 import android.widget.FrameLayout;
@@ -35,16 +32,15 @@ import com.android.gallery3d.R;
 import com.android.gallery3d.filtershow.FilterShowActivity;
 import com.android.gallery3d.filtershow.colorpicker.ColorGridDialog;
 import com.android.gallery3d.filtershow.colorpicker.RGBListener;
+import com.android.gallery3d.filtershow.filters.FilterDrawRepresentation;
+import com.android.gallery3d.filtershow.filters.FilterRepresentation;
 import com.android.gallery3d.filtershow.filters.ImageFilterDraw;
 import com.android.gallery3d.filtershow.imageshow.ImageDraw;
-import com.android.gallery3d.filtershow.ui.FramedTextButton;
 
-/**
- * TODO: Insert description here. (generated by hoford)
- */
 public class EditorDraw extends Editor {
     private static final String LOGTAG = "EditorDraw";
     public static final int ID = R.id.editorDraw;
+    public ImageDraw mImageDraw;
 
     public EditorDraw() {
         super(ID);
@@ -53,44 +49,45 @@ public class EditorDraw extends Editor {
     @Override
     public void createEditor(Context context, FrameLayout frameLayout) {
         super.createEditor(context, frameLayout);
-        mView = mImageShow = new ImageDraw(context);
+        mView = mImageShow = mImageDraw = new ImageDraw(context);
+        mImageDraw.setEditor(this);
+
     }
 
     @Override
-    public boolean useUtilityPanel() {
-        return true;
+    public void reflectCurrentFilter() {
+        super.reflectCurrentFilter();
+        FilterRepresentation rep = getLocalRepresentation();
+
+        if (rep != null && getLocalRepresentation() instanceof FilterDrawRepresentation) {
+            FilterDrawRepresentation drawRep = (FilterDrawRepresentation) getLocalRepresentation();
+            mImageDraw.setFilterDrawRepresentation(drawRep);
+        }
     }
 
     @Override
     public void openUtilityPanel(final LinearLayout accessoryViewList) {
-        View view = accessoryViewList.findViewById(R.id.drawUtilityButton);
-        if (view == null) {
-            LayoutInflater inflater = (LayoutInflater) mImageShow.getActivity().getSystemService
-                    (Context.LAYOUT_INFLATER_SERVICE);
-            view = inflater.inflate(R.layout.filtershow_draw_button, accessoryViewList, false);
-            accessoryViewList.addView(view, view.getLayoutParams());
-            view.setOnClickListener(new OnClickListener() {
-                    @Override
-                public void onClick(View arg0) {
-                    showPopupMenu(accessoryViewList);
-                }
-            });
-        }
+        Button view = (Button) accessoryViewList.findViewById(R.id.applyEffect);
+        view.setText(mContext.getString(R.string.draw_style));
+        view.setOnClickListener(new OnClickListener() {
 
-        if (view != null) {
-            view.setVisibility(View.VISIBLE);
-        }
+                @Override
+            public void onClick(View arg0) {
+                showPopupMenu(accessoryViewList);
+            }
+        });
     }
 
     private void showPopupMenu(LinearLayout accessoryViewList) {
-        final FramedTextButton button = (FramedTextButton) accessoryViewList.findViewById(
-                R.id.drawUtilityButton);
+        final Button button = (Button) accessoryViewList.findViewById(
+                R.id.applyEffect);
         if (button == null) {
             return;
         }
-        PopupMenu popupMenu = new PopupMenu(mImageShow.getActivity(), button);
+        final PopupMenu popupMenu = new PopupMenu(mImageShow.getActivity(), button);
         popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_draw, popupMenu.getMenu());
         popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+
             @Override
             public boolean onMenuItemClick(MenuItem item) {
                 ImageFilterDraw filter = (ImageFilterDraw) mImageShow.getCurrentFilter();
@@ -98,13 +95,19 @@ public class EditorDraw extends Editor {
                     showColorGrid(item);
                 } else if (item.getItemId() == R.id.draw_menu_size) {
                     showSizeDialog(item);
-                } else if (item.getItemId() == R.id.draw_menu_style_brush) {
+                } else if (item.getItemId() == R.id.draw_menu_style_brush_marker) {
+                    ImageDraw idraw = (ImageDraw) mImageShow;
+                    idraw.setStyle(ImageFilterDraw.BRUSH_STYLE_MARKER);
+                } else if (item.getItemId() == R.id.draw_menu_style_brush_spatter) {
                     ImageDraw idraw = (ImageDraw) mImageShow;
-                    idraw.setStyle(ImageFilterDraw.BRUSH_STYLE);
+                    idraw.setStyle(ImageFilterDraw.BRUSH_STYLE_SPATTER);
                 } else if (item.getItemId() == R.id.draw_menu_style_line) {
                     ImageDraw idraw = (ImageDraw) mImageShow;
                     idraw.setStyle(ImageFilterDraw.SIMPLE_STYLE);
-
+                } else if (item.getItemId() == R.id.draw_menu_clear) {
+                    ImageDraw idraw = (ImageDraw) mImageShow;
+                    idraw.resetParameter();
+                    commitLocalRepresentation();
                 }
                 mView.invalidate();
                 return true;
@@ -124,6 +127,7 @@ public class EditorDraw extends Editor {
         Button button = (Button) dialog.findViewById(R.id.sizeAcceptButton);
         button.setOnClickListener(new OnClickListener() {
 
+            @Override
             public void onClick(View arg0) {
                 int p = bar.getProgress();
                 ImageDraw idraw = (ImageDraw) mImageShow;
@@ -133,9 +137,10 @@ public class EditorDraw extends Editor {
         });
         dialog.show();
     }
+
     public void showColorGrid(final MenuItem item) {
         RGBListener cl = new RGBListener() {
-                @Override
+            @Override
             public void setColor(int rgb) {
                 ImageDraw idraw = (ImageDraw) mImageShow;
                 idraw.setColor(rgb);
@@ -145,5 +150,4 @@ public class EditorDraw extends Editor {
         cpd.show();
         LayoutParams params = cpd.getWindow().getAttributes();
     }
-
 }