~drgeo-developers/drgeo/trunk

« back to all changes in this revision

Viewing changes to VMs/iPad/source/unix/vm-display-custom/sqUnixCustomWindow.c

  • Committer: Hilaire Fernandes
  • Date: 2012-01-27 21:15:40 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20120127211540-912spf97bhpx6mve
Initial additions

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* sqUnixCustomWindow.c -- support for display via your custom window system.
 
2
 * 
 
3
 * Last edited: 2008-04-21 14:06:20 by piumarta on emilia
 
4
 * 
 
5
 * This is a template for creating your own window drivers for Squeak:
 
6
 * 
 
7
 *   - copy the entire contents of this directory to some other name
 
8
 *   - rename this file to be something more appropriate
 
9
 *   - modify acinclude.m4, Makefile.in, and ../vm/sqUnixMain accordingly
 
10
 *   - implement all the stubs in this file that currently do nothing
 
11
 * 
 
12
 */
 
13
 
 
14
#include "sq.h"
 
15
#include "sqMemoryAccess.h"
 
16
 
 
17
#include "sqUnixMain.h"
 
18
#include "sqUnixGlobals.h"
 
19
#include "sqUnixCharConv.h"             /* not required, but probably useful */
 
20
#include "aio.h"                        /* ditto */
 
21
 
 
22
#include "SqDisplay.h"
 
23
 
 
24
#include <stdio.h>
 
25
 
 
26
#include "sqUnixEvent.c"                /* see X11 and/or Quartz drivers for examples */
 
27
 
 
28
 
 
29
#define trace() fprintf(stderr, "%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__)
 
30
 
 
31
static int handleEvents(void)
 
32
{
 
33
  printf("handle custom events here...\n");
 
34
  return 0;     /* 1 if events processed */
 
35
}
 
36
 
 
37
static sqInt display_clipboardSize(void)
 
38
{
 
39
  trace();
 
40
  return 0;
 
41
}
 
42
 
 
43
static sqInt display_clipboardWriteFromAt(sqInt count, sqInt byteArrayIndex, sqInt startIndex)
 
44
{
 
45
  trace();
 
46
  return 0;
 
47
}
 
48
 
 
49
static sqInt display_clipboardReadIntoAt(sqInt count, sqInt byteArrayIndex, sqInt startIndex)
 
50
{
 
51
  trace();
 
52
  return 0;
 
53
}
 
54
 
 
55
 
 
56
static char ** display_clipboardGetTypeNames(void)
 
57
{
 
58
  trace();
 
59
  return 0;
 
60
}
 
61
 
 
62
static sqInt display_clipboardSizeWithType(char *typeName, int ntypeName)
 
63
{
 
64
  trace();
 
65
  return 0;
 
66
}
 
67
 
 
68
static void display_clipboardWriteWithType(char *data, size_t ndata, char *typeName, size_t ntypeName, int isDnd, int isClaiming)
 
69
{
 
70
  trace();
 
71
}
 
72
 
 
73
static sqInt display_dndOutStart(char *types, int ntypes)
 
74
{
 
75
  trace();
 
76
  return 0;
 
77
}
 
78
 
 
79
static void display_dndOutSend (char *bytes, int nbytes)
 
80
{
 
81
  trace();
 
82
}
 
83
 
 
84
static sqInt display_dndOutAcceptedType(char * buf, int nbuf)
 
85
{
 
86
  trace();
 
87
  return 0;
 
88
}
 
89
 
 
90
static sqInt display_ioFormPrint(sqInt bitsIndex, sqInt width, sqInt height, sqInt depth, double hScale, double vScale, sqInt landscapeFlag)
 
91
{
 
92
  trace();
 
93
  return false;
 
94
}
 
95
 
 
96
static sqInt display_ioBeep(void)
 
97
{
 
98
  trace();
 
99
  return 0;
 
100
}
 
101
 
 
102
static sqInt display_ioRelinquishProcessorForMicroseconds(sqInt microSeconds)
 
103
{
 
104
  aioSleep(handleEvents() ? 0 : microSeconds);
 
105
  return 0;
 
106
}
 
107
 
 
108
static sqInt display_ioProcessEvents(void)
 
109
{
 
110
  handleEvents();
 
111
  aioPoll(0);
 
112
  return 0;
 
113
}
 
114
 
 
115
static sqInt display_ioScreenDepth(void)
 
116
{
 
117
  trace();
 
118
  return 16;
 
119
}
 
120
 
 
121
static sqInt display_ioScreenSize(void)
 
122
{
 
123
  trace();
 
124
  return (600 << 16) | 400;
 
125
}
 
126
 
 
127
static sqInt display_ioSetCursorWithMask(sqInt cursorBitsIndex, sqInt cursorMaskIndex, sqInt offsetX, sqInt offsetY)
 
128
{
 
129
  trace();
 
130
  return 0;
 
131
}
 
132
 
 
133
static sqInt display_ioSetCursorARGB(sqInt cursorBitsIndex, sqInt extentX, sqInt extentY, sqInt offsetX, sqInt offsetY)
 
134
{
 
135
  trace();
 
136
  return 0;
 
137
}
 
138
 
 
139
static sqInt display_ioSetFullScreen(sqInt fullScreen)
 
140
{
 
141
  trace();
 
142
  return 0;
 
143
}
 
144
 
 
145
static sqInt display_ioForceDisplayUpdate(void)
 
146
{
 
147
  trace();
 
148
  return 0;
 
149
}
 
