]> git.saurik.com Git - iphone-api.git/blame - GraphicsServices/GraphicsServices.h
Minor commit for Optimo.
[iphone-api.git] / GraphicsServices / GraphicsServices.h
CommitLineData
f8d8a1a9
JF
1/* iPhone Open SDK - Free Open Source Anti-Apple SDK
2 * Copyright (C) 2008 Jay Freeman (saurik)
3*/
4
5/*
6 * Redistribution and use in source and binary
7 * forms, with or without modification, are permitted
8 * provided that the following conditions are met:
9 *
10 * 1. Redistributions of source code must retain the
11 * above copyright notice, this list of conditions
12 * and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the
14 * above copyright notice, this list of conditions
15 * and the following disclaimer in the documentation
16 * and/or other materials provided with the
17 * distribution.
18 * 3. The name of the author may not be used to endorse
19 * or promote products derived from this software
20 * without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
24 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
27 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
29 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
33 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
35 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36*/
37
38#ifndef GRAPHICSSERVICES_GRAPHICSSERVICS_H_
39#define GRAPHICSSERVICES_GRAPHICSSERVICS_H_
40
41#include <mach/port.h>
0c18d7b2 42#import <CoreFoundation/CoreFoundation.h>
f8d8a1a9 43#include <CoreGraphics/CGGeometry.h>
dfbdd7ed 44#include <GraphicsServices/GSWindow.h>
f8d8a1a9 45
2cccff25
JF
46typedef struct __GSFont *GSFontRef;
47
f8d8a1a9
JF
48#ifdef __cplusplus
49extern "C" {
50#endif
51
52struct GSPathInfo {
a5486f1d
JF
53 /*0x00:13c*/ uint8_t x00; // key
54 /*0x01:13d*/ uint8_t x01;
55 /*0x02:13e*/ uint8_t x02; // 2=no
56 /*0x03:13f*/ uint8_t x03;
57 /*0x04:140*/ uint32_t x04;
58 /*0x08:144*/ uint32_t x08;
59 /*0x0c:148*/ CGPoint position;
60 /*0x14:14c*/ uint32_t x14;
f8d8a1a9
JF
61};
62
63struct GSEventRecord {
64 /*0x00:08*/ uint32_t type;
65 /*0x04:0c*/ uint32_t subType;
66 /*0x08:10*/ CGPoint locationOnScreen;
67 /*0x10:18*/ CGPoint locationInWindow;
68 /*0x18:20*/ uint64_t timestamp; //(GSCurrentEventTimestamp)
69 /*0x20:28*/ uint32_t zero;
70 /*0x24:2c*/ uint32_t modifierFlags;
71 /*0x28:30*/ uint16_t eventNumber;
72 /*0x2a:32*/ uint16_t x2a;
73 /*0x2c:34*/ uint32_t size;
74};
75
a5486f1d
JF
76struct GSEventKeyInfo {
77 /*0x30:38*/ uint32_t type;
78 /*0x34:3c*/ uint16_t character;
79 /*0x38:3e*/ uint16_t characterSet;
80 /*0x3a:40*/ uint8_t keyRepeating;
81};
82
f8d8a1a9
JF
83struct GSEventHandInfo {
84 /*0x30:38:00:5c*/ uint32_t type;
85 /*0x34:3c:04:60*/ uint16_t x34;
86 /*0x38:3e:06:64*/ uint16_t x38;
87 /*0x3a:40:08:68*/ CGPoint x3a;
88 /*0x40:48:10:70*/ uint32_t x40; //handInfoScale scales
89};
90
91struct GSEventRecordInfo {
92 /*0x30:38:00:5c*/ struct GSEventHandInfo handInfo;
93 /*0x44:4c:14:74*/ uint32_t x44;
94 /*0x48:50:18:78*/ uint32_t x48; //handInfoScale scales
95 /*0x4c:54:1c:7c*/ uint32_t x4c;
96 /*0x50:58:20*/ uint8_t x50;
97 /*0x51:59:21*/ uint8_t pathPositions;
98 /*0x52:5a:22*/ uint16_t x52;
99 /*0x54:5c:24*/ struct GSPathInfo pathInfo[];
100};
101
102/*struct __GSEvent {
103 struct CFRuntimeBase base_;
104 struct GSEventRecord record_;
105};*/
106
107typedef struct __GSEvent *GSEventRef;
108
109#define GSEventTypeKeyDown 0x000d
110
111#define GSEventTypeAccelerometer 0x0017
112#define GSEventTypeProximityStateChanged 0x0018
113#define GSEventTypeDeviceOrientationChanged 0x0032
114// 0x03c:loc_0018ac preferences
115
116#define GSEventTypeMenuButtonDown 0x03e8
117#define GSEventTypeMenuButtonUp 0x03e9
118#define GSEventTypeRingerChanged0 0x03f4
119#define GSEventTypeRingerChanged1 0x03f5
120#define GSEventTypeLockDevice 0x03f6
121#define GSEventTypeStatusBarMouseDown 0x03f7
122#define GSEventTypeStatusBarMouseDragged 0x03f8
123#define GSEventTypeStatusBarMouseUp 0x03f9
124#define GSEventTypeLockButtonDown 0x03f2
125#define GSEventTypeLockButtonUp 0x03f3
126#define GSEventTypeHeadsetButtonDown 0x03fa
127#define GSEventTypeHeadsetButtonUp 0x03fb
128
129#define GSEventTypeVibrateForDuration 0x044c
130#define GSEventTypeSetBacklightFactor 0x044e
131#define GSEventTypeSetBacklightLevel 0x044f
132
133#define GSEventTypeApplicationStarted 0x07d0
134#define GSEventTypeAnotherApplicationFinishedLauncing 0x07d2
135#define GSEventTypeApplicationTerminateWithStatus 0x07d3
136#define GSEventTypeApplicationSuspended 0x07d4
137// 0x07d5:loc_000550 internal url
138// 0x07d6:loc_000a20 external url
139#define GSEventTypeApplicationExited 0x07d7
140#define GSEventTypeApplicationShowHideSettings 0x07d8
141#define GSEventTypeQuitTopApplication 0x07d9
142#define GSEventTypeOtherApplicationWillSuspend 0x07da
143#define GSEventTypeApplicationSuspendedSettingsUpdated 0x07db
144
145#define GSEventTypeResetIdleTimer 0x0898
146#define GSEventTypeResetIdleDuration 0x0899
147#define GSEventTypeDumpUIHierarchy 0x09c4
148#define GSEventTypeDumpScreenContents 0x09c5
149#define GSEventTypeProcessScriptEvent 0x0a8c
150
151#define GSEventTypeMouse 0x0bb9
152
153#define GSEventTypeAccessoryAvailabilityChanged 0x0fa0
154#define GSEventTypeAccessoryKeyStateChanged 0x0fa1
155#define GSEventTypeAccessory 0x0fa2
156
157#define GSEventTypeOutOfLineDataRequest 0x1388
158#define GSEventTypeUrgentMemoryWarning 0x1770
159#define GSEventTypeOutOfLineDataResponse 0x10001
160
161#define GSMouseEventTypeDown 0x1
162#define GSMouseEventTypeDragged 0x2
163#define GSMouseEventTypeUp 0x6
164#define GSMouseEventTypeCancel 0x8
165
166#define _PurpleSystemEventPortName "PurpleSystemEventPort"
167
f8d8a1a9 168mach_port_name_t GSCopyPurpleSystemEventPort(void);
f8d8a1a9 169uint64_t GSCurrentEventTimestamp(void);
2cccff25
JF
170struct GSEventHandInfo GSEventGetHandInfo(GSEventRef event);
171struct CGRect GSEventGetLocationInWindow(GSEventRef ev);
dfbdd7ed 172struct GSPathInfo GSEventGetPathInfoAtIndex(GSEventRef event, unsigned index);
2cccff25
JF
173mach_port_name_t GSGetPurpleNamedPort(CFStringRef name);
174void GSSendEvent(struct GSEventRecord *record, mach_port_name_t port);
175void GSSendSystemEvent(struct GSEventRecord *record);
f8d8a1a9 176
0c18d7b2
JF
177CFArrayRef GSSystemGetCapability(CFStringRef type);
178extern CFStringRef const kGSDisplayIdentifiersCapability;
179
f8d8a1a9
JF
180#ifdef __cplusplus
181}
182#endif
183
184#endif//GRAPHICSSERVICES_GRAPHICSSERVICS_H_