1 package org.dolphinemu.dolphinemu.features.settings.ui; 2 3 import androidx.annotation.NonNull; 4 5 public enum MenuTag 6 { 7 CONFIG("config"), 8 CONFIG_GENERAL("config_general"), 9 CONFIG_INTERFACE("config_interface"), 10 CONFIG_AUDIO("config_audio"), 11 CONFIG_PATHS("config_paths"), 12 CONFIG_GAME_CUBE("config_gamecube"), 13 CONFIG_WII("config_wii"), 14 CONFIG_ADVANCED("config_advanced"), 15 CONFIG_LOG("config_log"), 16 WIIMOTE("wiimote"), 17 WIIMOTE_EXTENSION("wiimote_extension"), 18 GCPAD_TYPE("gc_pad_type"), 19 GRAPHICS("graphics"), 20 HACKS("hacks"), 21 DEBUG("debug"), 22 ENHANCEMENTS("enhancements"), 23 STEREOSCOPY("stereoscopy"), 24 GCPAD_1("gcpad", 0), 25 GCPAD_2("gcpad", 1), 26 GCPAD_3("gcpad", 2), 27 GCPAD_4("gcpad", 3), 28 WIIMOTE_1("wiimote", 4), 29 WIIMOTE_2("wiimote", 5), 30 WIIMOTE_3("wiimote", 6), 31 WIIMOTE_4("wiimote", 7), 32 WIIMOTE_EXTENSION_1("wiimote_extension", 4), 33 WIIMOTE_EXTENSION_2("wiimote_extension", 5), 34 WIIMOTE_EXTENSION_3("wiimote_extension", 6), 35 WIIMOTE_EXTENSION_4("wiimote_extension", 7); 36 37 private String tag; 38 private int subType = -1; 39 MenuTag(String tag)40 MenuTag(String tag) 41 { 42 this.tag = tag; 43 } 44 MenuTag(String tag, int subtype)45 MenuTag(String tag, int subtype) 46 { 47 this.tag = tag; 48 this.subType = subtype; 49 } 50 51 @NonNull 52 @Override toString()53 public String toString() 54 { 55 if (subType != -1) 56 { 57 return tag + subType; 58 } 59 60 return tag; 61 } 62 getTag()63 public String getTag() 64 { 65 return tag; 66 } 67 getSubType()68 public int getSubType() 69 { 70 return subType; 71 } 72 isGCPadMenu()73 public boolean isGCPadMenu() 74 { 75 return this == GCPAD_1 || this == GCPAD_2 || this == GCPAD_3 || this == GCPAD_4; 76 } 77 isWiimoteMenu()78 public boolean isWiimoteMenu() 79 { 80 return this == WIIMOTE_1 || this == WIIMOTE_2 || this == WIIMOTE_3 || this == WIIMOTE_4; 81 } 82 isWiimoteExtensionMenu()83 public boolean isWiimoteExtensionMenu() 84 { 85 return this == WIIMOTE_EXTENSION_1 || this == WIIMOTE_EXTENSION_2 86 || this == WIIMOTE_EXTENSION_3 || this == WIIMOTE_EXTENSION_4; 87 } 88 getGCPadMenuTag(int subtype)89 public static MenuTag getGCPadMenuTag(int subtype) 90 { 91 return getMenuTag("gcpad", subtype); 92 } 93 getWiimoteMenuTag(int subtype)94 public static MenuTag getWiimoteMenuTag(int subtype) 95 { 96 return getMenuTag("wiimote", subtype); 97 } 98 getWiimoteExtensionMenuTag(int subtype)99 public static MenuTag getWiimoteExtensionMenuTag(int subtype) 100 { 101 return getMenuTag("wiimote_extension", subtype); 102 } 103 getMenuTag(String tag, int subtype)104 private static MenuTag getMenuTag(String tag, int subtype) 105 { 106 for (MenuTag menuTag : MenuTag.values()) 107 { 108 if (menuTag.tag.equals(tag) && menuTag.subType == subtype) return menuTag; 109 } 110 111 throw new IllegalArgumentException("You are asking for a menu that is not available or " + 112 "passing a wrong subtype"); 113 } 114 } 115