From 57db2291913d15e9f05932762444e51b028ac4bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 30 Sep 2023 09:19:59 +0200 Subject: [PATCH] ABCExplorer - rest of icons --- graphics/abcexception16.png | Bin 0 -> 584 bytes graphics/abcexplorer_items.svg | 68 +++- graphics/abcnamespace16.png | Bin 569 -> 552 bytes .../flash/gui/abc/ABCExplorerDialog.java | 336 ++++++++++++------ .../flash/gui/graphics/abcbulletblue16.png | Bin 0 -> 5247 bytes .../flash/gui/graphics/abcbulletgray16.png | Bin 0 -> 281 bytes .../flash/gui/graphics/abccode16.png | Bin 0 -> 621 bytes .../flash/gui/graphics/abcexception16.png | Bin 0 -> 584 bytes .../flash/gui/graphics/abcflags16.png | Bin 0 -> 587 bytes .../flash/gui/graphics/abcnamespace16.png | Bin 569 -> 552 bytes .../flash/gui/graphics/abctraits16.png | Bin 0 -> 600 bytes 11 files changed, 282 insertions(+), 122 deletions(-) create mode 100644 graphics/abcexception16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/abcbulletblue16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/abcbulletgray16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/abccode16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/abcexception16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/abcflags16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/abctraits16.png diff --git a/graphics/abcexception16.png b/graphics/abcexception16.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb7aec74f811af391b8b7b20a5c3130f4704b3b GIT binary patch literal 584 zcmV-O0=NB%P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10o6%F zK~yM_b<#U)Q~?l%;b)WGc#?B+F$7bj5e#@M>_iYvBZ^%LEwoFgh#=@65G)kD6!{He zu(A+A>_mx8v~#vuBgljD>Ms1qZ%j;Ctu7jEI12fIGcZx~V7R?b=43 zQpvc6(iS7@=goQYd7?}#5$}nIsGJR(j|%a}#lIlzrG9J@|ZLK7SRsEJM-qU#fV zA4v;+RAw0JZ!>KmMn>eTs~WZ1U&TJ-0+o&?X$vY8^jy4X*OxDLFD^Pzt=cs;#f}{< zFvWK=-Qjb6ejE=9g}6`LCA!Evw2hISJ*&C2 zq`9^x9UD{Hxzp;aSB8!sm+afu@@bqaxOKS@Yio?U2b8~;d_Kwvj zPi!9_H#ae%{Pd~K-d@R`J(AH;pI*FZ`2rH^GsHCUd|)6}o;{0*h#!qc{EqdNmAJou ze@qg$h!XW;k=iod88)g_(?^czJ97* + + + + @@ -171,6 +183,16 @@ y1="3.5785913" x2="0.48484141" y2="0.47329757" /> + S diff --git a/graphics/abcnamespace16.png b/graphics/abcnamespace16.png index 1edd1a2aa52cf7da6a4f39d3e87a61a2b94a52fb..d9f33bdaa382366d6b82b66e5de9677581bee924 100644 GIT binary patch delta 468 zcmV;_0W1Ew1gHd%UVpVoL_t(Ijir-6NLx`D#eettO1wAJArz-X6e=QtxVh=%RJypB zRdE()Hz)sK914!Q6$C-Vp+OWxr`n+bO$SGLgF=a7c>i+q?{-PTYg1B-cR3&5y_|c_ z$N7XYhSwY$KnT&4Qfh!Go%sW!buA2I#u&>6kW%XBAn5l14}b7m*sIPdRp}@oauI#l zi>R%{Zp-TRdx&@Q};XQ$8*&@f?QacXts=@nL(L+p8-sayc48@HU<1{pxCm zz-kxCOoof&V>TBTQOP8(>*D)9Zll5H*;z*B=166;6t}i0dtS$a)wYlr9VHfz(-eZs zg9F~B)5M2|34i+fu$AJ`ad>nCpYGsA*dwXcWxxS{bw#LZ%IunHg^=g&Jo15+-e$D48-QDqN zdYXk|k;48yRlwJphm#ZTQz@`*?D27GnM{X37-NVj6-{pbBS__^C;WPyaBvVGC@WPl zK_Fk00}rSq5`>X{mxcccQX@hjj4=oynzoesrHceWYnjAr*ZCLw>Ffn8)(*u00000< KMNUMnLSTX|(dAnJ delta 485 zcmV#4(gD&xd{CSS_o2v456LG4i=$5^5Z4Omv5IOKH8F6yvsS9 zd-IPds=Oj5)Fu-3M}H-DRM9jF71UL2Oc_Po}B z0ilcV!(l*uCQhH$u#OGj>%|2v*QGN$N9n3p8nM=wbPe!9(um_InM&zxy{;$A%X+c9t5?;k##1T13<52k zpKE+>PR}GodVc@|2@N3Xx;)C|*jrtt1GIqH^fWe^q?pN&SXkh3u}CANAQCnaAius& z`QU)l<73*uw`P-Usl@E|HbFej`}uilmzM(*BYg&^XJ-UgSA4Eic)GR4mvWgFP$`vo zm(NqH)rii_5cobn8`m5L-&j34;bA_{$HPN1Yip!eR$g$XrihP?aW|La)8;1KXq5Z= z`}h+R0{|n5nCJN$|1n4n;D_h6)NI-t&B5RDKP3FCW4IQC0E{GzF flagList = new ArrayList<>(); if ((t.kindFlags & Trait.ATTR_Final) > 0) { @@ -779,18 +869,18 @@ public class ABCExplorerDialog extends AppDialog { if ((t.kindFlags & Trait.ATTR_0x8) > 0) { flagList.add("0x8"); } - return new SimpleValue(parent, index, "kind_flags: " + String.format("0x%02X", t.kindFlags) + (flagList.isEmpty() ? "" : " (" + String.join(", ", flagList) + ")")); + return new SimpleValue(parent, index, "kind_flags: " + String.format("0x%02X", t.kindFlags) + (flagList.isEmpty() ? "" : " (" + String.join(", ", flagList) + ")"), TreeIcon.FLAGS); } if (t instanceof TraitSlotConst) { TraitSlotConst tsc = (TraitSlotConst) t; switch (index) { case 3: - return new SimpleValue(parent, index, "slot_id: " + tsc.slot_id); + return new SimpleValue(parent, index, "slot_id: " + tsc.slot_id, TreeIcon.SLOT_ID); case 4: return createValueWithIndex(parent, index, tsc.type_index, TreeType.CONSTANT_MULTINAME, "type: "); case 5: if (tsc.value_index == 0) { - return new SimpleValue(parent, index, "value_index: null"); + return new SimpleValue(parent, index, "value_index: null", TreeIcon.VALUE_INDEX); } switch (tsc.value_kind) { case ValueKind.CONSTANT_Int: @@ -807,7 +897,7 @@ public class ABCExplorerDialog extends AppDialog { case ValueKind.CONSTANT_False: case ValueKind.CONSTANT_Null: case ValueKind.CONSTANT_Undefined: - return new SimpleValue(parent, index, "value_index: " + tsc.value_index); + return new SimpleValue(parent, index, "value_index: " + tsc.value_index, TreeIcon.VALUE_INDEX); case ValueKind.CONSTANT_Namespace: case ValueKind.CONSTANT_PackageInternalNs: case ValueKind.CONSTANT_ProtectedNamespace: @@ -819,35 +909,35 @@ public class ABCExplorerDialog extends AppDialog { case 6: switch (tsc.value_kind) { case ValueKind.CONSTANT_Int: - return new SimpleValue(parent, index, "value_kind: Integer"); + return new SimpleValue(parent, index, "value_kind: Integer", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_UInt: - return new SimpleValue(parent, index, "value_kind: UInteger"); + return new SimpleValue(parent, index, "value_kind: UInteger", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Double: - return new SimpleValue(parent, index, "value_kind: Double"); + return new SimpleValue(parent, index, "value_kind: Double", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_DecimalOrFloat: //?? or float ?? - return new SimpleValue(parent, index, "value_kind: Decimal"); + return new SimpleValue(parent, index, "value_kind: Decimal", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Utf8: - return new SimpleValue(parent, index, "value_kind: String"); + return new SimpleValue(parent, index, "value_kind: String", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_True: - return new SimpleValue(parent, index, "value_kind: True"); + return new SimpleValue(parent, index, "value_kind: True", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_False: - return new SimpleValue(parent, index, "value_kind: False"); + return new SimpleValue(parent, index, "value_kind: False", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Null: - return new SimpleValue(parent, index, "value_kind: Null"); + return new SimpleValue(parent, index, "value_kind: Null", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Undefined: - return new SimpleValue(parent, index, "value_kind: Undefined"); + return new SimpleValue(parent, index, "value_kind: Undefined", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Namespace: - return new SimpleValue(parent, index, "value_kind: Namespace"); + return new SimpleValue(parent, index, "value_kind: Namespace", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_PackageInternalNs: - return new SimpleValue(parent, index, "value_kind: PackageInternalNs"); + return new SimpleValue(parent, index, "value_kind: PackageInternalNs", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_ProtectedNamespace: - return new SimpleValue(parent, index, "value_kind: ProtectedNamespace"); + return new SimpleValue(parent, index, "value_kind: ProtectedNamespace", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_ExplicitNamespace: - return new SimpleValue(parent, index, "value_kind: ExplicitNamespace"); + return new SimpleValue(parent, index, "value_kind: ExplicitNamespace", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_StaticProtectedNs: - return new SimpleValue(parent, index, "value_kind: StaticProtectedNs"); + return new SimpleValue(parent, index, "value_kind: StaticProtectedNs", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_PrivateNs: - return new SimpleValue(parent, index, "value_kind: PrivateNamespace"); + return new SimpleValue(parent, index, "value_kind: PrivateNamespace", TreeIcon.VALUE_KIND); } } currentIndex = 7; @@ -856,7 +946,7 @@ public class ABCExplorerDialog extends AppDialog { TraitMethodGetterSetter tmgs = (TraitMethodGetterSetter) t; switch (index) { case 3: - return new SimpleValue(parent, index, "disp_id: " + tmgs.disp_id); + return new SimpleValue(parent, index, "disp_id: " + tmgs.disp_id, TreeIcon.DISP_ID); case 4: return createValueWithIndex(parent, index, tmgs.method_info, TreeType.METHOD_INFO, "method_info: "); } @@ -866,7 +956,7 @@ public class ABCExplorerDialog extends AppDialog { TraitClass tc = (TraitClass) t; switch (index) { case 3: - return new SimpleValue(parent, index, "slot_id: " + tc.slot_id); + return new SimpleValue(parent, index, "slot_id: " + tc.slot_id, TreeIcon.SLOT_ID); case 4: return createValueWithIndex(parent, index, tc.class_info, TreeType.INSTANCE_INFO, "instance_info: "); case 5: @@ -879,7 +969,7 @@ public class ABCExplorerDialog extends AppDialog { TraitFunction tf = (TraitFunction) t; switch (index) { case 3: - return new SimpleValue(parent, index, "slot_id: " + tf.slot_id); + return new SimpleValue(parent, index, "slot_id: " + tf.slot_id, TreeIcon.SLOT_ID); case 4: return createValueWithIndex(parent, index, tf.method_info, TreeType.METHOD_INFO, "method_index: "); } @@ -888,13 +978,37 @@ public class ABCExplorerDialog extends AppDialog { if (index == currentIndex) { if ((t.kindFlags & Trait.ATTR_Metadata) > 0) { - return new SubValue(parent, currentIndex, t, "metadata", "metadata"); + return new SubValue(parent, currentIndex, t, "metadata", "metadata", TreeIcon.TRAIT_METADATA); } } } Trait t = traits.traits.get(index); String traitName = formatString(t.getName(abc).name_index); - return new SubValue(parent, index, index, parentValue, "traits", "t" + index + ": " + t.getKindToStr() + ": " + traitName); + TreeIcon icon = TreeIcon.TRAITS_SUB; + switch (t.kindType) { + case Trait.TRAIT_CLASS: + icon = TreeIcon.TRAIT_CLASS; + break; + case Trait.TRAIT_CONST: + icon = TreeIcon.TRAIT_CONST; + break; + case Trait.TRAIT_FUNCTION: + icon = TreeIcon.TRAIT_FUNCTION; + break; + case Trait.TRAIT_GETTER: + icon = TreeIcon.TRAIT_GETTER; + break; + case Trait.TRAIT_METHOD: + icon = TreeIcon.TRAIT_METHOD; + break; + case Trait.TRAIT_SETTER: + icon = TreeIcon.TRAIT_SETTER; + break; + case Trait.TRAIT_SLOT: + icon = TreeIcon.TRAIT_SLOT; + break; + } + return new SubValue(parent, index, index, parentValue, "traits", "t" + index + ": " + t.getKindToStr() + ": " + traitName, icon); } private String formatString(int index) { @@ -923,7 +1037,7 @@ public class ABCExplorerDialog extends AppDialog { Namespace ns = (Namespace) vwi.value; switch (index) { case 0: - return new SimpleValue(parent, index, "kind: " + Namespace.kindToStr(ns.kind)); + return new SimpleValue(parent, index, "kind: " + Namespace.kindToStr(ns.kind), TreeIcon.KIND); case 1: return createValueWithIndex(parent, index, ns.name_index, TreeType.CONSTANT_STRING, "name: "); } @@ -931,7 +1045,7 @@ public class ABCExplorerDialog extends AppDialog { if (vwi.value instanceof Multiname) { Multiname m = (Multiname) vwi.value; if (index == 0) { - return new SimpleValue(parent, index, "kind: " + m.getKindStr()); + return new SimpleValue(parent, index, "kind: " + m.getKindStr(), TreeIcon.KIND); } int kind = m.kind; if ((kind == Multiname.QNAME) || (kind == Multiname.QNAMEA)) { @@ -971,7 +1085,7 @@ public class ABCExplorerDialog extends AppDialog { MethodInfo mi = (MethodInfo) vwi.value; switch (index) { case 0: - return new SubValue(parent, index, mi, "param_types", "param_types"); + return new SubValue(parent, index, mi, "param_types", "param_types", TreeIcon.PARAM_TYPES); case 1: return createValueWithIndex(parent, index, mi.ret_type, TreeType.CONSTANT_MULTINAME, "return_type: "); case 2: @@ -1003,21 +1117,21 @@ public class ABCExplorerDialog extends AppDialog { flagList.add("SET_DXNS"); } - return new SimpleValue(parent, index, "flags: " + String.format("0x%02X", mi.flags) + (!flagList.isEmpty() ? " (" + String.join(", ", flagList) + ")" : "")); + return new SimpleValue(parent, index, "flags: " + String.format("0x%02X", mi.flags) + (!flagList.isEmpty() ? " (" + String.join(", ", flagList) + ")" : ""), TreeIcon.FLAGS); } int currentIndex = 4; if (mi.flagHas_optional()) { if (index == currentIndex) { - return new SubValue(parent, index, mi, "optional", "optional"); + return new SubValue(parent, index, mi, "optional", "optional", TreeIcon.OPTIONAL); } currentIndex++; } if (mi.flagHas_paramnames()) { if (index == currentIndex) { - return new SubValue(parent, index, mi, "param_names", "param_names"); + return new SubValue(parent, index, mi, "param_names", "param_names", TreeIcon.PARAM_NAMES); } currentIndex++; } @@ -1035,19 +1149,19 @@ public class ABCExplorerDialog extends AppDialog { case 0: return createValueWithIndex(parent, index, body.method_info, TreeType.METHOD_INFO, "method_info: "); case 1: - return new SimpleValue(parent, index, "max_stack: " + body.max_stack); + return new SimpleValue(parent, index, "max_stack: " + body.max_stack, TreeIcon.MAX_STACK); case 2: - return new SimpleValue(parent, index, "max_regs: " + body.max_regs); + return new SimpleValue(parent, index, "max_regs: " + body.max_regs, TreeIcon.MAX_REGS); case 3: - return new SimpleValue(parent, index, "init_scope_depth: " + body.init_scope_depth); + return new SimpleValue(parent, index, "init_scope_depth: " + body.init_scope_depth, TreeIcon.INIT_SCOPE_DEPTH); case 4: - return new SimpleValue(parent, index, "max_scope_depth: " + body.max_scope_depth); + return new SimpleValue(parent, index, "max_scope_depth: " + body.max_scope_depth, TreeIcon.MAX_SCOPE_DEPTH); case 5: - return new SimpleValue(parent, index, "code: " + body.getCodeBytes().length + " bytes"); + return new SimpleValue(parent, index, "code: " + body.getCodeBytes().length + " bytes", TreeIcon.CODE); case 6: - return new SubValue(parent, index, body, "exceptions", "exceptions"); + return new SubValue(parent, index, body, "exceptions", "exceptions", TreeIcon.EXCEPTIONS); case 7: - return new SubValue(parent, index, body, "traits", "traits"); + return new SubValue(parent, index, body, "traits", "traits", TreeIcon.TRAITS); } } if (vwi.value instanceof InstanceInfo) { @@ -1074,7 +1188,7 @@ public class ABCExplorerDialog extends AppDialog { if ((ii.flags & InstanceInfo.CLASS_NON_NULLABLE) == InstanceInfo.CLASS_NON_NULLABLE) { flagList.add("NON_NULLABLE"); } - return new SimpleValue(parent, index, "flags: " + String.format("0x%02X", ii.flags) + (!flagList.isEmpty() ? " (" + String.join(", ", flagList) + ")" : "")); + return new SimpleValue(parent, index, "flags: " + String.format("0x%02X", ii.flags) + (!flagList.isEmpty() ? " (" + String.join(", ", flagList) + ")" : ""), TreeIcon.FLAGS); } int currentIndex = 3; if ((ii.flags & InstanceInfo.CLASS_PROTECTEDNS) == InstanceInfo.CLASS_PROTECTEDNS) { @@ -1084,7 +1198,7 @@ public class ABCExplorerDialog extends AppDialog { currentIndex++; } if (index == currentIndex) { - return new SubValue(parent, index, ii, "interfaces", "interfaces"); + return new SubValue(parent, index, ii, "interfaces", "interfaces", TreeIcon.INTERFACES); } currentIndex++; if (index == currentIndex) { @@ -1092,7 +1206,7 @@ public class ABCExplorerDialog extends AppDialog { } currentIndex++; if (index == currentIndex) { - return new SubValue(parent, index, ii, "traits", "traits"); + return new SubValue(parent, index, ii, "traits", "traits", TreeIcon.TRAITS); } } if (vwi.value instanceof ClassInfo) { @@ -1101,7 +1215,7 @@ public class ABCExplorerDialog extends AppDialog { case 0: return createValueWithIndex(parent, index, ci.cinit_index, TreeType.METHOD_INFO, "cinit: "); case 1: - return new SubValue(parent, index, ci, "traits", "traits"); + return new SubValue(parent, index, ci, "traits", "traits", TreeIcon.TRAITS); } } if (vwi.value instanceof ScriptInfo) { @@ -1110,7 +1224,7 @@ public class ABCExplorerDialog extends AppDialog { case 0: return createValueWithIndex(parent, index, si.init_index, TreeType.METHOD_INFO, "init: "); case 1: - return new SubValue(parent, index, si, "traits", "traits"); + return new SubValue(parent, index, si, "traits", "traits", TreeIcon.TRAITS); } } @@ -1120,7 +1234,7 @@ public class ABCExplorerDialog extends AppDialog { case 0: return createValueWithIndex(parent, index, md.name_index, TreeType.CONSTANT_STRING, "name: "); case 1: - return new SubValue(parent, index, md, "pairs", "pairs"); + return new SubValue(parent, index, md, "pairs", "pairs", TreeIcon.METADATA_PAIRS); } } } @@ -1136,35 +1250,35 @@ public class ABCExplorerDialog extends AppDialog { if (index == 0) { switch (mi.optional[sv.getIndex()].value_kind) { case ValueKind.CONSTANT_Int: - return new SimpleValue(parent, index, "value_kind: Integer"); + return new SimpleValue(parent, index, "value_kind: Integer", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_UInt: - return new SimpleValue(parent, index, "value_kind: UInteger"); + return new SimpleValue(parent, index, "value_kind: UInteger", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Double: - return new SimpleValue(parent, index, "value_kind: Double"); + return new SimpleValue(parent, index, "value_kind: Double", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_DecimalOrFloat: //?? or float ?? - return new SimpleValue(parent, index, "value_kind: Decimal"); + return new SimpleValue(parent, index, "value_kind: Decimal", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Utf8: - return new SimpleValue(parent, index, "value_kind: String"); + return new SimpleValue(parent, index, "value_kind: String", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_True: - return new SimpleValue(parent, index, "value_kind: True"); + return new SimpleValue(parent, index, "value_kind: True", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_False: - return new SimpleValue(parent, index, "value_kind: False"); + return new SimpleValue(parent, index, "value_kind: False", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Null: - return new SimpleValue(parent, index, "value_kind: Null"); + return new SimpleValue(parent, index, "value_kind: Null", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Undefined: - return new SimpleValue(parent, index, "value_kind: Undefined"); + return new SimpleValue(parent, index, "value_kind: Undefined", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_Namespace: - return new SimpleValue(parent, index, "value_kind: Namespace"); + return new SimpleValue(parent, index, "value_kind: Namespace", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_PackageInternalNs: - return new SimpleValue(parent, index, "value_kind: PackageInternalNs"); + return new SimpleValue(parent, index, "value_kind: PackageInternalNs", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_ProtectedNamespace: - return new SimpleValue(parent, index, "value_kind: ProtectedNamespace"); + return new SimpleValue(parent, index, "value_kind: ProtectedNamespace", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_ExplicitNamespace: - return new SimpleValue(parent, index, "value_kind: ExplicitNamespace"); + return new SimpleValue(parent, index, "value_kind: ExplicitNamespace", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_StaticProtectedNs: - return new SimpleValue(parent, index, "value_kind: StaticProtectedNs"); + return new SimpleValue(parent, index, "value_kind: StaticProtectedNs", TreeIcon.VALUE_KIND); case ValueKind.CONSTANT_PrivateNs: - return new SimpleValue(parent, index, "value_kind: PrivateNamespace"); + return new SimpleValue(parent, index, "value_kind: PrivateNamespace", TreeIcon.VALUE_KIND); } } if (index == 1) { @@ -1198,7 +1312,7 @@ public class ABCExplorerDialog extends AppDialog { } } } else { - return new SubValue(parent, index, index, mi, "optional", "op" + index + ": " + mi.optional[index].toASMString(abc.constants)); + return new SubValue(parent, index, index, mi, "optional", "op" + index + ": " + mi.optional[index].toASMString(abc.constants), TreeIcon.OPTIONAL_SUB); } case "param_names": return createValueWithIndex(parent, index, mi.paramNames[index], TreeType.CONSTANT_STRING, "pn" + index + ": "); @@ -1212,18 +1326,18 @@ public class ABCExplorerDialog extends AppDialog { ABCException ex = body.exceptions[sv.getIndex()]; switch (index) { case 0: - return new SimpleValue(parent, index, "start: " + ex.start); + return new SimpleValue(parent, index, "start: " + ex.start, TreeIcon.EXCEPTION_START); case 1: - return new SimpleValue(parent, index, "end: " + ex.end); + return new SimpleValue(parent, index, "end: " + ex.end, TreeIcon.EXCEPTION_END); case 2: - return new SimpleValue(parent, index, "target: " + ex.target); + return new SimpleValue(parent, index, "target: " + ex.target, TreeIcon.EXCEPTION_TARGET); case 3: return createValueWithIndex(parent, index, ex.name_index, TreeType.CONSTANT_MULTINAME, "name: "); case 4: return createValueWithIndex(parent, index, ex.type_index, TreeType.CONSTANT_MULTINAME, "type: "); } } else { - return new SubValue(parent, index, index, body, "exceptions", "ex" + index); + return new SubValue(parent, index, index, body, "exceptions", "ex" + index, TreeIcon.EXCEPTIONS_SUB); } case "traits": return handleGetChildTrait(parent, index, body, sv, body.traits); @@ -1267,7 +1381,7 @@ public class ABCExplorerDialog extends AppDialog { return null; } String pairTitle = formatString(md.keys[index]) + " : " + formatString(md.values[index]); - return new SubValue(parent, index, index, md, "pairs", "p" + index + ": " + pairTitle); + return new SubValue(parent, index, index, md, "pairs", "p" + index + ": " + pairTitle, TreeIcon.METADATA_PAIRS_SUB); } } @@ -1571,10 +1685,12 @@ public class ABCExplorerDialog extends AppDialog { } setToolTipText(null); - if (value instanceof ValueWithIndex) { - - ValueWithIndex vwi = (ValueWithIndex) value; - setIcon(View.getIcon(vwi.type.getIcon())); + if (value instanceof HasIcon) { + HasIcon hi = (HasIcon) value; + String iconFile = hi.getIcon().getFile(); + if (!iconFile.isEmpty()) { + setIcon(View.getIcon(iconFile)); + } } else { setIcon(null); } diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/abcbulletblue16.png b/src/com/jpexs/decompiler/flash/gui/graphics/abcbulletblue16.png new file mode 100644 index 0000000000000000000000000000000000000000..53beedd3804e65a00ee382b2154399ab723f83a1 GIT binary patch literal 5247 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 GQ~v{)=IQnT literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/abcbulletgray16.png b/src/com/jpexs/decompiler/flash/gui/graphics/abcbulletgray16.png new file mode 100644 index 0000000000000000000000000000000000000000..2ebd25494cc0c10a4639a8006e4f680af05d7c37 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xc6+)whE&{2`t$$4J+o>Cql{11^3;ThGmi#DMs{8n5UW}C`SWMvIX0!U7B1P+ z(>QacWD1A!MYe{R1IN!F|M2^~eB1u|{}aTyo0yn*w7R-@{?^v==<4dKsZ=(0c6L5| ze4L+Wb@;l3jQo7|OgryM+;x9`6lVOtx0fe3H`l_nnL&Bo9)_NB(Etmj>|@KO6~0JU cYhYkz2%O{G;5LuT2j~q3Pgg&ebxsLQ05Ak@L;wH) literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/abccode16.png b/src/com/jpexs/decompiler/flash/gui/graphics/abccode16.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8a1ecb7ae9fbab89f93f5efd984d8dda32ef5e GIT binary patch literal 621 zcmV-z0+RiSP)aCvr zCoGlxItPScgVsZm4WUNJ-yxdRK#r0?f>NlV1<&>(?bdqtFYsWG>B;Qw?9TY!B(qvX zp$~?6Z|1%4eeb;)Ycv`yk|f!bQo^z<018TBt>X`y_0<{QWipxTUaxl-!{Hmn5(GjC zk*F{fq(@qhV@Yy?%)=7Z=!hxPwloi?-K*ZQFRT zy$#RnU^00N|LhDx2z)v{1v6%`*F2GR9DJA`V$=Fðx~UoS6_&*ur;$NR%0 z%-$V>Q*!nj0KV_z4h5c{`*3p`I{V(!I__<4X;9;AQMgQ`34?8#MNL7y{+M-u>9l?>Lt248Uo5Uw5JuX6Fc_?+uqJ>P-RE2n3dJJPPc&tA zc(V5l-Ti%3Div*WY0YLcEx|F$csyP`o3#_~hUSFsI1l&2jQuZwR;xvImUS?_Otjl= zor%xb_B>D9MPkUlsjO?cwekaZcke1+00000NkvXX Hu0mjfawHzd literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/abcexception16.png b/src/com/jpexs/decompiler/flash/gui/graphics/abcexception16.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb7aec74f811af391b8b7b20a5c3130f4704b3b GIT binary patch literal 584 zcmV-O0=NB%P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10o6%F zK~yM_b<#U)Q~?l%;b)WGc#?B+F$7bj5e#@M>_iYvBZ^%LEwoFgh#=@65G)kD6!{He zu(A+A>_mx8v~#vuBgljD>Ms1qZ%j;Ctu7jEI12fIGcZx~V7R?b=43 zQpvc6(iS7@=goQYd7?}#5$}nIsGJR(j|%a}#lIlzrG9J@|ZLK7SRsEJM-qU#fV zA4v;+RAw0JZ!>KmMn>eTs~WZ1U&TJ-0+o&?X$vY8^jy4X*OxDLFD^Pzt=cs;#f}{< zFvWK=-Qjb6ejE=9g}6`LCA!Evw2hISJ*&C2 zq`9^x9UD{Hxzp;aSB8!sm+afu@@bqaxOKS@Yio?U2b8~;d_Kwvj zPi!9_H#ae%{Pd~K-d@R`J(AH;pI*FZ`2rH^GsHCUd|)6}o;{0*h#!qc{EqdNmAJou ze@qg$h!XW;k=iod88)g_(?^czJ97*$+`w4(w-b7|wTHJ-2oJ&O+A>V#jY1T}dPqD1qa8CyXe?_1#|vKbUZN{ z)q^jJj>|x-pF7J6)D6{y?1IJ1qV3-JIy`UNe<^Kh$#j*-*J!ei$|wc+!Wt zgn+6!DE-P&slun+2+5fdHf}gX=kC26X+O({OuF~^^y}W9Tb30vxGbb$-DpSn6v|n& zG(J4RSNjc#+%T#6M{L_trx|i+q?{-PTYg1B-cR3&5y_|c_ z$N7XYhSwY$KnT&4Qfh!Go%sW!buA2I#u&>6kW%XBAn5l14}b7m*sIPdRp}@oauI#l zi>R%{Zp-TRdx&@Q};XQ$8*&@f?QacXts=@nL(L+p8-sayc48@HU<1{pxCm zz-kxCOoof&V>TBTQOP8(>*D)9Zll5H*;z*B=166;6t}i0dtS$a)wYlr9VHfz(-eZs zg9F~B)5M2|34i+fu$AJ`ad>nCpYGsA*dwXcWxxS{bw#LZ%IunHg^=g&Jo15+-e$D48-QDqN zdYXk|k;48yRlwJphm#ZTQz@`*?D27GnM{X37-NVj6-{pbBS__^C;WPyaBvVGC@WPl zK_Fk00}rSq5`>X{mxcccQX@hjj4=oynzoesrHceWYnjAr*ZCLw>Ffn8)(*u00000< KMNUMnLSTX|(dAnJ delta 485 zcmV#4(gD&xd{CSS_o2v456LG4i=$5^5Z4Omv5IOKH8F6yvsS9 zd-IPds=Oj5)Fu-3M}H-DRM9jF71UL2Oc_Po}B z0ilcV!(l*uCQhH$u#OGj>%|2v*QGN$N9n3p8nM=wbPe!9(um_InM&zxy{;$A%X+c9t5?;k##1T13<52k zpKE+>PR}GodVc@|2@N3Xx;)C|*jrtt1GIqH^fWe^q?pN&SXkh3u}CANAQCnaAius& z`QU)l<73*uw`P-Usl@E|HbFej`}uilmzM(*BYg&^XJ-UgSA4Eic)GR4mvWgFP$`vo zm(NqH)rii_5cobn8`m5L-&j34;bA_{$HPN1Yip!eR$g$XrihP?aW|La)8;1KXq5Z= z`}h+R0{|n5nCJN$|1n4n;D_h6)NI-t&B5RDKP3FCW4IQC0E{GzFeK@`WoGdr`pXQAt^ z9%4*XA{G{5u?XoDa|mKgW$D%S5*0hKk^DgagbM~*v4$XgyWyEET6?|o(;E0@cwNs@R0*pAaL!>_)|$}b zVzG$bSgBOdHd>+2s>seK?d{%)jDX_67eCRvu9x-}+mPHalC@_ilQ_)k>6 zty4)hTqg(D-IIAP8y)&4X{{pzTX0N#h;gjf!^Fo13Ih@s&W{=fK@boFft4s@FgN$8 zGeF8L+#Hk`ds@TPh)-nzFJC<0IRkxNh43&I!yZ$xiWO~c(5yXxX23b?WMD}PmBl3t z-1%ZgE+y6L5(lTvbFK?1M3-A&0(akU;5acDCl-a!!r61f$mb8i4}8NQA_jkcSFuoe z)g=HWb8E=KwI?gMKYGA?dGmT<+uvDGL$qEB;Zb}g->GS>sMqUnsVUAVm27q+Yjt9} mjaX~7rk~uy?riP900RI_dA_^`VDi}j0000