1
2
3
4
5
6
7
8
9
10
11
12
13 package com.ochafik.lang.jnaerator.runtime;
14
15 import org.rococoa.cocoa.CGFloat;
16
17 import com.sun.jna.ptr.ByReference;
18
19 public class CGFloatByReference extends ByReference {
20 public CGFloatByReference() {
21 this(0d);
22 }
23
24 public CGFloatByReference(float value) {
25 super(CGFloat.SIZE);
26 set(value);
27 }
28 public void set(float value) {
29 set(new CGFloat(value));
30 }
31
32 public CGFloatByReference(double value) {
33 super(CGFloat.SIZE);
34 set(value);
35 }
36 public void set(double value) {
37
38 set(new CGFloat(value));
39 }
40
41 public void set(CGFloat value) {
42 switch (CGFloat.SIZE) {
43 case 4:
44 getPointer().setFloat(0, value.floatValue());
45 break;
46 case 8:
47 getPointer().setDouble(0, value.doubleValue());
48 break;
49 default:
50 throw new UnsupportedOperationException("Unhandled CGFloat size : " + CGFloat.SIZE);
51 }
52 }
53 public CGFloat get() {
54 switch (CGFloat.SIZE) {
55 case 4:
56 return new CGFloat(getPointer().getFloat(0));
57 case 8:
58 return new CGFloat(getPointer().getDouble(0));
59 default:
60 throw new UnsupportedOperationException("Unhandled CGFloat size : " + CGFloat.SIZE);
61 }
62 }
63
64 public CGFloatByReference(CGFloat value) {
65 super(CGFloat.SIZE);
66 set(value);
67 }
68 }