[winforms] Fix graphics leak
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms.CarbonInternal / Structs.cs
1 // Permission is hereby granted, free of charge, to any person obtaining
2 // a copy of this software and associated documentation files (the
3 // "Software",, to deal in the Software without restriction, including
4 // without limitation the rights to use, copy, modify, merge, publish,
5 // distribute, sublicense, and/or sell copies of the Software, and to
6 // permit persons to whom the Software is furnished to do so, subject to
7 // the following conditions:
8 // 
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
11 // 
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19 //
20 // Copyright (c) 2007 Novell, Inc.
21 //
22 // Authors:
23 //      Geoff Norton  <gnorton@customerdna.com>
24 //
25
26 using System;
27
28 namespace System.Windows.Forms.CarbonInternal {
29         internal struct CGSize {
30                 public float width;
31                 public float height;
32
33                 public CGSize (int w, int h) {
34                         this.width = (float)w;
35                         this.height = (float)h;
36                 }
37         }
38
39         internal struct QDPoint {
40                 public short y;
41                 public short x;
42
43                 public QDPoint (short x, short y) {
44                         this.x = x;
45                         this.y = y;
46                 }
47         }
48
49         internal struct CGPoint {
50                 public float x;
51                 public float y;
52
53                 public CGPoint (int x, int y) {
54                         this.x = (float)x;
55                         this.y = (float)y;
56                 }
57         }
58
59         internal struct HIRect {
60                 public CGPoint origin;
61                 public CGSize size;
62
63                 public HIRect (int x, int y, int w, int h) {
64                         this.origin = new CGPoint (x, y);
65                         this.size = new CGSize (w, h);
66                 }
67         }
68
69         internal struct HIViewID {
70                 public uint type;
71                 public uint id;
72
73                 public HIViewID (uint type, uint id) {
74                         this.type = type;
75                         this.id = id;
76                 }
77         }
78         
79         internal struct EventTypeSpec {
80                 public UInt32 eventClass;
81                 public UInt32 eventKind;
82
83                 public EventTypeSpec (UInt32 eventClass, UInt32 eventKind)
84                 {
85                         this.eventClass = eventClass;
86                         this.eventKind = eventKind;
87                 }
88         }
89         
90         internal struct CarbonEvent {
91                 public IntPtr hWnd;
92                 public IntPtr evt;
93
94                 public CarbonEvent (IntPtr hWnd, IntPtr evt)
95                 {
96                         this.hWnd = hWnd;
97                         this.evt = evt;
98                 }
99         }
100         
101         internal struct RGBColor {
102                 public short red;
103                 public short green;
104                 public short blue;
105         }
106
107         internal struct Rect {
108                 public short top;
109                 public short left;
110                 public short bottom;
111                 public short right;
112         }
113
114         internal struct Caret {
115                 internal Timer Timer;
116                 internal IntPtr Hwnd;
117                 internal int X;
118                 internal int Y;
119                 internal int Width;
120                 internal int Height;
121                 internal int Visible;
122                 internal bool On;
123                 internal bool Paused;
124         }
125
126         internal struct Hover {
127                 internal Timer Timer;
128                 internal IntPtr Hwnd;
129                 internal int X;
130                 internal int Y;
131                 internal int Interval;
132         }
133
134         internal struct CGAffineTransform {
135                 internal float a;
136                 internal float b;
137                 internal float c;
138                 internal float d;
139                 internal float tx;
140                 internal float ty;
141         }
142         
143         internal struct MouseTrackingRegionID {
144                 public uint signature;
145                 public uint id;
146                 
147                 public MouseTrackingRegionID (uint signature, uint id) {
148                         this.signature = signature;
149                         this.id = id;
150                 }
151         }
152         
153         internal struct ProcessSerialNumber {
154                 public ulong highLongOfPSN;
155                 public ulong lowLongOfPSN;
156         }
157 }