Add ControlButton cloning feature

This commit is contained in:
SerpentSpirale authored and ArtDev committed 2021-08-27 10:46:59 +03:00
1 parent c435db640a
commit 3ef21ba5be
5 files changed
+21 -8

No files matched your search

@@ -133,7 +133,7 @@ public class ControlData implements Cloneable
this.dynamicY = dynamicY;
this.width = width;
this.height = height;
this.isDynamicBtn = true;
this.isDynamicBtn = false;
this.isToggle = isToggle;
this.opacity = opacity;
this.bgColor = bgColor;
@@ -41,12 +41,13 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe
private TextView mEditTextView;
private TextView mDeleteTextView;
private TextView mCloneTextView;
private Object editedButton;
private ControlButton editedButton;
public ActionPopupWindow(HandleView handleView, Object object){
public ActionPopupWindow(HandleView handleView, ControlButton button){
super(handleView);
this.editedButton = object;
this.editedButton = button;
}
@Override
@@ -79,6 +80,12 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe
mContentView.addView(mDeleteTextView);
mDeleteTextView.setText(R.string.global_remove);
mDeleteTextView.setOnClickListener(this);
mCloneTextView = (TextView) inflater.inflate(R.layout.control_action_popup_text, null);
mCloneTextView.setLayoutParams(wrapContent);
mContentView.addView(mCloneTextView);
mCloneTextView.setText(R.string.global_clone);
mCloneTextView.setOnClickListener(this);
}
@Override
@@ -132,6 +139,11 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe
});
alertBuilder.setNegativeButton(android.R.string.cancel, null);
alertBuilder.show();
}else if(view == mCloneTextView) {
ControlData cloneData = editedButton.getProperties().clone();
cloneData.dynamicX = "0.5 * ${screen_width}";
cloneData.dynamicY = "0.5 * ${screen_height}";
((ControlLayout) mHandleView.mView.getParent()).addControlButton(cloneData);
}
hide();
@@ -189,9 +189,9 @@ public abstract class HandleView extends View implements ViewPositionListener, V
getPositionListener().removeSubscriber(this);
}
void showActionPopupWindow(int delay, Object object) {
void showActionPopupWindow(int delay, ControlButton button) {
if (mActionPopupWindow == null) {
mActionPopupWindow = new ActionPopupWindow(this, object);
mActionPopupWindow = new ActionPopupWindow(this, button);
}
if (mActionPopupShower == null) {
mActionPopupShower = new Runnable() {
@@ -50,9 +50,9 @@ public class SelectionEndHandleView extends HandleView
return 0; // mView.getSelectionEnd();
}
public void show(Object object){
public void show(ControlButton button){
super.show();
showActionPopupWindow(0, object);
showActionPopupWindow(0, button);
}
@Override
@@ -118,6 +118,7 @@
<string name="global_load">Load</string>
<string name="global_name">Name</string>
<string name="global_remove">Remove</string>
<string name="global_clone">Clone</string>
<string name="global_restart">Restart</string>
<string name="global_save">Save</string>
<string name="global_unpacking">Unpacking %s</string>