aboutsummaryrefslogtreecommitdiff
path: root/src/org/happysanta/gd/Menu/ActionMenuElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/happysanta/gd/Menu/ActionMenuElement.java')
-rwxr-xr-xsrc/org/happysanta/gd/Menu/ActionMenuElement.java141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/org/happysanta/gd/Menu/ActionMenuElement.java b/src/org/happysanta/gd/Menu/ActionMenuElement.java
new file mode 100755
index 0000000..fb0b706
--- /dev/null
+++ b/src/org/happysanta/gd/Menu/ActionMenuElement.java
@@ -0,0 +1,141 @@
+package org.happysanta.gd.Menu;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import org.happysanta.gd.Menu.Views.MenuImageView;
+import org.happysanta.gd.Menu.Views.MenuTextView;
+import org.happysanta.gd.R;
+
+import static org.happysanta.gd.Helpers.getDp;
+import static org.happysanta.gd.Helpers.getGDActivity;
+
+public class ActionMenuElement
+ extends ClickableMenuElement
+ implements MenuHandler, MenuElement {
+
+ protected static final int DISABLED_COLOR = 0xff999999;
+ public static final int LOCK_IMAGE_MARGIN_RIGHT = 5;
+ public static final int locks[] = new int[]{
+ R.drawable.s_lock0,
+ R.drawable.s_lock1,
+ R.drawable.s_lock2
+ };
+
+ public static final int LINE_SPACING = 15;
+ public static final int X_OFFSET = 48;
+
+ public static final int OK = 0;
+ public static final int BACK = 1;
+ public static final int EXIT = 2;
+ public static final int YES = 3;
+ public static final int NO = 4;
+ public static final int PLAY_MENU = 5;
+ public static final int GO_TO_MAIN = 6;
+ public static final int RESTART = 7;
+ public static final int NEXT = 8;
+ public static final int CONTINUE = 9;
+ public static final int INSTALL = 10;
+ public static final int LOAD = 11;
+ public static final int SELECT_FILE = 12;
+ public static final int DELETE = 13;
+ public static final int RESTART_WITH_NEW_LEVEL = 14;
+ public static final int SEND_LOGS = 15;
+
+ protected MenuHandler handler;
+ protected boolean isLocked = false;
+ protected boolean isBlackLock = true;
+ protected MenuImageView lockImage = null;
+
+ protected int actionValue = -1;
+
+ public ActionMenuElement(String s, int value, MenuHandler handler) {
+ actionValue = value;
+ this.handler = handler;
+
+ text = s;
+
+ createAllViews();
+ }
+
+ @Override
+ protected void createAllViews() {
+ super.createAllViews();
+
+ Context context = getGDActivity();
+ lockImage = new MenuImageView(context);
+ lockImage.setScaleType(ImageView.ScaleType.CENTER);
+ lockImage.setVisibility(View.GONE);
+
+ LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
+ lp.setMargins(0, 0, getDp(ActionMenuElement.LOCK_IMAGE_MARGIN_RIGHT), 0);
+ lockImage.setLayoutParams(lp);
+
+ layout.addView(lockImage, 1);
+ }
+
+ public ActionMenuElement(String s, MenuHandler handler/*, MenuScreen screen*/) {
+ this(s, -1, handler);
+ }
+
+ public int getActionValue() {
+ return actionValue;
+ }
+
+ public void setHandler(MenuHandler hander) {
+ this.handler = hander;
+ }
+
+ public void setLock(boolean flag, boolean flag1) {
+ isLocked = flag;
+ isBlackLock = flag1;
+
+ lockImage.setVisibility(isLocked ? View.VISIBLE : View.GONE);
+ lockImage.setImageResource(locks[isBlackLock ? 0 : 1]);
+ }
+
+ @Override
+ public void setText(String s) {
+ text = s;
+ updateViewText();
+ }
+
+ @Override
+ public void performAction(int k) {
+ if (disabled || handler == null) return;
+
+ if (k == MenuScreen.KEY_FIRE) {
+ handler.handleAction(this);
+ }
+ }
+
+ @Override
+ protected void onHighlightChanged() {
+ lockImage.setImageResource(locks[isHighlighted ? 2 : (isBlackLock ? 0 : 1)]);
+ }
+
+ @Override
+ public MenuScreen getCurrentMenu() {
+ return null;
+ }
+
+ @Override
+ public void setCurrentMenu(MenuScreen e1, boolean flag) {
+ }
+
+ @Override
+ public void handleAction(MenuElement item) {
+ }
+
+ public void setDisabled(boolean disabled) {
+ this.disabled = disabled;
+
+ if (disabled) {
+ ((MenuTextView) textView).setTextColor(DISABLED_COLOR);
+ } else {
+ ((MenuTextView) textView).setTextColor(defaultColorStateList());
+ }
+ }
+
+}