1*3ac0a46fSAndroid Build Coastguard Worker{{header}} 2*3ac0a46fSAndroid Build Coastguard Worker{{include field.fragment}} 3*3ac0a46fSAndroid Build Coastguard Worker{{object 16 0}} << 4*3ac0a46fSAndroid Build Coastguard Worker {{streamlen}} 5*3ac0a46fSAndroid Build Coastguard Worker>> 6*3ac0a46fSAndroid Build Coastguard Workerstream 7*3ac0a46fSAndroid Build Coastguard Worker// In order to get icons from a document, you have to first add icons 8*3ac0a46fSAndroid Build Coastguard Worker// to the document, and the only way to initially get an icon object, 9*3ac0a46fSAndroid Build Coastguard Worker// it would seem, is from a button in a field. Then it can be added 10*3ac0a46fSAndroid Build Coastguard Worker// any number of times, which does nothing but accumulate the list of 11*3ac0a46fSAndroid Build Coastguard Worker// names of the added icons. Whee. 12*3ac0a46fSAndroid Build Coastguard Workertry { 13*3ac0a46fSAndroid Build Coastguard Worker var doc = this; 14*3ac0a46fSAndroid Build Coastguard Worker app.alert("doc is " + doc); 15*3ac0a46fSAndroid Build Coastguard Worker var icon = doc.getField("MyField.MyPushButton").buttonGetIcon(); 16*3ac0a46fSAndroid Build Coastguard Worker app.alert("icon is " + icon); 17*3ac0a46fSAndroid Build Coastguard Worker doc.addIcon("icon1", icon); 18*3ac0a46fSAndroid Build Coastguard Worker doc.addIcon("icon2", icon); 19*3ac0a46fSAndroid Build Coastguard Worker app.alert("icon list is now " + doc.icons); 20*3ac0a46fSAndroid Build Coastguard Worker var icon1 = doc.icons[0]; 21*3ac0a46fSAndroid Build Coastguard Worker var icon2 = doc.icons[1]; 22*3ac0a46fSAndroid Build Coastguard Worker app.alert("they are named " + icon1.name + " and " + icon2.name); 23*3ac0a46fSAndroid Build Coastguard Worker var icon1_again = doc.getIcon("icon1"); 24*3ac0a46fSAndroid Build Coastguard Worker var icon2_again = doc.getIcon("icon2"); 25*3ac0a46fSAndroid Build Coastguard Worker app.alert("they are also named " + icon1_again.name + 26*3ac0a46fSAndroid Build Coastguard Worker " and " + icon2_again.name); 27*3ac0a46fSAndroid Build Coastguard Worker app.alert("but they are made anew each time since " + 28*3ac0a46fSAndroid Build Coastguard Worker (icon1 == icon1_again) + " is returned from comparison"); 29*3ac0a46fSAndroid Build Coastguard Worker app.alert("Prototype comparison is " + (icon1.__proto__ == icon1_again.__proto__)); 30*3ac0a46fSAndroid Build Coastguard Worker 31*3ac0a46fSAndroid Build Coastguard Worker // Icons are "dynamic" objects, so theoretically we can make them from 32*3ac0a46fSAndroid Build Coastguard Worker // the JS side as well, although they will not be bound on the fxjs side. 33*3ac0a46fSAndroid Build Coastguard Worker var dubious = new icon1.constructor(); 34*3ac0a46fSAndroid Build Coastguard Worker app.alert("Made anew from JS side since comparison is " + (dubious == icon1)); 35*3ac0a46fSAndroid Build Coastguard Worker app.alert("Prototype comparison is " + (dubious.__proto__ == icon1.__proto__)); 36*3ac0a46fSAndroid Build Coastguard Worker 37*3ac0a46fSAndroid Build Coastguard Worker // Can't retrieve the name because no fxjs binding present. 38*3ac0a46fSAndroid Build Coastguard Worker app.alert("Dubious name is " + dubious.name); 39*3ac0a46fSAndroid Build Coastguard Worker 40*3ac0a46fSAndroid Build Coastguard Worker // No error setting the name because for an unbound object, control doesn't 41*3ac0a46fSAndroid Build Coastguard Worker // get far enough to reach the readonly check in the property handler. 42*3ac0a46fSAndroid Build Coastguard Worker dubious.name = "pebble"; 43*3ac0a46fSAndroid Build Coastguard Worker 44*3ac0a46fSAndroid Build Coastguard Worker // The previous was a silent no-op under the covers. 45*3ac0a46fSAndroid Build Coastguard Worker app.alert("name is unchanged from " + dubious.name); 46*3ac0a46fSAndroid Build Coastguard Worker} catch (e) { 47*3ac0a46fSAndroid Build Coastguard Worker app.alert("error: " + e); 48*3ac0a46fSAndroid Build Coastguard Worker} 49*3ac0a46fSAndroid Build Coastguard Workertry { 50*3ac0a46fSAndroid Build Coastguard Worker icon1.name = "chowder"; 51*3ac0a46fSAndroid Build Coastguard Worker} catch (e) { 52*3ac0a46fSAndroid Build Coastguard Worker app.alert("As expected, trying to change the name gave: " + e); 53*3ac0a46fSAndroid Build Coastguard Worker} 54*3ac0a46fSAndroid Build Coastguard Workerendstream 55*3ac0a46fSAndroid Build Coastguard Workerendobj 56*3ac0a46fSAndroid Build Coastguard Worker{{xref}} 57*3ac0a46fSAndroid Build Coastguard Worker{{trailer}} 58*3ac0a46fSAndroid Build Coastguard Worker{{startxref}} 59*3ac0a46fSAndroid Build Coastguard Worker%%EOF 60