xref: /aosp_15_r20/external/pdfium/testing/resources/javascript/icons.in (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
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