150
 
 
151
static sqInt display_ioShowDisplay(sqInt dispBitsIndex, sqInt width, sqInt height, sqInt depth,
 
152
                                   sqInt affectedL, sqInt affectedR, sqInt affectedT, sqInt affectedB)
 
153
{
 
154
  trace();
 
155
  return 0;
 
156
}
 
157
 
 
158
static sqInt display_ioHasDisplayDepth(sqInt i)
 
159
{
 
160
  trace();
 
161
  return 16 == i;
 
162
}
 
163
 
 
164
static sqInt display_ioSetDisplayMode(sqInt width, sqInt height, sqInt depth, sqInt fullscreenFlag)
 
165
{
 
166
  trace();
 
167
  return 0;
 
168
}
 
169
 
 
170
static void display_winSetName(char *imageName)
 
171
{
 
172
  trace();
 
173
}
 
174
 
 
175
static void *display_ioGetDisplay(void) { return 0; }
 
176
static void *display_ioGetWindow(void)  { return 0; }
 
177
 
 
178
static sqInt display_ioGLinitialise(void) { trace();  return 0; }
 
179
static sqInt display_ioGLcreateRenderer(glRenderer *r, sqInt x, sqInt y, sqInt w, sqInt h, sqInt flags) { trace();  return 0; }
 
180
static void  display_ioGLdestroyRenderer(glRenderer *r) { trace(); }
 
181
static void  display_ioGLswapBuffers(glRenderer *r) { trace(); }
 
182
static sqInt display_ioGLmakeCurrentRenderer(glRenderer *r) { trace();  return 0; }
 
183
static void  display_ioGLsetBufferRect(glRenderer *r, sqInt x, sqInt y, sqInt w, sqInt h) { trace(); }
 
184
 
 
185
static char *display_winSystemName(void)
 
186
{
 
187
  trace();
 
188
  return "Custom";
 
189
}
 
190
 
 
191
static void display_winInit(void)
 
192
{
 
193
  trace();
 
194
  printf("Initialise your Custom Window system here\n");
 
195
}
 
196
 
 
197
static void display_winOpen(void)
 
198
{
 
199
  trace();
 
200
  printf("map your Custom Window here\n");
 
201
}
 
202
 
 
203
 
 
204
static void display_winExit(void)
 
205
{
 
206
  trace();
 
207
  printf("shut down your Custom Window system here\n");
 
208
}
 
209
 
 
210
static int  display_winImageFind(char *buf, int len)            { trace();  return 0; }
 
211
static void display_winImageNotFound(void)                      { trace(); }
 
212
 
 
213
static sqInt display_primitivePluginBrowserReady(void)          { return primitiveFail(); }
 
214
static sqInt display_primitivePluginRequestURLStream(void)      { return primitiveFail(); }
 
215
static sqInt display_primitivePluginRequestURL(void)            { return primitiveFail(); }
 
216
static sqInt display_primitivePluginPostURL(void)               { return primitiveFail(); }
 
217
static sqInt display_primitivePluginRequestFileHandle(void)     { return primitiveFail(); }
 
218
static sqInt display_primitivePluginDestroyRequest(void)        { return primitiveFail(); }
 
219
static sqInt display_primitivePluginRequestState(void)          { return primitiveFail(); }
 
220
 
 
221
#if (SqDisplayVersionMajor >= 1 && SqDisplayVersionMinor >= 2)
 
222
static int display_hostWindowClose(int index)                                               { return 0; }
 
223
static int display_hostWindowCreate(int w, int h, int x, int y,
 
224
  char *list, int attributeListLength)                                                      { return 0; }
 
225
static int display_hostWindowShowDisplay(unsigned *dispBitsIndex, int width, int height, int depth,
 
226
  int affectedL, int affectedR, int affectedT, int affectedB, int windowIndex)              { return 0; }
 
227
static int display_hostWindowGetSize(int windowIndex)                                       { return -1; }
 
228
static int display_hostWindowSetSize(int windowIndex, int w, int h)                         { return -1; }
 
229
static int display_hostWindowGetPosition(int windowIndex)                                   { return -1; }
 
230
static int display_hostWindowSetPosition(int windowIndex, int x, int y)                     { return -1; }
 
231
static int display_hostWindowSetTitle(int windowIndex, char *newTitle, int sizeOfTitle)     { return -1; }
 
232
static int display_hostWindowCloseAll(void)                                                 { return 0; }
 
233
#endif
 
234
 
 
235
SqDisplayDefine(custom);        /* name must match that in makeInterface() below */
 
236
 
 
237
 
 
238
/*** module ***/
 
239
 
 
240
 
 
241
static void display_printUsage(void)
 
242
{
 
243
  printf("\nCustom Window <option>s: (none)\n");
 
244
  /* otherwise... */
 
245
}
 
246
 
 
247
static void display_printUsageNotes(void)
 
248
{
 
249
  trace();
 
250
}
 
251
 
 
252
static void display_parseEnvironment(void)
 
253
{
 
254
  trace();
 
255
}
 
256
 
 
257
static int display_parseArgument(int argc, char **argv)
 
258
{
 
259
  return 0;     /* arg not recognised */
 
260
}
 
261
 
 
262
static void *display_makeInterface(void)
 
263
{
 
264
  return &display_custom_itf;           /* name must match that in SqDisplayDefine() above */
 
265
}
 
266
 
 
267
#include "SqModule.h"
 
268
 
 
269
SqModuleDefine(display, custom);        /* name must match that in sqUnixMain.c's moduleDescriptions */