summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resources/webidl2/test/widlproc/test/valid/xml/typedef.widlprocxml
blob: 785f6706e6d675a5d301dcd9f2a038010ab64f6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Definitions SYSTEM "widlprocxml.dtd">
<Definitions>
  <webidl>      interface Point {
        attribute float x;
        attribute float y;
      };

      typedef sequence&lt;<ref>Point</ref>> PointSequence;

      interface Rect {
        attribute <ref>Point</ref> topleft;
        attribute <ref>Point</ref> bottomright;
      };

  interface Widget {

    readonly attribute <ref>Rect</ref> bounds;

    boolean pointWithinBounds(<ref>Point</ref> p);
    boolean allPointsWithinBounds(<ref>PointSequence</ref> ps);
  };

  typedef [Clamp] octet value;</webidl>
  <Interface name="Point" id="::Point">
    <webidl>      interface Point {
        attribute float x;
        attribute float y;
      };</webidl>
    <Attribute name="x" id="::Point::x">
      <webidl>        attribute float x;</webidl>
      <Type type="float"/>
    </Attribute>
    <Attribute name="y" id="::Point::y">
      <webidl>        attribute float y;</webidl>
      <Type type="float"/>
    </Attribute>
  </Interface>
  <Typedef name="PointSequence" id="::PointSequence">
    <webidl>      typedef sequence&lt;<ref>Point</ref>> PointSequence;</webidl>
    <Type type="sequence">
      <Type name="Point"/>
    </Type>
  </Typedef>
  <Interface name="Rect" id="::Rect">
    <webidl>      interface Rect {
        attribute <ref>Point</ref> topleft;
        attribute <ref>Point</ref> bottomright;
      };</webidl>
    <Attribute name="topleft" id="::Rect::topleft">
      <webidl>        attribute <ref>Point</ref> topleft;</webidl>
      <Type name="Point"/>
    </Attribute>
    <Attribute name="bottomright" id="::Rect::bottomright">
      <webidl>        attribute <ref>Point</ref> bottomright;</webidl>
      <Type name="Point"/>
    </Attribute>
  </Interface>
  <Interface name="Widget" id="::Widget">
    <webidl>  interface Widget {

    readonly attribute <ref>Rect</ref> bounds;

    boolean pointWithinBounds(<ref>Point</ref> p);
    boolean allPointsWithinBounds(<ref>PointSequence</ref> ps);
  };</webidl>
    <Attribute readonly="readonly" name="bounds" id="::Widget::bounds">
      <webidl>    readonly attribute <ref>Rect</ref> bounds;</webidl>
      <Type name="Rect"/>
    </Attribute>
    <Operation name="pointWithinBounds" id="::Widget::pointWithinBounds">
      <webidl>    boolean pointWithinBounds(<ref>Point</ref> p);</webidl>
      <Type type="boolean"/>
      <ArgumentList>
        <Argument name="p">
          <Type name="Point"/>
        </Argument>
      </ArgumentList>
    </Operation>
    <Operation name="allPointsWithinBounds" id="::Widget::allPointsWithinBounds">
      <webidl>    boolean allPointsWithinBounds(<ref>PointSequence</ref> ps);</webidl>
      <Type type="boolean"/>
      <ArgumentList>
        <Argument name="ps">
          <Type name="PointSequence"/>
        </Argument>
      </ArgumentList>
    </Operation>
  </Interface>
  <Typedef name="value" id="::value">
    <webidl>  typedef [Clamp] octet value;</webidl>
    <Type type="octet">
      <ExtendedAttributeList>
        <ExtendedAttribute name="Clamp">
          <webidl>Clamp</webidl>
        </ExtendedAttribute>
      </ExtendedAttributeList>
    </Type>
  </Typedef>
</Definitions>