annotate ios/dw.m @ 2583:1d2f5c4eccc5

iOS: Implement keyboard handling for iOS 13.4 and later. Remove mouse and flipped coordinate system code lingering from MacOS.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 23 May 2021 09:43:04 +0000
parents 6fdab466d7a2
children 2acc7ba5dea0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2 * Dynamic Windows:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3 * A GTK like implementation of the iOS GUI
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5 * (C) 2011-2021 Brian Smith <brian@dbsoft.org>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6 * (C) 2011-2018 Mark Hessling <mark@rexx.org>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7 *
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
8 * Requires 13.0 or later.
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9 * clang -g -o dwtest -D__IOS__ -I. dwtest.c ios/dw.m -framework UIKit -framework WebKit -framework Foundation -framework UserNotifications
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11 #import <Foundation/Foundation.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
12 #import <UIKit/UIKit.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
13 #import <WebKit/WebKit.h>
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
14 #import <AudioToolbox/AudioToolbox.h>
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
15 #import <UserNotifications/UserNotifications.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
16 #include "dw.h"
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
17 #include <sys/utsname.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
18 #include <sys/socket.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
19 #include <sys/un.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
20 #include <sys/mman.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
21 #include <sys/time.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
22 #include <sys/stat.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
23 #include <math.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
24
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
25 /* Macros to handle local auto-release pools */
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
26 #define DW_LOCAL_POOL_IN NSAutoreleasePool *localpool = nil; \
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
27 if(DWThread != (DWTID)-1 && pthread_self() != DWThread) \
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
28 localpool = [[NSAutoreleasePool alloc] init];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
29 #define DW_LOCAL_POOL_OUT if(localpool) [localpool drain];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
30
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
31 /* Macros to encapsulate running functions on the main thread */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
32 #define DW_FUNCTION_INIT
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
33 #define DW_FUNCTION_DEFINITION(func, rettype, ...) void _##func(NSPointerArray *_args); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
34 rettype API func(__VA_ARGS__) { \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
35 DW_LOCAL_POOL_IN; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
36 NSPointerArray *_args = [[NSPointerArray alloc] initWithOptions:NSPointerFunctionsOpaqueMemory]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
37 [_args addPointer:(void *)_##func];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
38 #define DW_FUNCTION_ADD_PARAM1(param1) [_args addPointer:(void *)&param1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
39 #define DW_FUNCTION_ADD_PARAM2(param1, param2) [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
40 [_args addPointer:(void *)&param2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
41 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
42 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
43 [_args addPointer:(void *)&param3];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
44 #define DW_FUNCTION_ADD_PARAM4(param1, param2, param3, param4) [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
45 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
46 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
47 [_args addPointer:(void *)&param4];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
48 #define DW_FUNCTION_ADD_PARAM5(param1, param2, param3, param4, param5) [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
49 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
50 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
51 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
52 [_args addPointer:(void *)&param5];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
53 #define DW_FUNCTION_ADD_PARAM6(param1, param2, param3, param4, param5, param6) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
54 [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
55 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
56 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
57 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
58 [_args addPointer:(void *)&param5]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
59 [_args addPointer:(void *)&param6];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
60 #define DW_FUNCTION_ADD_PARAM7(param1, param2, param3, param4, param5, param6, param7) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
61 [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
62 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
63 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
64 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
65 [_args addPointer:(void *)&param5]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
66 [_args addPointer:(void *)&param6]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
67 [_args addPointer:(void *)&param7];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
68 #define DW_FUNCTION_ADD_PARAM8(param1, param2, param3, param4, param5, param6, param7, param8) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
69 [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
70 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
71 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
72 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
73 [_args addPointer:(void *)&param5]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
74 [_args addPointer:(void *)&param6]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
75 [_args addPointer:(void *)&param7]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
76 [_args addPointer:(void *)&param8];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
77 #define DW_FUNCTION_ADD_PARAM9(param1, param2, param3, param4, param5, param6, param7, param8, param9) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
78 [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
79 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
80 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
81 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
82 [_args addPointer:(void *)&param5]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
83 [_args addPointer:(void *)&param6]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
84 [_args addPointer:(void *)&param7]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
85 [_args addPointer:(void *)&param8]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
86 [_args addPointer:(void *)&param9];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
87 #define DW_FUNCTION_RESTORE_PARAM1(param1, vartype1) vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
88 #define DW_FUNCTION_RESTORE_PARAM2(param1, vartype1, param2, vartype2) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
89 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
90 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
91 #define DW_FUNCTION_RESTORE_PARAM3(param1, vartype1, param2, vartype2, param3, vartype3) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
92 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
93 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
94 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
95 #define DW_FUNCTION_RESTORE_PARAM4(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
96 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
97 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
98 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
99 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
100 #define DW_FUNCTION_RESTORE_PARAM5(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
101 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
102 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
103 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
104 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
105 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
106 #define DW_FUNCTION_RESTORE_PARAM6(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
107 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
108 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
109 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
110 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
111 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
112 vartype6 param6 = *((vartype6 *)[_args pointerAtIndex:6]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
113 #define DW_FUNCTION_RESTORE_PARAM7(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
114 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
115 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
116 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
117 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
118 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
119 vartype6 param6 = *((vartype6 *)[_args pointerAtIndex:6]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
120 vartype7 param7 = *((vartype7 *)[_args pointerAtIndex:7]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
121 #define DW_FUNCTION_RESTORE_PARAM8(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
122 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
123 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
124 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
125 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
126 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
127 vartype6 param6 = *((vartype6 *)[_args pointerAtIndex:6]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
128 vartype7 param7 = *((vartype7 *)[_args pointerAtIndex:7]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
129 vartype8 param8 = *((vartype8 *)[_args pointerAtIndex:8]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
130 #define DW_FUNCTION_RESTORE_PARAM9(param1, vartype1, param2, vartype2, param3, vartype3, param4, vartype4, param5, vartype5, param6, vartype6, param7, vartype7, param8, vartype8, param9, vartype9) \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
131 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
132 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
133 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
134 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
135 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
136 vartype6 param6 = *((vartype6 *)[_args pointerAtIndex:6]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
137 vartype7 param7 = *((vartype7 *)[_args pointerAtIndex:7]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
138 vartype8 param8 = *((vartype8 *)[_args pointerAtIndex:8]); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
139 vartype9 param9 = *((vartype9 *)[_args pointerAtIndex:9]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
140 #define DW_FUNCTION_END }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
141 #define DW_FUNCTION_NO_RETURN(func) [DWObj safeCall:@selector(callBack:) withObject:_args]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
142 [_args release]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
143 DW_LOCAL_POOL_OUT; } \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
144 void _##func(NSPointerArray *_args) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
145 #define DW_FUNCTION_RETURN(func, rettype) [DWObj safeCall:@selector(callBack:) withObject:_args]; {\
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
146 void *tmp = [_args pointerAtIndex:[_args count]-1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
147 rettype myreturn = *((rettype *)tmp); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
148 free(tmp); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
149 return myreturn; } \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
150 [_args release]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
151 DW_LOCAL_POOL_OUT; } \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
152 void _##func(NSPointerArray *_args) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
153 #define DW_FUNCTION_RETURN_THIS(_retvar) { void *_myreturn = malloc(sizeof(_retvar)); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
154 memcpy(_myreturn, (void *)&_retvar, sizeof(_retvar)); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
155 [_args addPointer:_myreturn]; }}
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
156 #define DW_FUNCTION_RETURN_NOTHING }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
157
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
158 unsigned long _dw_colors[] =
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
159 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
160 0x00000000, /* 0 black */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
161 0x000000bb, /* 1 red */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
162 0x0000bb00, /* 2 green */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
163 0x0000aaaa, /* 3 yellow */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
164 0x00cc0000, /* 4 blue */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
165 0x00bb00bb, /* 5 magenta */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
166 0x00bbbb00, /* 6 cyan */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
167 0x00bbbbbb, /* 7 white */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
168 0x00777777, /* 8 grey */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
169 0x000000ff, /* 9 bright red */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
170 0x0000ff00, /* 10 bright green */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
171 0x0000eeee, /* 11 bright yellow */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
172 0x00ff0000, /* 12 bright blue */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
173 0x00ff00ff, /* 13 bright magenta */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
174 0x00eeee00, /* 14 bright cyan */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
175 0x00ffffff, /* 15 bright white */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
176 0xff000000 /* 16 default color */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
177 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
178
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
179 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
180 * List those icons that have transparency first
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
181 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
182 #define NUM_EXTS 8
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
183 char *_dw_image_exts[NUM_EXTS+1] =
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
184 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
185 ".png",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
186 ".ico",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
187 ".icns",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
188 ".gif",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
189 ".jpg",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
190 ".jpeg",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
191 ".tiff",
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
192 ".bmp",
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
193 NULL
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
194 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
195
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
196 char *_dw_get_image_extension(const char *filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
197 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
198 char *file = alloca(strlen(filename) + 6);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
199 int found_ext = 0,i;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
200
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
201 /* Try various extentions */
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
202 for(i = 0; i < NUM_EXTS; i++)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
203 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
204 strcpy(file, filename);
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
205 strcat(file, _dw_image_exts[i]);
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
206 if(access(file, R_OK ) == 0)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
207 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
208 found_ext = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
209 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
210 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
211 }
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
212 if(found_ext == 1)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
213 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
214 return _dw_image_exts[i];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
215 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
216 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
217 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
218
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
219 /* Return the RGB color regardless if a predefined color was passed */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
220 unsigned long _dw_get_color(unsigned long thiscolor)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
221 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
222 if(thiscolor & DW_RGB_COLOR)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
223 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
224 return thiscolor & ~DW_RGB_COLOR;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
225 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
226 else if(thiscolor < 17)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
227 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
228 return _dw_colors[thiscolor];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
229 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
230 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
231 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
232
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
233 /* Thread specific storage */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
234 pthread_key_t _dw_pool_key;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
235 pthread_key_t _dw_fg_color_key;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
236 pthread_key_t _dw_bg_color_key;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
237 static int DWOSMajor, DWOSMinor, DWOSBuild;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
238 static char _dw_bundle_path[PATH_MAX+1] = { 0 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
239 static char _dw_app_id[_DW_APP_ID_SIZE+1]= {0};
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
240 static int _dw_dark_mode_state = DW_FEATURE_UNSUPPORTED;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
241
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
242 /* Create a default colors for a thread */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
243 void _dw_init_colors(void)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
244 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
245 UIColor *fgcolor = [[UIColor grayColor] retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
246 pthread_setspecific(_dw_fg_color_key, fgcolor);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
247 pthread_setspecific(_dw_bg_color_key, NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
248 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
249
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
250 typedef struct _sighandler
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
251 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
252 struct _sighandler *next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
253 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
254 HWND window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
255 int id;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
256 void *signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
257 void *discfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
258 void *data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
259
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
260 } SignalHandler;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
261
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
262 static SignalHandler *DWRoot = NULL;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
263
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
264 /* Some internal prototypes */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
265 static void _dw_do_resize(Box *thisbox, int x, int y);
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
266 void _dw_handle_resize_events(Box *thisbox);
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
267 int _dw_remove_userdata(UserData **root, const char *varname, int all);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
268 int _dw_main_iteration(NSDate *date);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
269 CGContextRef _dw_draw_context(id image, bool antialias);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
270 typedef id (*DWIMP)(id, SEL, ...);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
271
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
272 /* Internal function to queue a window redraw */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
273 void _dw_redraw(id window, int skip)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
274 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
275 static id lastwindow = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
276 id redraw = lastwindow;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
277
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
278 if(skip && window == nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
279 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
280
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
281 lastwindow = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
282 if(redraw != lastwindow && redraw != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
283 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
284 dw_window_redraw(redraw);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
285 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
286 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
287
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
288 SignalHandler *_dw_get_handler(HWND window, int messageid)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
289 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
290 SignalHandler *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
291
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
292 /* Find any callbacks for this function */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
293 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
294 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
295 if(tmp->message == messageid && window == tmp->window)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
296 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
297 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
298 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
299 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
300 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
301 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
302 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
303
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
304 typedef struct
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
305 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
306 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
307 char name[30];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
308
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
309 } DWSignalList;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
310
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
311 /* List of signals */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
312 #define SIGNALMAX 19
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
313
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
314 static DWSignalList DWSignalTranslate[SIGNALMAX] = {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
315 { 1, DW_SIGNAL_CONFIGURE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
316 { 2, DW_SIGNAL_KEY_PRESS },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
317 { 3, DW_SIGNAL_BUTTON_PRESS },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
318 { 4, DW_SIGNAL_BUTTON_RELEASE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
319 { 5, DW_SIGNAL_MOTION_NOTIFY },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
320 { 6, DW_SIGNAL_DELETE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
321 { 7, DW_SIGNAL_EXPOSE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
322 { 8, DW_SIGNAL_CLICKED },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
323 { 9, DW_SIGNAL_ITEM_ENTER },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
324 { 10, DW_SIGNAL_ITEM_CONTEXT },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
325 { 11, DW_SIGNAL_LIST_SELECT },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
326 { 12, DW_SIGNAL_ITEM_SELECT },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
327 { 13, DW_SIGNAL_SET_FOCUS },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
328 { 14, DW_SIGNAL_VALUE_CHANGED },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
329 { 15, DW_SIGNAL_SWITCH_PAGE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
330 { 16, DW_SIGNAL_TREE_EXPAND },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
331 { 17, DW_SIGNAL_COLUMN_CLICK },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
332 { 18, DW_SIGNAL_HTML_RESULT },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
333 { 19, DW_SIGNAL_HTML_CHANGED }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
334 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
335
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
336 int _dw_event_handler1(id object, id event, int message)
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
337 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
338 SignalHandler *handler = _dw_get_handler(object, message);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
339 /* NSLog(@"Event handler - type %d\n", message); */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
340
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
341 if(handler)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
342 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
343 switch(message)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
344 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
345 /* Timer event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
346 case 0:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
347 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
348 int (* API timerfunc)(void *) = (int (* API)(void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
349
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
350 if(!timerfunc(handler->data))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
351 dw_timer_disconnect(handler->id);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
352 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
353 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
354 /* Configure/Resize event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
355 case 1:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
356 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
357 int (*sizefunc)(HWND, int, int, void *) = handler->signalfunction;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
358 CGSize size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
359
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
360 if([object isKindOfClass:[UIWindow class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
361 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
362 UIWindow *window = object;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
363 size = [window frame].size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
364 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
365 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
366 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
367 UIView *view = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
368 size = [view frame].size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
369 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
370
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
371 if(size.width > 0 && size.height > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
372 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
373 return sizefunc(object, size.width, size.height, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
374 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
375 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
376 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
377 case 2:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
378 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
379 int (*keypressfunc)(HWND, char, int, int, void *, char *) = handler->signalfunction;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
380 int special = 0;
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
381 NSString *nchar = @"";
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
382 if (@available(iOS 13.4, *)) {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
383 UIKey *key = event;
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
384
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
385 nchar = [key charactersIgnoringModifiers];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
386 special = (int)[key modifierFlags];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
387 } else {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
388 // Probably won't even get here if not 13.4
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
389 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
390 unichar vk = [nchar characterAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
391 char *utf8 = NULL, ch = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
392
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
393 /* Handle a valid key */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
394 if([nchar length] == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
395 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
396 char *tmp = (char *)[nchar UTF8String];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
397 if(tmp && strlen(tmp) == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
398 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
399 ch = tmp[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
400 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
401 utf8 = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
402 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
403
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
404 return keypressfunc(handler->window, ch, (int)vk, special, handler->data, utf8);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
405 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
406 /* Button press and release event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
407 case 3:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
408 case 4:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
409 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
410 int (* API buttonfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
411 int button = 1;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
412 CGPoint p = {0};
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
413
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
414 if([event isMemberOfClass:[UIEvent class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
415 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
416 UITouch *touch = [[event allTouches] anyObject];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
417
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
418 p = [touch locationInView:[touch view]];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
419
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
420 if(@available(ios 13.4, *))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
421 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
422 if([event buttonMask] & UIEventButtonMaskSecondary)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
423 button = 2;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
424 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
425 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
426
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
427 return buttonfunc(object, (int)p.x, (int)p.y, button, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
428 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
429 /* Motion notify event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
430 case 5:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
431 {
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
432 #if 0 /* TODO: See if this can be replicated with gestures/swipes */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
433 int (* API motionfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
434
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
435 return motionfunc(object, (int)p.x, (int)p.y, (int)buttonmask, handler->data);
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
436 #endif
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
437 return -1;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
438 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
439 /* Window close event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
440 case 6:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
441 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
442 int (* API closefunc)(HWND, void *) = (int (* API)(HWND, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
443 return closefunc(object, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
444 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
445 /* Window expose/draw event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
446 case 7:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
447 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
448 DWExpose exp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
449 int (* API exposefunc)(HWND, DWExpose *, void *) = (int (* API)(HWND, DWExpose *, void *))handler->signalfunction;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
450 CGRect rect = [object frame];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
451
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
452 exp.x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
453 exp.y = rect.origin.y;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
454 exp.width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
455 exp.height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
456 int result = exposefunc(object, &exp, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
457 return result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
458 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
459 /* Clicked event for buttons and menu items */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
460 case 8:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
461 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
462 int (* API clickfunc)(HWND, void *) = (int (* API)(HWND, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
463
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
464 return clickfunc(object, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
465 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
466 /* Container class selection event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
467 case 9:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
468 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
469 int (*containerselectfunc)(HWND, char *, void *, void *) = handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
470 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
471
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
472 return containerselectfunc(handler->window, params[0], handler->data, params[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
473 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
474 /* Container context menu event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
475 case 10:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
476 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
477 int (* API containercontextfunc)(HWND, char *, int, int, void *, void *) = (int (* API)(HWND, char *, int, int, void *, void *))handler->signalfunction;
2467
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
478 void **params = (void **)event;
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
479 char *text = (char *)params[0];
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
480 void *user = params[1];
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
481 int x = DW_POINTER_TO_INT(params[2]);
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
482 int y = DW_POINTER_TO_INT(params[3]);
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
483
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
484 return containercontextfunc(handler->window, text, x, y, handler->data, user);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
485 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
486 /* Generic selection changed event for several classes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
487 case 11:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
488 case 14:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
489 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
490 int (* API valuechangedfunc)(HWND, int, void *) = (int (* API)(HWND, int, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
491 int selected = DW_POINTER_TO_INT(event);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
492
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
493 return valuechangedfunc(handler->window, selected, handler->data);;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
494 }
2429
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
495 /* Tree class selection event */
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
496 case 12:
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
497 {
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
498 int (* API treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = (int (* API)(HWND, HTREEITEM, char *, void *, void *))handler->signalfunction;
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
499 char *text = NULL;
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
500 void *user = NULL;
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
501 id item = nil;
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
502
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
503 if([object isKindOfClass:[UITableView class]] && event)
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
504 {
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
505 void **params = (void **)event;
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
506
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
507 text = params[0];
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
508 user = params[1];
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
509 }
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
510
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
511 return treeselectfunc(handler->window, item, text, handler->data, user);
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
512 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
513 /* Set Focus event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
514 case 13:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
515 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
516 int (* API setfocusfunc)(HWND, void *) = (int (* API)(HWND, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
517
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
518 return setfocusfunc(handler->window, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
519 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
520 /* Notebook page change event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
521 case 15:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
522 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
523 int (* API switchpagefunc)(HWND, unsigned long, void *) = (int (* API)(HWND, unsigned long, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
524 int pageid = DW_POINTER_TO_INT(event);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
525
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
526 return switchpagefunc(handler->window, pageid, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
527 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
528 /* Tree expand event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
529 case 16:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
530 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
531 int (* API treeexpandfunc)(HWND, HTREEITEM, void *) = (int (* API)(HWND, HTREEITEM, void *))handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
532
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
533 return treeexpandfunc(handler->window, (HTREEITEM)event, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
534 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
535 /* Column click event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
536 case 17:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
537 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
538 int (* API clickcolumnfunc)(HWND, int, void *) = handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
539 int column_num = DW_POINTER_TO_INT(event);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
540
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
541 return clickcolumnfunc(handler->window, column_num, handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
542 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
543 /* HTML result event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
544 case 18:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
545 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
546 int (* API htmlresultfunc)(HWND, int, char *, void *, void *) = handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
547 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
548 NSString *result = params[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
549
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
550 return htmlresultfunc(handler->window, [result length] ? DW_ERROR_NONE : DW_ERROR_UNKNOWN, [result length] ? (char *)[result UTF8String] : NULL, params[1], handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
551 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
552 /* HTML changed event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
553 case 19:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
554 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
555 int (* API htmlchangedfunc)(HWND, int, char *, void *) = handler->signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
556 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
557 NSString *uri = params[1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
558
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
559 return htmlchangedfunc(handler->window, DW_POINTER_TO_INT(params[0]), (char *)[uri UTF8String], handler->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
560 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
561 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
562 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
563 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
564 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
565
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
566 /* Sub function to handle redraws */
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
567 int _dw_event_handler(id object, id event, int message)
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
568 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
569 int ret = _dw_event_handler1(object, event, message);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
570 if(ret != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
571 _dw_redraw(nil, FALSE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
572 return ret;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
573 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
574
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
575 /* Subclass for the Timer type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
576 @interface DWTimerHandler : NSObject { }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
577 -(void)runTimer:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
578 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
579
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
580 @implementation DWTimerHandler
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
581 -(void)runTimer:(id)sender { _dw_event_handler(sender, nil, 0); }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
582 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
583
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
584 @interface DWAppDel : UIResponder <UIApplicationDelegate> { }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
585 -(void)applicationWillTerminate:(UIApplication *)application;
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
586 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions;
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
587 @end
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
588
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
589 @implementation DWAppDel
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
590 -(void)applicationWillTerminate:(UIApplication *)application
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
591 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
592 /* On iOS we can't prevent temrination, but send the notificatoin anyway */
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
593 _dw_event_handler(application, nil, 6);
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
594 }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
595 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
596 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
597 return true;
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
598 }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
599 @end
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
600
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
601 static UIApplication *DWApp = nil;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
602 static UIFont *DWDefaultFont;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
603 static DWTimerHandler *DWHandler;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
604 static NSMutableArray *_DWDirtyDrawables;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
605 static DWTID DWThread = (DWTID)-1;
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
606 static HEV DWMainEvent;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
607
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
608 /* Used for doing bitblts from the main thread */
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
609 typedef struct _dw_bitbltinfo
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
610 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
611 id src;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
612 id dest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
613 int xdest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
614 int ydest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
615 int width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
616 int height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
617 int xsrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
618 int ysrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
619 int srcwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
620 int srcheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
621 } DWBitBlt;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
622
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
623 /* Subclass for a test object type */
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
624 @interface DWObject : NSObject
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
625 {
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
626 /* A normally hidden window, at the top of the view hierarchy.
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
627 * Since iOS messageboxes and such require a view controller,
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
628 * we show this hidden window when necessary and use it during
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
629 * the creation of alerts and dialog boxes that don't have one.
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
630 */
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
631 UIWindow *hiddenWindow;
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
632 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
633 -(void)uselessThread:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
634 -(void)menuHandler:(id)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
635 -(void)doBitBlt:(id)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
636 -(void)doFlush:(id)param;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
637 -(UIWindow *)hiddenWindow;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
638 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
639
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
640 API_AVAILABLE(ios(13.0))
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
641 @interface DWMenu : NSObject
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
642 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
643 UIMenu *menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
644 NSMutableArray *children;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
645 NSString *title;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
646 unsigned long tag;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
647 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
648 -(id)initWithTag:(unsigned long)newtag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
649 -(void)setTitle:(NSString *)input;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
650 -(UIMenu *)menu;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
651 -(unsigned long)tag;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
652 -(id)childWithTag:(unsigned long)tag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
653 -(void)addItem:(id)item;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
654 -(void)removeItem:(id)item;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
655 -(void)dealloc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
656 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
657
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
658 API_AVAILABLE(ios(13.0))
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
659 @interface DWMenuItem : UICommand
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
660 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
661 BOOL check, enabled;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
662 unsigned long tag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
663 DWMenu *submenu, *menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
664 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
665 -(void)setCheck:(BOOL)input;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
666 -(void)setEnabled:(BOOL)input;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
667 -(void)setTag:(unsigned long)input;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
668 -(void)setSubmenu:(DWMenu *)input;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
669 -(void)setMenu:(DWMenu *)input;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
670 -(DWMenu *)submenu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
671 -(DWMenu *)menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
672 -(BOOL)check;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
673 -(BOOL)enabled;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
674 -(unsigned long)tag;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
675 -(void)dealloc;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
676 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
677
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
678 /* So basically to implement our event handlers...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
679 * it looks like we are going to have to subclass
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
680 * basically everything. Was hoping to add methods
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
681 * to the superclasses but it looks like you can
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
682 * only add methods and no variables, which isn't
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
683 * going to work. -Brian
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
684 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
685
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
686 /* Subclass for a box type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
687 @interface DWBox : UIView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
688 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
689 Box *box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
690 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
691 UIColor *bgcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
692 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
693 -(id)init;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
694 -(void)dealloc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
695 -(Box *)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
696 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
697 -(void)setUserdata:(void *)input;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
698 -(void)drawRect:(CGRect)rect;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
699 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4));
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
700 -(void)setColor:(unsigned long)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
701 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
702
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
703 @implementation DWBox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
704 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
705 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
706 self = [super init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
707
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
708 if (self)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
709 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
710 box = calloc(1, sizeof(Box));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
711 box->type = DW_VERT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
712 box->vsize = box->hsize = SIZEEXPAND;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
713 box->width = box->height = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
714 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
715 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
716 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
717 -(void)dealloc
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
718 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
719 UserData *root = userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
720 if(box->items)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
721 free(box->items);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
722 free(box);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
723 _dw_remove_userdata(&root, NULL, TRUE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
724 dw_signal_disconnect_by_window(self);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
725 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
726 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
727 -(Box *)box { return box; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
728 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
729 -(void)setUserdata:(void *)input { userdata = input; }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
730 -(void)drawRect:(CGRect)rect
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
731 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
732 if(bgcolor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
733 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
734 [bgcolor set];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
735 UIRectFill([self bounds]);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
736 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
737 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
738 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4)){ _dw_event_handler(self, key, 2); }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
739 -(void)setColor:(unsigned long)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
740 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
741 id orig = bgcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
742
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
743 if(input == _dw_colors[DW_CLR_DEFAULT])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
744 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
745 bgcolor = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
746 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
747 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
748 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
749 bgcolor = [[UIColor colorWithRed: DW_RED_VALUE(input)/255.0 green: DW_GREEN_VALUE(input)/255.0 blue: DW_BLUE_VALUE(input)/255.0 alpha: 1] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
750 if(UIGraphicsGetCurrentContext())
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
751 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
752 [bgcolor set];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
753 UIRectFill([self bounds]);
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
754 }
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
755 }
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
756 [self setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
757 [orig release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
758 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
759 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
760
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
761 @interface DWWindow : UIWindow
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
762 {
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
763 DWMenu *windowmenu, *popupmenu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
764 int redraw;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
765 int shown;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
766 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
767 -(void)sendEvent:(UIEvent *)theEvent;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
768 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4));
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
769 -(int)redraw;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
770 -(void)setRedraw:(int)val;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
771 -(int)shown;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
772 -(void)setShown:(int)val;
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
773 -(void)layoutSubviews;
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
774 -(void)setMenu:(DWMenu *)input;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
775 -(void)setPopupMenu:(DWMenu *)input;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
776 -(DWMenu *)menu;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
777 -(DWMenu *)popupMenu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
778 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
779
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
780 @implementation DWWindow
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
781 -(void)sendEvent:(UIEvent *)theEvent
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
782 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
783 int rcode = -1;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
784 if([theEvent type] == UIEventTypePresses)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
785 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
786 rcode = _dw_event_handler(self, theEvent, 2);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
787 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
788 if ( rcode != TRUE )
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
789 [super sendEvent:theEvent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
790 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
791 -(void)keyDown:(UIKey *)key { }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
792 -(int)redraw { return redraw; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
793 -(void)setRedraw:(int)val { redraw = val; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
794 -(int)shown { return shown; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
795 -(void)setShown:(int)val { shown = val; }
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
796 -(void)layoutSubviews { }
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
797 -(void)setMenu:(DWMenu *)input { [windowmenu release]; windowmenu = input; [windowmenu retain]; }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
798 -(void)setPopupMenu:(DWMenu *)input { [popupmenu release]; popupmenu = input; [popupmenu retain]; }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
799 -(DWMenu *)menu { return windowmenu; }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
800 -(DWMenu *)popupMenu { return popupmenu; }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
801 -(void)dealloc
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
802 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
803 if(windowmenu)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
804 [windowmenu release];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
805 if(popupmenu)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
806 [popupmenu release];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
807 dw_signal_disconnect_by_window(self);
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
808 [super dealloc];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
809 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
810 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
811
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
812 @interface DWImage : NSObject
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
813 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
814 UIImage *image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
815 CGContextRef cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
816 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
817 -(id)initWithSize:(CGSize)size;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
818 -(id)initWithCGImage:(CGImageRef)cgimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
819 -(id)initWithUIImage:(UIImage *)newimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
820 -(void)setImage:(UIImage *)input;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
821 -(UIImage *)image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
822 -(CGContextRef)cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
823 -(void)dealloc;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
824 @end
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
825
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
826 /* Subclass for a render area type */
2436
ab36fbb50fe5 iOS: Fixes to get cachedImage functionality working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2435
diff changeset
827 @interface DWRender : UIView
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
828 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
829 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
830 UIFont *font;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
831 CGSize size;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
832 DWImage *cachedImage;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
833 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
834 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
835 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
836 -(void)setFont:(UIFont *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
837 -(UIFont *)font;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
838 -(void)setSize:(CGSize)input;
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
839 -(CGSize)size;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
840 -(DWImage *)cachedImage;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
841 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4));
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
842 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
843
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
844 @implementation DWRender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
845 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
846 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
847 -(void)setFont:(UIFont *)input { [font release]; font = input; [font retain]; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
848 -(UIFont *)font { return font; }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
849 -(void)setSize:(CGSize)input {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
850 size = input;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
851 if(cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
852 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
853 DWImage *oldimage = cachedImage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
854 UIImage *newimage;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
855 UIGraphicsBeginImageContext(self.frame.size);
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
856 [[self layer] renderInContext:UIGraphicsGetCurrentContext()];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
857 newimage = UIGraphicsGetImageFromCurrentImageContext();
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
858 UIGraphicsEndImageContext();
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
859 cachedImage = [[DWImage alloc] initWithUIImage:newimage];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
860 [cachedImage retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
861 [oldimage release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
862 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
863 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
864 -(CGSize)size { return size; }
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
865 -(DWImage *)cachedImage {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
866 if(!cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
867 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
868 UIImage *newimage;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
869 UIGraphicsBeginImageContext(self.frame.size);
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
870 [[self layer] renderInContext:UIGraphicsGetCurrentContext()];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
871 newimage = UIGraphicsGetImageFromCurrentImageContext();
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
872 UIGraphicsEndImageContext();
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
873 cachedImage = [[DWImage alloc] initWithUIImage:newimage];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
874 [cachedImage retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
875 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
876 /* Mark this render dirty if something is requesting it to draw */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
877 if(![_DWDirtyDrawables containsObject:self])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
878 [_DWDirtyDrawables addObject:self];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
879 return cachedImage;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
880 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
881 -(void)drawRect:(CGRect)rect {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
882 _dw_event_handler(self, nil, 7);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
883 if(cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
884 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
885 [[cachedImage image] drawInRect:self.bounds];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
886 [_DWDirtyDrawables removeObject:self];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
887 [self setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
888 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
889 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
890 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4)){ _dw_event_handler(self, key, 2); }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
891 -(void)dealloc {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
892 UserData *root = userdata;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
893 _dw_remove_userdata(&root, NULL, TRUE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
894 [font release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
895 dw_signal_disconnect_by_window(self);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
896 [cachedImage release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
897 [_DWDirtyDrawables removeObject:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
898 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
899 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
900 -(BOOL)acceptsFirstResponder { return YES; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
901 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
902
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
903 @interface DWFontPickerDelegate : UIResponder <UIFontPickerViewControllerDelegate>
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
904 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
905 DWDialog *dialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
906 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
907 -(void)fontPickerViewControllerDidPickFont:(UIFontPickerViewController *)viewController;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
908 -(void)fontPickerViewControllerDidCancel:(UIFontPickerViewController *)viewController;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
909 -(void)setDialog:(DWDialog *)newdialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
910 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
911
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
912 @implementation DWFontPickerDelegate
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
913 -(void)fontPickerViewControllerDidPickFont:(UIFontPickerViewController *)viewController
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
914 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
915 if(viewController.selectedFontDescriptor)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
916 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
917 UIFont *font = [UIFont fontWithDescriptor:viewController.selectedFontDescriptor size:9];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
918 dw_dialog_dismiss(dialog, font);
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
919 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
920 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
921 dw_dialog_dismiss(dialog, NULL);
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
922 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
923 -(void)fontPickerViewControllerDidCancel:(UIFontPickerViewController *)viewController
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
924 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
925 dw_dialog_dismiss(dialog, NULL);
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
926 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
927 -(void)setDialog:(DWDialog *)newdialog { dialog = newdialog; }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
928 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
929
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
930 @interface DWColorPickerDelegate : UIResponder <UIColorPickerViewControllerDelegate>
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
931 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
932 DWDialog *dialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
933 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
934 -(void)colorPickerViewControllerDidSelectColor:(UIColorPickerViewController *)viewController API_AVAILABLE(ios(14.0));
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
935 -(void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController API_AVAILABLE(ios(14.0));
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
936 -(void)setDialog:(DWDialog *)newdialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
937 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
938
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
939 @implementation DWColorPickerDelegate
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
940 -(void)colorPickerViewControllerDidSelectColor:(UIColorPickerViewController *)viewController API_AVAILABLE(ios(14.0))
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
941 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
942 if([viewController selectedColor])
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
943 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
944 CGFloat red, green, blue;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
945 [[viewController selectedColor] getRed:&red green:&green blue:&blue alpha:NULL];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
946 dw_dialog_dismiss(dialog, DW_UINT_TO_POINTER(DW_RGB((int)(red * 255), (int)(green *255), (int)(blue *255))));
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
947 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
948 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
949 dw_dialog_dismiss(dialog, NULL);
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
950 [viewController dismissViewControllerAnimated:YES completion:nil];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
951 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
952 -(void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController API_AVAILABLE(ios(14.0))
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
953 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
954 dw_dialog_dismiss(dialog, NULL);
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
955 [viewController dismissViewControllerAnimated:YES completion:nil];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
956 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
957 -(void)setDialog:(DWDialog *)newdialog { dialog = newdialog; }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
958 @end
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
959
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
960 @interface DWDocumentPickerDelegate : UIResponder <UIDocumentPickerDelegate>
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
961 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
962 DWDialog *dialog;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
963 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
964 -(void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
965 -(void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
966 -(void)setDialog:(DWDialog *)newdialog;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
967 @end
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
968
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
969 @implementation DWDocumentPickerDelegate
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
970 -(void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
971 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
972 NSURL *url = [urls firstObject];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
973 char *file = NULL;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
974
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
975 if(url && [[url absoluteString] length] > 0)
2445
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
976 {
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
977 const char *tmp = [[url absoluteString] UTF8String];
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
978
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
979 if(tmp)
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
980 {
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
981 /* Strip off file:// so it looks the same as other platforms */
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
982 if(strncmp(tmp, "file://", 7) == 0)
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
983 file = strdup(&tmp[7]);
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
984 else
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
985 file = strdup(tmp);
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
986 }
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
987 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
988 dw_dialog_dismiss(dialog, file);
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
989 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
990 -(void)documentPickerWasCancelled:(UIDocumentPickerViewController *)controller
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
991 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
992 dw_dialog_dismiss(dialog, NULL);
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
993 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
994 -(void)setDialog:(DWDialog *)newdialog { dialog = newdialog; }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
995 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
996
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
997 @implementation DWObject
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
998 -(id)init
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
999 {
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
1000 self = [super init];
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1001 /* This previously had the code in delayedIinit: */
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1002 return self;
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1003 }
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1004 -(void)delayedInit:(id)param
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1005 {
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1006 /* When DWObject is initialized, UIApplicationMain() has not yet been called...
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1007 * So the created objects can't interact with the user interface... therefore
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1008 * we wait until UIApplicationMain() has been called and run this then.
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1009 */
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1010 hiddenWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1011 [hiddenWindow setWindowLevel:UIWindowLevelAlert+1];
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1012 [hiddenWindow setHidden:YES];
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1013 [hiddenWindow setRootViewController:[UIViewController new]];
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1014 /* Handle setting the dark mode state now that DWObj is valid */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1015 if(_dw_dark_mode_state != DW_FEATURE_UNSUPPORTED)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1016 dw_feature_set(DW_FEATURE_DARK_MODE, _dw_dark_mode_state);
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1017 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1018 -(UIWindow *)hiddenWindow { return hiddenWindow; };
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1019 -(void)uselessThread:(id)sender { /* Thread only to initialize threading */ }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1020 -(void)menuHandler:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1021 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1022 _dw_event_handler(param, nil, 8);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1023 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1024 -(void)callBack:(NSPointerArray *)params
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1025 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1026 void (*mycallback)(NSPointerArray *) = [params pointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1027 if(mycallback)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1028 mycallback(params);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1029 }
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1030 -(void)colorPicker:(NSMutableArray *)params
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1031 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1032 if (@available(iOS 14.0, *))
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1033 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1034 DWDialog *dialog = dw_dialog_new(NULL);
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1035 UIColorPickerViewController *picker = [[UIColorPickerViewController alloc] init];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1036 DWColorPickerDelegate *delegate = [[DWColorPickerDelegate alloc] init];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1037
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1038 /* Setup our picker */
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1039 [picker setSupportsAlpha:NO];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1040 /* Unhide our hidden window and make it key */
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1041 [hiddenWindow setHidden:NO];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1042 [hiddenWindow makeKeyAndVisible];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1043 [delegate setDialog:dialog];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1044 [picker setDelegate:delegate];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1045 /* Wait for them to pick a color */
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1046 [[hiddenWindow rootViewController] presentViewController:picker animated:YES completion:nil];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1047 [params addObject:[NSNumber numberWithUnsignedLong:DW_POINTER_TO_UINT(dw_dialog_wait(dialog))]];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1048 /* Once the dialog is gone we can rehide our window */
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1049 [hiddenWindow resignKeyWindow];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1050 [hiddenWindow setHidden:YES];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1051 [picker release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1052 [delegate release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1053 } else {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1054 // Fallback on earlier versions
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1055 };
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1056 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1057 -(void)fontPicker:(NSPointerArray *)params
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1058 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1059 DWDialog *dialog = dw_dialog_new(NULL);
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1060 UIFontPickerViewController *picker = [[UIFontPickerViewController alloc] init];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1061 DWFontPickerDelegate *delegate = [[DWFontPickerDelegate alloc] init];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1062 UIFont *font;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1063
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1064 /* Unhide our hidden window and make it key */
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1065 [hiddenWindow setHidden:NO];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1066 [hiddenWindow makeKeyAndVisible];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1067 [delegate setDialog:dialog];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1068 [picker setDelegate:delegate];
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
1069 /* Wait for them to pick a font */
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1070 [[hiddenWindow rootViewController] presentViewController:picker animated:YES completion:nil];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1071 font = dw_dialog_wait(dialog);
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1072 /* Once the dialog is gone we can rehide our window */
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1073 [hiddenWindow resignKeyWindow];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1074 [hiddenWindow setHidden:YES];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1075
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1076 if(font)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1077 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1078 NSString *fontname = [font fontName];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1079 NSString *output = [NSString stringWithFormat:@"%d.%s", (int)[font pointSize], [fontname UTF8String]];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1080 [params addPointer:strdup([output UTF8String])];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1081 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1082 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1083 [params addPointer:NULL];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1084 [picker release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1085 [delegate release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1086 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1087 -(void)filePicker:(NSPointerArray *)params
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1088 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1089 DWDialog *dialog = dw_dialog_new(NULL);
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1090 UIDocumentPickerViewController *picker ;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1091 DWDocumentPickerDelegate *delegate = [[DWDocumentPickerDelegate alloc] init];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1092 UIDocumentPickerMode mode = UIDocumentPickerModeOpen;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1093 char *defpath = [params pointerAtIndex:0];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1094 char *ext = [params pointerAtIndex:1];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1095 int flags = DW_POINTER_TO_INT([params pointerAtIndex:2]);
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1096 char *file = NULL;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1097 NSArray *UTIs;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1098
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1099 /* Setup the picker */
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1100 if(flags & DW_FILE_SAVE)
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1101 mode = UIDocumentPickerModeExportToService;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1102 /* Try to generate a UTI for our passed extension */
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1103 if(ext)
2445
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
1104 UTIs = [NSArray arrayWithObjects:[NSString stringWithFormat:@"public.%s", ext], @"public.text", nil];
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1105 else
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1106 UTIs = @[@"public.text"];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1107 picker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:UTIs inMode:mode];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1108 [picker setAllowsMultipleSelection:NO];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1109 [picker setShouldShowFileExtensions:YES];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1110 if(defpath)
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1111 [picker setDirectoryURL:[NSURL URLWithString:[NSString stringWithUTF8String:defpath]]];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1112 /* Unhide our hidden window and make it key */
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1113 [hiddenWindow setHidden:NO];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1114 [hiddenWindow makeKeyAndVisible];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1115 [delegate setDialog:dialog];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1116 [picker setDelegate:delegate];
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
1117 /* Wait for them to pick a file */
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1118 [[hiddenWindow rootViewController] presentViewController:picker animated:YES completion:nil];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1119 file = dw_dialog_wait(dialog);
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1120 /* Once the dialog is gone we can rehide our window */
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1121 [hiddenWindow resignKeyWindow];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1122 [hiddenWindow setHidden:YES];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1123 [params addPointer:file];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1124 [picker release];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1125 [delegate release];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1126 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1127 -(void)messageBox:(NSMutableArray *)params
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1128 {
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1129 __block DWDialog *dialog = dw_dialog_new(NULL);
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1130 NSInteger iResponse;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1131 UIAlertController* alert = [UIAlertController alertControllerWithTitle:[params objectAtIndex:0]
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1132 message:[params objectAtIndex:1]
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1133 preferredStyle:[[params objectAtIndex:2] integerValue]];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1134 UIAlertAction* action = [UIAlertAction actionWithTitle:[params objectAtIndex:3] style:UIAlertActionStyleDefault
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1135 handler:^(UIAlertAction * action) { dw_dialog_dismiss(dialog, DW_INT_TO_POINTER(1)); }];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1136 [alert addAction:action];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1137 if([params count] > 4)
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1138 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1139 action = [UIAlertAction actionWithTitle:[params objectAtIndex:4] style:UIAlertActionStyleDefault
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1140 handler:^(UIAlertAction * action) { dw_dialog_dismiss(dialog, DW_INT_TO_POINTER(2)); }];
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1141 [alert addAction:action];
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1142 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1143 if([params count] > 5)
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1144 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1145 action = [UIAlertAction actionWithTitle:[params objectAtIndex:5] style:UIAlertActionStyleDefault
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1146 handler:^(UIAlertAction * action) { dw_dialog_dismiss(dialog, DW_INT_TO_POINTER(3)); }];
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1147 [alert addAction:action];
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1148 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1149
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1150 /* Unhide our hidden window and make it key */
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1151 [hiddenWindow setHidden:NO];
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1152 [hiddenWindow makeKeyAndVisible];
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1153 [[hiddenWindow rootViewController] presentViewController:alert animated:YES completion:nil];
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1154 iResponse = DW_POINTER_TO_INT(dw_dialog_wait(dialog));
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1155 /* Once the dialog is gone we can rehide our window */
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1156 [hiddenWindow resignKeyWindow];
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1157 [hiddenWindow setHidden:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1158 [params addObject:[NSNumber numberWithInteger:iResponse]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1159 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1160 -(void)safeCall:(SEL)sel withObject:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1161 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1162 if([self respondsToSelector:sel])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1163 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1164 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1165
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1166 if(DWThread == (DWTID)-1 || DWThread == curr)
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1167 [self performSelector:sel withObject:param];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1168 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1169 [self performSelectorOnMainThread:sel withObject:param waitUntilDone:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1170 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1171 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1172 -(void)doBitBlt:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1173 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1174 NSValue *bi = (NSValue *)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1175 DWBitBlt *bltinfo = (DWBitBlt *)[bi pointerValue];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1176 id bltdest = bltinfo->dest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1177 id bltsrc = bltinfo->src;
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1178 CGContextRef context = _dw_draw_context(bltdest, NO);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1179
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1180 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1181 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1182
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1183 if(bltdest && [bltsrc isMemberOfClass:[DWImage class]])
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1184 {
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1185 DWImage *rep = bltsrc;
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1186 UIImage *image = [rep image];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1187 CGBlendMode op = kCGBlendModeNormal;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1188
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1189 if(bltinfo->srcwidth != -1)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1190 {
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1191 [image drawInRect:CGRectMake(bltinfo->xdest, bltinfo->ydest, bltinfo->width, bltinfo->height)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1192 /*fromRect:CGRectMake(bltinfo->xsrc, bltinfo->ysrc, bltinfo->srcwidth, bltinfo->srcheight)*/
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1193 blendMode:op alpha:1.0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1194 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1195 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1196 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1197 [image drawAtPoint:CGPointMake(bltinfo->xdest, bltinfo->ydest)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1198 /*fromRect:CGRectMake(bltinfo->xsrc, bltinfo->ysrc, bltinfo->width, bltinfo->height)*/
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1199 blendMode:op alpha:1.0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1200 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1201 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1202 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1203 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1204 free(bltinfo);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1205 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1206 -(void)doFlush:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1207 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1208 NSEnumerator *enumerator = [_DWDirtyDrawables objectEnumerator];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1209 DWRender *rend;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1210
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1211 while(rend = [enumerator nextObject])
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1212 [rend setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1213 [_DWDirtyDrawables removeAllObjects];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1214 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1215 -(void)doWindowFunc:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1216 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1217 NSValue *v = (NSValue *)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1218 void **params = (void **)[v pointerValue];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1219 void (* windowfunc)(void *);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1220
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1221 if(params)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1222 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1223 windowfunc = params[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1224 if(windowfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1225 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1226 windowfunc(params[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1227 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1228 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1229 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1230 -(void)getUserInterfaceStyle:(id)param
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1231 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1232 NSMutableArray *array = param;
2459
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1233 UIUserInterfaceStyle overridestyle = [hiddenWindow overrideUserInterfaceStyle];
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1234 int retval;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1235
2459
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1236 switch(overridestyle)
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1237 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1238 case UIUserInterfaceStyleLight:
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1239 retval = DW_DARK_MODE_DISABLED;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1240 break;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1241 case UIUserInterfaceStyleDark:
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1242 retval = DW_DARK_MODE_FORCED;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1243 break;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1244 default: /* UIUserInterfaceStyleUnspecified */
2459
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1245 {
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1246 UIUserInterfaceStyle style = [[[hiddenWindow rootViewController] traitCollection] userInterfaceStyle];
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1247
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1248 switch(style)
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1249 {
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1250 case UIUserInterfaceStyleLight:
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1251 retval = DW_DARK_MODE_BASIC;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1252 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1253 case UIUserInterfaceStyleDark:
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1254 retval = DW_DARK_MODE_FULL;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1255 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1256 default: /* UIUserInterfaceStyleUnspecified */
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1257 retval = DW_FEATURE_UNSUPPORTED;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1258 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1259 }
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1260 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1261 }
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1262 [array addObject:[NSNumber numberWithInt:retval]];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1263 }
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1264 -(void)setUserInterfaceStyle:(id)param
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1265 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1266 NSNumber *number = param;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1267 UIUserInterfaceStyle style = [number intValue];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1268
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1269 [hiddenWindow setOverrideUserInterfaceStyle:style];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1270 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1271 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1272
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1273 DWObject *DWObj;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1274
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1275 /* Returns TRUE if iOS 12+ is in Dark Mode */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1276 BOOL _dw_is_dark(void)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1277 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1278 if([[[[DWObj hiddenWindow] rootViewController] traitCollection] userInterfaceStyle] == UIUserInterfaceStyleDark)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1279 return YES;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1280 return NO;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1281 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1282
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1283 @interface DWWebView : WKWebView <WKNavigationDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1284 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1285 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1286 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1287 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1288 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1289 -(void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1290 -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1291 -(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1292 -(void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1293 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1294
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1295 @implementation DWWebView : WKWebView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1296 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1297 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1298 -(void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1299 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1300 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_STARTED), [[self URL] absoluteString] };
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
1301 _dw_event_handler(self, (id)params, 19);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1302 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1303 -(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1304 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1305 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_COMPLETE), [[self URL] absoluteString] };
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
1306 _dw_event_handler(self, (id)params, 19);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1307 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1308 -(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1309 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1310 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_LOADING), [[self URL] absoluteString] };
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
1311 _dw_event_handler(self, (id)params, 19);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1312 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1313 -(void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1314 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1315 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_REDIRECT), [[self URL] absoluteString] };
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
1316 _dw_event_handler(self, (id)params, 19);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1317 }
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1318 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1319 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1320
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1321 /* Subclass for a top-level window */
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
1322 @interface DWView : DWBox /* <UIWindowDelegate> */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1323 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1324 CGSize oldsize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1325 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1326 -(BOOL)windowShouldClose:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1327 -(void)windowDidBecomeMain:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1328 -(void)menuHandler:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1329 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1330
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1331 @implementation DWView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1332 -(BOOL)windowShouldClose:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1333 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1334 if(_dw_event_handler(sender, nil, 6) > 0)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1335 return NO;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1336 return YES;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1337 }
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1338 -(void)willMoveToSuperview:(UIView *)newSuperview
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1339 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1340 if(newSuperview)
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1341 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidBecomeMain:) name:UIWindowDidBecomeKeyNotification object:[newSuperview window]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1342 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1343 -(void)dealloc
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1344 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1345 [[NSNotificationCenter defaultCenter] removeObserver:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1346 dw_signal_disconnect_by_window(self);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1347 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1348 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1349 -(void)windowResized:(CGSize)size;
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1350 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1351 if(oldsize.width != size.width || oldsize.height != size.height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1352 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1353 _dw_do_resize(box, size.width, size.height);
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1354 _dw_event_handler([self window], nil, 1);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1355 oldsize.width = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1356 oldsize.height = size.height;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1357 _dw_handle_resize_events(box);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1358 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1359 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1360 -(void)showWindow
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1361 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1362 CGSize size = [self frame].size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1363
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1364 if(oldsize.width == size.width && oldsize.height == size.height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1365 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1366 _dw_do_resize(box, size.width, size.height);
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1367 _dw_handle_resize_events(box);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1368 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1369
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1370 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1371 -(void)windowDidBecomeMain:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1372 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1373 _dw_event_handler([self window], nil, 13);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1374 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1375 -(void)menuHandler:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1376 {
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
1377 [DWObj menuHandler:sender];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1378 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1379 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1380
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1381 @interface DWViewController : UIViewController
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1382 -(void)viewWillLayoutSubviews;
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1383 @end
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1384
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1385
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1386 @implementation DWViewController : UIViewController {}
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1387 -(void)viewWillLayoutSubviews
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1388 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1389 DWWindow *window = (DWWindow *)[[self view] window];
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1390 NSArray *array = [window subviews];
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
1391 CGRect frame = [window frame];
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1392 DWView *view = nil;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1393 UINavigationBar *nav = nil;
2570
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
1394 NSInteger sbheight = [[[window windowScene] statusBarManager] statusBarFrame].size.height;
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
1395
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1396 for(id obj in array)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1397 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1398 if([obj isMemberOfClass:[DWView class]])
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1399 view = obj;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1400 else if([obj isMemberOfClass:[UINavigationBar class]])
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1401 nav = obj;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1402 /* Hide the UITransitionView which is blocking the screen...
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1403 * This is probably not the correct solution, but it solves the
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1404 * problem for the moment. Figure out what to do with this view.
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1405 */
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1406 else
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1407 [obj setHidden:YES];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1408 }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1409 /* Adjust the frame to account for the status bar and navigation bar if it exists */
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1410 if(nav)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1411 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1412 CGRect navrect = [nav frame];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1413
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1414 navrect.size.width = frame.size.width;
2570
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
1415 navrect.origin.x = 0;
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
1416 navrect.origin.y = sbheight;
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
1417 sbheight += navrect.size.height;
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1418 [nav setFrame:navrect];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1419
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1420 if (@available(iOS 14.0, *)) {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1421 DWMenu *windowmenu = [window menu];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1422 UINavigationItem *item = [[nav items] firstObject];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1423
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1424 if(windowmenu && !item.rightBarButtonItem)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1425 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1426 UIBarButtonItem *options = [[UIBarButtonItem alloc] initWithImage:[UIImage systemImageNamed:@"list.bullet"]
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1427 menu:[windowmenu menu]];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1428 item.rightBarButtonItem = options;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1429 }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1430 } else {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1431 // Fallback on earlier versions
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1432 }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
1433 }
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
1434 frame.size.height -= sbheight;
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
1435 /* Account for the special area on iPhone X and iPad Pro
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
1436 * https://blog.maxrudberg.com/post/165590234593/ui-design-for-iphone-x-bottom-elements
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
1437 */
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
1438 frame.size.height -= 24;
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
1439 frame.origin.y += sbheight;
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
1440 [view setFrame:frame];
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
1441 [view windowResized:frame.size];
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1442 }
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1443 @end
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1444
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1445 #define _DW_BUTTON_TYPE_NORMAL 0
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1446 #define _DW_BUTTON_TYPE_CHECK 1
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1447 #define _DW_BUTTON_TYPE_RADIO 2
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1448
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1449 /* Subclass for a button type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1450 @interface DWButton : UIButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1451 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1452 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1453 DWBox *parent;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1454 int type, state;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1455 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1456 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1457 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1458 -(void)buttonClicked:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1459 -(void)setParent:(DWBox *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1460 -(DWBox *)parent;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1461 -(int)type;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1462 -(void)setType:(int)input;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1463 -(int)state;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1464 -(void)setState:(int)input;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1465 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1466
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1467 @implementation DWButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1468 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1469 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1470 -(void)buttonClicked:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1471 {
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1472 /* Toggle the button */
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1473 if(type == _DW_BUTTON_TYPE_CHECK)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1474 [self setState:(state ? FALSE : TRUE)];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1475 else if(type == _DW_BUTTON_TYPE_RADIO)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1476 [self setState:TRUE];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1477
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1478 _dw_event_handler(self, nil, 8);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1479
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1480 /* If it is a radio button, uncheck all the other radio buttons in the box */
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1481 if(type == _DW_BUTTON_TYPE_RADIO)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1482 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1483 DWBox *viewbox = [self parent];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1484 Box *thisbox = [viewbox box];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1485 int z;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1486
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1487 for(z=0;z<thisbox->count;z++)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1488 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1489 if(thisbox->items[z].type != TYPEBOX)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1490 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1491 id object = thisbox->items[z].hwnd;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1492
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1493 if([object isMemberOfClass:[DWButton class]])
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1494 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1495 DWButton *button = object;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1496
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1497 if(button != self && [button type] == _DW_BUTTON_TYPE_RADIO)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1498 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1499 [button setState:FALSE];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1500 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1501 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1502 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1503 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1504 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1505 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1506 -(void)setParent:(DWBox *)input { parent = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1507 -(DWBox *)parent { return parent; }
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1508 -(int)type { return type; }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1509 -(void)setType:(int)input { type = input; [self updateImage]; }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1510 -(void)updateImage
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1511 {
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1512 NSString *imagename = nil;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1513
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1514 switch(type)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1515 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1516 case _DW_BUTTON_TYPE_CHECK:
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1517 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1518
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1519 if(state)
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1520 imagename = @"checkmark.square";
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1521 else
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1522 imagename = @"square";
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1523 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1524 break;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1525 case _DW_BUTTON_TYPE_RADIO:
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1526 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1527 if(state)
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1528 imagename = @"largecircle.fill.circle";
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1529 else
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1530 imagename = @"circle";
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1531 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1532 break;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1533 }
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1534 if(imagename)
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1535 {
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1536 UIImage *image = [UIImage systemImageNamed:imagename];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1537 CGSize size = [image size];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1538 [self setImage:image forState:UIControlStateNormal];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1539 [self setTitleEdgeInsets:UIEdgeInsetsMake(0,size.width,0,0)];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1540 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1541 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1542 -(int)state { return state; }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1543 -(void)setState:(int)input { state = input; [self updateImage]; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1544 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1545 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1546
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1547 /* Subclass for a progress type */
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
1548 @interface DWPercent : UIProgressView
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1549 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1550 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1551 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1552 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1553 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1554 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1555
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1556 @implementation DWPercent
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1557 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1558 -(void)setUserdata:(void *)input { userdata = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1559 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1560 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1561
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1562 /* Subclass for a menu item type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1563 @implementation DWMenuItem
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1564 -(void)setCheck:(BOOL)input { check = input; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1565 -(void)setEnabled:(BOOL)input { enabled = input; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1566 -(void)setSubmenu:(DWMenu *)input { submenu = input; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1567 -(void)setMenu:(DWMenu *)input { menu = input; }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1568 -(void)setTag:(unsigned long)input { tag = input; }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1569 -(BOOL)check { return check; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1570 -(BOOL)enabled { return enabled; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1571 -(DWMenu *)submenu { return submenu; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1572 -(DWMenu *)menu { return menu; }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1573 -(unsigned long)tag { return tag; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1574 -(void)dealloc { dw_signal_disconnect_by_window(self); [super dealloc]; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1575 @end
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1576 /*
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1577 * Encapsulate immutable objects in our own containers,
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1578 * so we can recreate the immutable subobjects as needed.
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1579 * Currently in this category: DWMenu and DWImage
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1580 */
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1581 @implementation DWMenu
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1582 -(id)initWithTag:(unsigned long)newtag
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1583 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1584 self = [super init];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1585 if(self)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1586 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1587 children = [[NSMutableArray alloc] init];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1588 tag = newtag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1589 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1590 return self;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1591 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1592 -(void)setTitle:(NSString *)input { title = input; [title retain]; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1593 -(UIMenu *)menu
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1594 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1595 /* Create or recreate the UIMenu recursively */
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1596 UIMenu *oldmenu = menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1597 NSMutableArray *menuchildren = [[NSMutableArray alloc] init];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1598
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1599 for(id child in children)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1600 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1601 if([child isMemberOfClass:[DWMenuItem class]])
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1602 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1603 DWMenuItem *menuitem = child;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1604 DWMenu *submenu = [menuitem submenu];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1605
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1606 if(submenu)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1607 [menuchildren addObject:[submenu menu]];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1608 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1609 [menuchildren addObject:child];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1610 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1611 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1612 if(title)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1613 menu = [UIMenu menuWithTitle:title children:menuchildren];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1614 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1615 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1616 if(@available(iOS 14.0, *))
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1617 menu = [UIMenu menuWithChildren:menuchildren];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1618 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1619 menu = [UIMenu menuWithTitle:@"" children:menuchildren];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1620 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1621 if(oldmenu)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1622 [oldmenu release];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1623 return menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1624 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1625 -(void)addItem:(id)item
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1626 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1627 [children addObject:item];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1628 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1629 -(void)removeItem:(id)item
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1630 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1631 [children removeObject:item];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1632 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1633 -(unsigned long)tag { return tag; }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1634 -(id)childWithTag:(unsigned long)tag
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1635 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1636 if(tag > 0)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1637 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1638 for(id child in children)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1639 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1640 if([child isMemberOfClass:[DWMenuItem class]] && [child tag] == tag)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1641 return child;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1642 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1643 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1644 return nil;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1645 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1646 -(void)dealloc { [super dealloc]; }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1647 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1648
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1649 @implementation DWImage
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1650 -(id)initWithSize:(CGSize)size
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1651 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1652 self = [super init];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1653 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1654 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1655 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1656 CGContextRef cgcontext = CGBitmapContextCreate(NULL, size.width, size.height, 8, 0, rgb, kCGImageAlphaPremultipliedFirst);
2438
f273dbf1312f iOS: Fix DWImage internal core graphics context being flipped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2437
diff changeset
1657 CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, size.height);
f273dbf1312f iOS: Fix DWImage internal core graphics context being flipped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2437
diff changeset
1658 CGContextConcatCTM(cgcontext, flipVertical);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1659 CGImageRef cgimage = CGBitmapContextCreateImage(cgcontext);
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1660 image = [UIImage imageWithCGImage:cgimage];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1661 CGContextRelease(cgcontext);
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1662 [image retain];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1663 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1664 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1665 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1666 -(id)initWithCGImage:(CGImageRef)cgimage
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1667 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1668 self = [super init];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1669 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1670 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1671 image = [UIImage imageWithCGImage:cgimage];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1672 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1673 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1674 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1675 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1676 -(id)initWithUIImage:(UIImage *)newimage
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1677 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1678 self = [super init];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1679 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1680 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1681 image = newimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1682 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1683 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1684 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1685 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1686 -(void)setImage:(UIImage *)input
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1687 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1688 UIImage *oldimage = image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1689 image = input;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1690 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1691 [oldimage release];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1692 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1693 -(UIImage *)image
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1694 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1695 /* If our CGContext has been modified... */
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1696 if(cgcontext)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1697 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1698 UIImage *oldimage = image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1699 CGImageRef cgimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1700
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1701 /* Create a new UIImage from the CGContext via CGImage */
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1702 cgimage = CGBitmapContextCreateImage(cgcontext);
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1703 image = [UIImage imageWithCGImage:cgimage];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1704 CGContextRelease(cgcontext);
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1705 cgcontext = nil;
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1706 [image retain];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1707 [oldimage release];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1708 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1709 return image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1710 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1711 -(CGContextRef)cgcontext
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1712 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1713 /* If we don't have an active context, create a bitmap
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1714 * context and copy the image from our UIImage.
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1715 */
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1716 if(!cgcontext)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1717 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1718 CGSize size = [image size];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1719 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1720
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1721 cgcontext = CGBitmapContextCreate(NULL, size.width, size.height, 8, 0, rgb, kCGImageAlphaPremultipliedFirst);
2438
f273dbf1312f iOS: Fix DWImage internal core graphics context being flipped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2437
diff changeset
1722 CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, size.height);
f273dbf1312f iOS: Fix DWImage internal core graphics context being flipped.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2437
diff changeset
1723 CGContextConcatCTM(cgcontext, flipVertical);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1724 CGContextDrawImage(cgcontext, CGRectMake(0,0,size.width,size.height), [image CGImage]);
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1725 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1726 return cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1727 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1728 -(void)dealloc { if(cgcontext) CGContextRelease(cgcontext); if(image) [image release]; [super dealloc]; }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1729 @end
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1730
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1731 /* Subclass for a scrollbox type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1732 @interface DWScrollBox : UIScrollView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1733 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1734 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1735 id box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1736 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1737 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1738 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1739 -(void)setBox:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1740 -(id)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1741 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1742
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1743 @implementation DWScrollBox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1744 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1745 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1746 -(void)setBox:(void *)input { box = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1747 -(id)box { return box; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1748 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1749 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1750
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1751 @interface DWEntryFieldFormatter : NSFormatter
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1752 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1753 int maxLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1754 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1755 - (void)setMaximumLength:(int)len;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1756 - (int)maximumLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1757 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1758
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1759 /* This formatter subclass will allow us to limit
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1760 * the text length in an entryfield.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1761 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1762 @implementation DWEntryFieldFormatter
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1763 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1764 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1765 self = [super init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1766 maxLength = INT_MAX;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1767 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1768 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1769 -(void)setMaximumLength:(int)len { maxLength = len; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1770 -(int)maximumLength { return maxLength; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1771 -(NSString *)stringForObjectValue:(id)object { return (NSString *)object; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1772 -(BOOL)getObjectValue:(id *)object forString:(NSString *)string errorDescription:(NSString **)error { *object = string; return YES; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1773 -(BOOL)isPartialStringValid:(NSString **)partialStringPtr
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1774 proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1775 originalString:(NSString *)origString
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1776 originalSelectedRange:(NSRange)origSelRange
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1777 errorDescription:(NSString **)error
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1778 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1779 if([*partialStringPtr length] > maxLength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1780 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1781 return NO;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1782 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1783 return YES;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1784 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1785 -(NSAttributedString *)attributedStringForObjectValue:(id)anObject withDefaultAttributes:(NSDictionary *)attributes { return nil; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1786 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1787
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1788 /* Subclass for a entryfield type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1789 @interface DWEntryField : UITextField
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1790 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1791 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1792 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1793 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1794 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1795 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1796 -(void)setClickDefault:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1797 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1798
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1799 @implementation DWEntryField
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1800 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1801 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1802 -(void)setClickDefault:(id)input { clickDefault = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1803 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1804 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1805
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1806 /* Subclass for a text and status text type */
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
1807 @interface DWText : UILabel
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1808 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1809 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1810 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1811 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1812 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1813 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1814 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1815
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1816 @implementation DWText
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1817 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1818 -(void)setUserdata:(void *)input { userdata = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1819 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1820 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1821
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1822 /* Subclass for a Notebook page type */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1823 @interface DWNotebookPage : DWBox
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1824 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1825 int pageid;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1826 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1827 -(int)pageid;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1828 -(void)setPageid:(int)input;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1829 @end
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1830
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1831 /* Subclass for a Notebook control type */
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1832 @interface DWNotebook : UIView
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1833 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1834 UISegmentedControl *tabs;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1835 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1836 int pageid;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1837 NSMutableArray<DWNotebookPage *> *views;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1838 DWNotebookPage *visible;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1839 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1840 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1841 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1842 -(int)pageid;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1843 -(void)setPageid:(int)input;
2420
384d076ed52a iOS: Minor fix for initial notebook page remaining visible on page change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2419
diff changeset
1844 -(void)setVisible:(DWNotebookPage *)input;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1845 -(UISegmentedControl *)tabs;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1846 -(NSMutableArray<DWNotebookPage *> *)views;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1847 -(void)pageChanged:(id)sender;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1848 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1849
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1850 @implementation DWNotebook
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1851 -(id)init {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1852 self = [super init];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1853 tabs = [[[UISegmentedControl alloc] init] retain];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1854 views = [[[NSMutableArray alloc] init] retain];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1855 [self addSubview:tabs];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1856 return self;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1857 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1858 -(void)setFrame:(CGRect)frame {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1859 [super setFrame:frame];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1860 frame.size.height = 40;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1861 [tabs setFrame:frame];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1862 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1863 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1864 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1865 -(int)pageid { return pageid; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1866 -(void)setPageid:(int)input { pageid = input; }
2420
384d076ed52a iOS: Minor fix for initial notebook page remaining visible on page change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2419
diff changeset
1867 -(void)setVisible:(DWNotebookPage *)input { visible = input; }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1868 -(UISegmentedControl *)tabs { return tabs; }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1869 -(NSMutableArray<DWNotebookPage *> *)views { return views; };
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
1870 -(void)pageChanged:(id)sender
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
1871 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1872 NSInteger intpageid = [tabs selectedSegmentIndex];
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1873
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
1874 if(intpageid != -1 && intpageid < [views count])
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1875 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1876 DWNotebookPage *page = [views objectAtIndex:intpageid];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1877
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1878 /* Hide the previously visible page contents */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1879 if(page != visible)
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1880 [visible setHidden:YES];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1881
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1882 /* If the new page is a valid box, lay it out */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1883 if([page isKindOfClass:[DWBox class]])
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1884 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1885 Box *box = [page box];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1886 /* Start with the entire notebook size and then adjust
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1887 * it to account for the segement control's height.
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1888 */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1889 NSInteger height = [tabs frame].size.height;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1890 CGRect frame = [self frame];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1891 frame.origin.y += height;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1892 frame.size.height -= height;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1893 [page setFrame:frame];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1894 [page setHidden:NO];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1895 visible = page;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1896 _dw_do_resize(box, frame.size.width, frame.size.height);
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1897 _dw_handle_resize_events(box);
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1898 }
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1899 _dw_event_handler(self, DW_INT_TO_POINTER(intpageid), 15);
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1900 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1901 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1902 -(void)dealloc {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1903 UserData *root = userdata;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1904 _dw_remove_userdata(&root, NULL, TRUE);
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1905 dw_signal_disconnect_by_window(self);
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1906 [tabs release];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1907 [views release];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1908 [super dealloc];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1909 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1910 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1912 @implementation DWNotebookPage
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1913 -(int)pageid { return pageid; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1914 -(void)setPageid:(int)input { pageid = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1915 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1916 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1917
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1918 /* Subclass for a splitbar type */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1919 @interface DWSplitBar : UISplitViewController <UISplitViewControllerDelegate>
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1920 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1921 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1922 float percent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1923 NSInteger Tag;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1924 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1925 -(void)splitViewDidResizeSubviews:(NSNotification *)aNotification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1926 -(void)setTag:(NSInteger)tag;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1927 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1928 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1929 -(float)percent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1930 -(void)setPercent:(float)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1931 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1932
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1933 @implementation DWSplitBar
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1934 -(void)splitViewDidResizeSubviews:(NSNotification *)aNotification
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1935 {
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
1936 NSArray *views = [self.view subviews];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1937 id object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1938
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1939 for(object in views)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1940 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1941 if([object isMemberOfClass:[DWBox class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1942 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1943 DWBox *view = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1944 Box *box = [view box];
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1945 CGSize size = [view frame].size;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1946 _dw_do_resize(box, size.width, size.height);
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1947 _dw_handle_resize_events(box);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1948 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1949 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1950 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1951 -(void)setTag:(NSInteger)tag { Tag = tag; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1952 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1953 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1954 -(float)percent { return percent; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1955 -(void)setPercent:(float)input { percent = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1956 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1957 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1958
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1959 /* Subclass for a slider type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1960 @interface DWSlider : UISlider
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1961 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1962 void *userdata;
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1963 BOOL vertical;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1964 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1965 -(void)setVertical:(BOOL)vert;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1966 -(BOOL)vertical;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1967 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1968 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1969 -(void)sliderChanged:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1970 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1971
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1972 @implementation DWSlider
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1973 -(void)setVertical:(BOOL)vert
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1974 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1975 if(vert)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1976 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1977 CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 0.5);
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1978 self.transform = trans;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1979 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1980 vertical = vert;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1981 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1982 -(BOOL)vertical { return vertical; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1983 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1984 -(void)setUserdata:(void *)input { userdata = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1985 -(void)sliderChanged:(id)sender { int intVal = (int)[self value]; _dw_event_handler(self, DW_INT_TO_POINTER(intVal), 14); }
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1986 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1987 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1988
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1989 /* Subclass for a MLE type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1990 @interface DWMLE : UITextView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1991 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1992 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1993 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1994 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1995 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1996 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1997
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1998 @implementation DWMLE
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1999 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2000 -(void)setUserdata:(void *)input { userdata = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2001 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2002 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2003
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2004 /* TODO: UITableView does not support variable columns...
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2005 * also OutlineView does not exist in iOS.
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2006 */
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
2007 UITableViewCell *_dw_table_cell_view_new(UIImage *icon, NSString *text)
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
2008 {
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
2009 UITableViewCell *browsercell = [[[UITableViewCell alloc] init] autorelease];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2010 [browsercell setAutoresizesSubviews:YES];
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2011
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2012 if(icon)
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2013 [[browsercell imageView] setImage:icon];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2014 if(text)
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2015 [[browsercell textLabel] setText:text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2016 return browsercell;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2017 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2018
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2019 /* Subclass for a Container/List type */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2020 @interface DWContainer : UITableView <UITableViewDataSource,UITableViewDelegate>
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2021 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2022 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2023 NSMutableArray *tvcols;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2024 NSMutableArray *data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2025 NSMutableArray *types;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2026 NSPointerArray *titles;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2027 NSPointerArray *rowdatas;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2028 UIColor *fgcolor, *oddcolor, *evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2029 unsigned long dw_oddcolor, dw_evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2030 unsigned long _DW_COLOR_ROW_ODD, _DW_COLOR_ROW_EVEN;
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2031 int iLastAddPoint, iLastQueryPoint;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2032 int filesystem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2033 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2034 -(NSInteger)tableView:(UITableView *)aTable numberOfRowsInSection:(NSInteger)section;
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2035 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2036 -(void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2037 -(UIContextMenuConfiguration *)tableView:(UITableView *)tableView contextMenuConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath point:(CGPoint)point;
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2038 -(void)addColumn:(NSString *)input andType:(int)type;
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2039 -(NSString *)getColumn:(int)col;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2040 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2041 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2042 -(void)setFilesystem:(int)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2043 -(int)filesystem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2044 -(int)addRow:(NSArray *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2045 -(int)addRows:(int)number;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2046 -(void)editCell:(id)input at:(int)row and:(int)col;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2047 -(void)removeRow:(int)row;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2048 -(void)setRow:(int)row title:(const char *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2049 -(void *)getRowTitle:(int)row;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2050 -(id)getRow:(int)row and:(int)col;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2051 -(int)cellType:(int)col;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2052 -(int)lastAddPoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2053 -(int)lastQueryPoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2054 -(void)setLastQueryPoint:(int)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2055 -(void)clear;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2056 -(void)setup;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2057 -(CGSize)getsize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2058 -(void)setForegroundColor:(UIColor *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2059 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2060
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2061 @implementation DWContainer
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2062 -(NSInteger)tableView:(UITableView *)aTable numberOfRowsInSection:(NSInteger)section
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2063 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2064 /* Ignoring section for now, everything in one section */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2065 if(tvcols && data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2066 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2067 int cols = (int)[tvcols count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2068 int total = (int)[data count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2069 if(cols && total)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2070 return total / cols;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2071 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2072 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2073 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2074 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2075 {
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2076 /* Not reusing cell views, so get the cell from our array */
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2077 int index = (int)(indexPath.row * [tvcols count]);
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2078 id celldata = [data objectAtIndex:index];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2079
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2080 /* The data is already a NSTableCellView so just return that */
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2081 if([celldata isMemberOfClass:[UITableViewCell class]])
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2082 {
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2083 UITableViewCell *result = celldata;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2084
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2085 /* Copy the alignment setting from the column,
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2086 * and set the text color from the container.
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2087 */
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2088 if(fgcolor)
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2089 [[result textLabel] setTextColor:fgcolor];
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2090
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2091 /* Return the result */
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2092 return result;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2093 }
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2094 return nil;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2095 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2096 -(void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2097 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2098 if(indexPath.row % 2 == 0)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2099 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2100 if(evencolor)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2101 [cell setBackgroundColor:evencolor];
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2102 }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2103 else
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2104 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2105 if(oddcolor)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2106 [cell setBackgroundColor:oddcolor];
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2107 }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2108 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2109 -(UIContextMenuConfiguration *)tableView:(UITableView *)tableView contextMenuConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath point:(CGPoint)point
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2110 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2111 DWWindow *window = (DWWindow *)[self window];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2112 UIContextMenuConfiguration *config = nil;
2467
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2113 void *params[4];
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2114
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2115 params[0] = [self getRowTitle:(int)indexPath.row];
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2116 params[1] = [self getRowData:(int)indexPath.row];
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2117 params[2] = DW_INT_TO_POINTER((int)point.x);
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2118 params[3] = DW_INT_TO_POINTER((int)point.y);
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2119
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
2120 _dw_event_handler(self, (id)params, 10);
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2121
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2122 if(window)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2123 {
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
2124 __block UIMenu *popupmenu = [[window popupMenu] menu];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2125 config = [UIContextMenuConfiguration configurationWithIdentifier:@"DWContextMenu"
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2126 previewProvider:nil
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2127 actionProvider:^(NSArray* suggestedAction){return popupmenu;}];
2464
4fba0b9453ee iOS: Fix calculating label size when there is no text. Use "gT" to calculate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2463
diff changeset
2128 [window setPopupMenu:nil];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2129 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2130 return config;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2131 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2132 -(void)addColumn:(NSString *)input andType:(int)type { if(tvcols) { [tvcols addObject:input]; [types addObject:[NSNumber numberWithInt:type]]; } }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2133 -(NSString *)getColumn:(int)col { if(tvcols) { return [tvcols objectAtIndex:col]; } return nil; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2134 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2135 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2136 -(void)setFilesystem:(int)input { filesystem = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2137 -(int)filesystem { return filesystem; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2138 -(void)refreshColors
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2139 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2140 UIColor *oldodd = oddcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2141 UIColor *oldeven = evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2142 unsigned long thisodd = dw_oddcolor == DW_CLR_DEFAULT ? _DW_COLOR_ROW_ODD : dw_oddcolor;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2143 unsigned long _odd = _dw_get_color(thisodd);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2144 unsigned long thiseven = dw_evencolor == DW_CLR_DEFAULT ? _DW_COLOR_ROW_EVEN : dw_evencolor;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2145 unsigned long _even = _dw_get_color(thiseven);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2146
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2147 /* Get the UIColor for non-default colors */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2148 if(thisodd != DW_RGB_TRANSPARENT)
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2149 oddcolor = [[UIColor colorWithRed: DW_RED_VALUE(_odd)/255.0 green: DW_GREEN_VALUE(_odd)/255.0 blue: DW_BLUE_VALUE(_odd)/255.0 alpha: 1] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2150 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2151 oddcolor = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2152 if(thiseven != DW_RGB_TRANSPARENT)
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2153 evencolor = [[UIColor colorWithRed: DW_RED_VALUE(_even)/255.0 green: DW_GREEN_VALUE(_even)/255.0 blue: DW_BLUE_VALUE(_even)/255.0 alpha: 1] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2154 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2155 evencolor = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2156 [oldodd release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2157 [oldeven release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2158 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2159 -(void)setRowBgOdd:(unsigned long)oddcol andEven:(unsigned long)evencol
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2160 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2161 /* Save the set colors in case we get a theme change */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2162 dw_oddcolor = oddcol;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2163 dw_evencolor = evencol;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2164 [self refreshColors];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2165 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2166 -(void)checkDark
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2167 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2168 /* Update any system colors based on the Dark Mode */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2169 _DW_COLOR_ROW_EVEN = DW_RGB_TRANSPARENT;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
2170 if(_dw_is_dark())
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
2171 _DW_COLOR_ROW_ODD = DW_RGB(100, 100, 100);
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
2172 else
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
2173 _DW_COLOR_ROW_ODD = DW_RGB(230, 230, 230);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2174 /* Only refresh if we've been setup already */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2175 if(titles)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2176 [self refreshColors];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2177 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2178 -(void)viewDidChangeEffectiveAppearance { [self checkDark]; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2179 -(int)insertRow:(NSArray *)input at:(int)index
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2180 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2181 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2182 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2183 unsigned long start = [tvcols count] * index;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2184 NSIndexSet *set = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(start, start + [tvcols count])];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2185 if(index < iLastAddPoint)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2186 {
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2187 iLastAddPoint++;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2188 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2189 [data insertObjects:input atIndexes:set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2190 [titles insertPointer:NULL atIndex:index];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2191 [rowdatas insertPointer:NULL atIndex:index];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2192 [set release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2193 return (int)[titles count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2194 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2195 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2196 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2197 -(int)addRow:(NSArray *)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2198 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2199 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2200 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2201 iLastAddPoint = (int)[titles count];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2202 [data addObjectsFromArray:input];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2203 [titles addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2204 [rowdatas addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2205 return (int)[titles count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2206 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2207 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2208 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2209 -(int)addRows:(int)number
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2210 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2211 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2212 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2213 int count = (int)(number * [tvcols count]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2214 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2215
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2216 iLastAddPoint = (int)[titles count];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2217
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2218 for(z=0;z<count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2219 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2220 [data addObject:[NSNull null]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2221 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2222 for(z=0;z<number;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2223 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2224 [titles addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2225 [rowdatas addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2226 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2227 return (int)[titles count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2228 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2229 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2230 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2231 -(void)editCell:(id)input at:(int)row and:(int)col
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2232 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2233 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2234 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2235 int index = (int)(row * [tvcols count]) + col;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2236 if(index < [data count])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2237 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2238 if(!input)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2239 input = [NSNull null];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2240 [data replaceObjectAtIndex:index withObject:input];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2241 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2242 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2243 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2244 -(void)removeRow:(int)row
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2245 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2246 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2247 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2248 int z, start, end;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2249 int count = (int)[tvcols count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2250 void *oldtitle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2251
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2252 start = (count * row);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2253 end = start + count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2254
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2255 for(z=start;z<end;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2256 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2257 [data removeObjectAtIndex:start];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2258 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2259 oldtitle = [titles pointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2260 [titles removePointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2261 [rowdatas removePointerAtIndex:row];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2262 if(iLastAddPoint > 0 && iLastAddPoint > row)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2263 {
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2264 iLastAddPoint--;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2265 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2266 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2267 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2268 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2269 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2270 -(void)setRow:(int)row title:(const char *)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2271 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2272 if(titles && input)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2273 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2274 void *oldtitle = [titles pointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2275 void *newtitle = input ? (void *)strdup(input) : NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2276 [titles replacePointerAtIndex:row withPointer:newtitle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2277 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2278 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2279 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2280 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2281 -(void)setRowData:(int)row title:(void *)input { if(rowdatas && input) { [rowdatas replacePointerAtIndex:row withPointer:input]; } }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2282 -(void *)getRowTitle:(int)row { if(titles && row > -1) { return [titles pointerAtIndex:row]; } return NULL; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2283 -(void *)getRowData:(int)row { if(rowdatas && row > -1) { return [rowdatas pointerAtIndex:row]; } return NULL; }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2284 -(id)getRow:(int)row and:(int)col { if(data && [data count]) { int index = (int)(row * [tvcols count]) + col; return [data objectAtIndex:index]; } return nil; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2285 -(int)cellType:(int)col { return [[types objectAtIndex:col] intValue]; }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2286 -(int)lastAddPoint { return iLastAddPoint; }
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2287 -(int)lastQueryPoint { return iLastQueryPoint; }
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2288 -(void)setLastQueryPoint:(int)input { iLastQueryPoint = input; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2289 -(void)clear
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2290 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2291 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2292 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2293 [data removeAllObjects];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2294 while([titles count])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2295 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2296 void *oldtitle = [titles pointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2297 [titles removePointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2298 [rowdatas removePointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2299 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2300 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2301 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2302 }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2303 iLastAddPoint = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2304 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2305 -(void)setup
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2306 {
2389
7b06fc7c8130 iOS: Remove some legacy code from macOS 10.5 by swithing to using
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2388
diff changeset
2307 titles = [[NSPointerArray pointerArrayWithOptions:NSPointerFunctionsOpaqueMemory] retain];
7b06fc7c8130 iOS: Remove some legacy code from macOS 10.5 by swithing to using
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2388
diff changeset
2308 rowdatas = [[NSPointerArray pointerArrayWithOptions:NSPointerFunctionsOpaqueMemory] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2309 tvcols = [[[NSMutableArray alloc] init] retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2310 data = [[[NSMutableArray alloc] init] retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2311 types = [[[NSMutableArray alloc] init] retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2312 if(!dw_oddcolor && !dw_evencolor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2313 dw_oddcolor = dw_evencolor = DW_CLR_DEFAULT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2314 [self checkDark];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2315 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2316 -(CGSize)getsize
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2317 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2318 int cwidth = 0, cheight = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2319
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2320 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2321 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2322 int colcount = (int)[tvcols count];
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
2323 int rowcount = (int)[self numberOfRowsInSection:0];
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2324 int width = 0;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2325
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2326 if(rowcount > 0)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2327 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2328 int x;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2329
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2330 for(x=0;x<rowcount;x++)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2331 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2332 UITableViewCell *cell = [data objectAtIndex:(x*colcount)];
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2333 int thiswidth = 4, thisheight = 0;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2334
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2335 if([cell imageView])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2336 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2337 thiswidth += [[cell imageView] image].size.width;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2338 thisheight = [[cell imageView] image].size.height;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2339 }
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2340 if([cell textLabel])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2341 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2342 int textheight = [[cell textLabel] intrinsicContentSize].width;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2343 thiswidth += [[cell textLabel] intrinsicContentSize].width;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2344 if(textheight > thisheight)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2345 thisheight = textheight;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2346 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2347
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2348 cheight += thisheight;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2349
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2350 if(thiswidth > width)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2351 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2352 width = thiswidth;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2353 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2354 }
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2355 /* If the image is missing default the optimized width to 16. */
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2356 if(!width && [[types objectAtIndex:0] intValue] & DW_CFA_BITMAPORICON)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2357 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2358 width = 16;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2359 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2360 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2361 if(width)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2362 cwidth += width;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2363 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2364 cwidth += 16;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2365 cheight += 16;
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2366 return CGSizeMake(cwidth, cheight);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2367 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2368 -(void)setForegroundColor:(UIColor *)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2369 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2370 UIColor *oldfgcolor = fgcolor;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2371
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2372 fgcolor = input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2373 [fgcolor retain];
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2374 [oldfgcolor release];
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2375 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2376 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2377 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2378 void *params[2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2379
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2380 params[0] = (void *)[self getRowTitle:(int)indexPath.row];
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2381 params[1] = (void *)[self getRowData:(int)indexPath.row];
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2382
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2383 /* If multiple selection is enabled, treat it as selectionChanged: */
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2384 if([self allowsMultipleSelection])
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2385 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2386 /* Handler for container class */
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
2387 _dw_event_handler(self, (id)params, 12);
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2388 /* Handler for listbox class */
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2389 _dw_event_handler(self, DW_INT_TO_POINTER((int)indexPath.row), 11);
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2390 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2391 else /* Otherwise treat it as doubleClicked: */
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2392 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2393 /* Handler for container class */
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
2394 _dw_event_handler(self, (id)params, 9);
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2395 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2396 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2397 -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2398 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2399 if([self allowsMultipleSelection])
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2400 [self tableView:tableView didSelectRowAtIndexPath:indexPath];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2401 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2402 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2403 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2404
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2405 /* Subclass for a Calendar type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2406 @interface DWCalendar : UIDatePicker
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2407 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2408 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2409 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2410 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2411 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2412 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2413
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2414 @implementation DWCalendar
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2415 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2416 -(void)setUserdata:(void *)input { userdata = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2417 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2418 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2419
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2420 /* Subclass for a stepper component of the spinbutton type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2421 /* This is a bad way of doing this... but I can't get the other methods to work */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2422 @interface DWStepper : UIStepper
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2423 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2424 id textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2425 id parent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2426 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2427 -(void)setTextfield:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2428 -(id)textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2429 -(void)setParent:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2430 -(id)parent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2431 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2432
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2433 @implementation DWStepper
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2434 -(void)setTextfield:(id)input { textfield = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2435 -(id)textfield { return textfield; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2436 -(void)setParent:(id)input { parent = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2437 -(id)parent { return parent; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2438 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2439
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2440 /* Subclass for a Spinbutton type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2441 @interface DWSpinButton : UIView <UITextFieldDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2442 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2443 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2444 UITextField *textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2445 DWStepper *stepper;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2446 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2447 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2448 -(id)init;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2449 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2450 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2451 -(UITextField *)textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2452 -(UIStepper *)stepper;
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2453 -(void)textFieldDidEndEditing:(UITextField *)textField;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2454 -(void)setClickDefault:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2455 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2456
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2457 @implementation DWSpinButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2458 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2459 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2460 self = [super init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2461
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2462 if(self)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2463 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2464 textfield = [[[UITextField alloc] init] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2465 [self addSubview:textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2466 stepper = [[[DWStepper alloc] init] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2467 [self addSubview:stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2468 [stepper setParent:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2469 [stepper setTextfield:textfield];
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2470 [textfield setText:[NSString stringWithFormat:@"%ld",(long)[stepper value]]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2471 [textfield setDelegate:self];
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2472 [stepper addTarget:self action:@selector(stepperChanged:) forControlEvents:UIControlEventValueChanged];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2473 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2474 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2475 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2476 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2477 -(void)setUserdata:(void *)input { userdata = input; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2478 -(UITextField *)textfield { return textfield; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2479 -(UIStepper *)stepper { return stepper; }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2480 -(void)textFieldDidEndEditing:(UITextField *)textField
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2481 {
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2482 long val = [[textfield text] intValue];
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2483 [stepper setValue:(float)val];
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2484 [textfield setText:[NSString stringWithFormat:@"%d", (int)[stepper value]]];
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2485 _dw_event_handler(self, DW_INT_TO_POINTER((int)[stepper value]), 14);
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2486 }
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2487 -(void)stepperChanged:(UIStepper*)theStepper
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2488 {
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2489 [textfield setText:[NSString stringWithFormat:@"%d", (int)[theStepper value]]];
2443
42ba334cb8f7 iOS: DWSpinButton needs to generate events on stepper changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2442
diff changeset
2490 _dw_event_handler(self, DW_INT_TO_POINTER((int)[stepper value]), 14);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2491 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2492 -(void)setClickDefault:(id)input { clickDefault = input; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2493 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2494 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2495
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2496 API_AVAILABLE(ios(10.0))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2497 @interface DWUserNotificationCenterDelegate : NSObject <UNUserNotificationCenterDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2498 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2499
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2500 @implementation DWUserNotificationCenterDelegate
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2501 /* Called when a notification is delivered to a foreground app. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2502 -(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler API_AVAILABLE(macos(10.14))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2503 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2504 completionHandler(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2505 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2506 /* Called to let your app know which action was selected by the user for a given notification. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2507 -(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler API_AVAILABLE(macos(10.14))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2508 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2509 NSScanner *objScanner = [NSScanner scannerWithString:response.notification.request.identifier];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2510 unsigned long long handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2511 HWND notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2512
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2513 /* Skip the dw-notification- prefix */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2514 [objScanner scanString:@"dw-notification-" intoString:nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2515 [objScanner scanUnsignedLongLong:&handle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2516 notification = DW_UINT_TO_POINTER(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2517
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2518 if ([response.actionIdentifier isEqualToString:UNNotificationDismissActionIdentifier])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2519 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2520 /* The user dismissed the notification without taking action. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2521 dw_signal_disconnect_by_window(notification);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2522 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2523 else if ([response.actionIdentifier isEqualToString:UNNotificationDefaultActionIdentifier])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2524 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2525 /* The user launched the app. */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2526 _dw_event_handler(notification, nil, 8);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2527 dw_signal_disconnect_by_window(notification);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2528 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2529 completionHandler();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2530 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2531 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2532
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2533 @interface DWComboBox : UITextField <UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate>
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2534 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2535 UIPickerView* pickerView;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2536 NSMutableArray* dataArray;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2537 UIBarStyle toolbarStyle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2538 int selectedIndex;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2539 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2540 -(void)setToolbarStyle:(UIBarStyle)style;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2541 -(void)append:(NSString *)item;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2542 -(void)insert:(NSString *)item atIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2543 -(void)clear;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2544 -(int)count;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2545 -(NSString *)getTextAtIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2546 -(void)setText:(NSString *)item atIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2547 -(void)deleteAtIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2548 -(int)selectedIndex;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2549 @end
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2550
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2551 @implementation DWComboBox
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2552 -(id)init
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2553 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2554 self = [super init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2555 if(self)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2556 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2557 [self setDelegate:self];
2433
87669cfe3c92 iOS: Combobox remove code to hide the input caret. Also fix the cancel button.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2432
diff changeset
2558
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2559 /* Set UI defaults */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2560 toolbarStyle = UIBarStyleDefault;
2442
725a6fbb44cd iOS: DWComboBox needs to initialize the array so the list works.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2440
diff changeset
2561 dataArray = [[NSMutableArray alloc] init];
2433
87669cfe3c92 iOS: Combobox remove code to hide the input caret. Also fix the cancel button.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2432
diff changeset
2562
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2563 /* Setup the arrow image */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2564 UIButton *imageButton = [UIButton buttonWithType:UIButtonTypeCustom];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2565 UIImage *image = [UIImage systemImageNamed:@"chevron.down"];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2566 [imageButton setImage:image forState:UIControlStateNormal];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2567 [self setRightView:imageButton];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2568 [self setRightViewMode:UITextFieldViewModeAlways];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2569 [imageButton addTarget:self action:@selector(showPicker:) forControlEvents:UIControlEventTouchUpInside];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2570 selectedIndex = -1;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2571 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2572 return self;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2573 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2574 -(void)setToolbarStyle:(UIBarStyle)style { toolbarStyle = style; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2575 -(void)append:(NSString *)item { if(item) [dataArray addObject:item]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2576 -(void)insert:(NSString *)item atIndex:(int)index { if(item) [dataArray insertObject:item atIndex:index]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2577 -(void)clear { [dataArray removeAllObjects]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2578 -(int)count { return (int)[dataArray count]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2579 -(NSString *)getTextAtIndex:(int)index
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2580 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2581 if(index > -1 && index < [dataArray count])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2582 return [dataArray objectAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2583 return nil;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2584 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2585 -(void)setText:(NSString *)item atIndex:(int)index
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2586 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2587 if(item && index > -1 && index < [dataArray count])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2588 [dataArray replaceObjectAtIndex:index withObject:item];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2589 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2590 -(void)deleteAtIndex:(int)index { if(index > -1 && index < [dataArray count]) [dataArray removeObjectAtIndex:index]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2591 -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2592 -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2593 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2594 selectedIndex = (int)row;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2595 [self setText:[dataArray objectAtIndex:row]];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2596 [self sendActionsForControlEvents:UIControlEventValueChanged];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2597 _dw_event_handler(self, DW_INT_TO_POINTER(selectedIndex), 11);
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2598 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2599 -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return [dataArray count]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2600 -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2601 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2602 return [dataArray objectAtIndex:row];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2603 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2604 -(void)doneClicked:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2605 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2606 /* Hides the pickerView */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2607 [self resignFirstResponder];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2608
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2609 if([[self text] length] == 0 || ![dataArray containsObject:[self text]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2610 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2611 selectedIndex = -1;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2612 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2613 [self sendActionsForControlEvents:UIControlEventValueChanged];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2614 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2615 -(void)cancelClicked:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2616 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2617 /* Hides the pickerView */
2433
87669cfe3c92 iOS: Combobox remove code to hide the input caret. Also fix the cancel button.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2432
diff changeset
2618 [self resignFirstResponder];
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2619 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2620 -(void)showPicker:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2621 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2622 pickerView = [[UIPickerView alloc] init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2623 [pickerView setDataSource:self];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2624 [pickerView setDelegate:self];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2625
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2626 /* If the text field is empty show the place holder otherwise show the last selected option */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2627 if([[self text] length] == 0 || ![dataArray containsObject:[self text]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2628 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2629 [pickerView selectRow:0 inComponent:0 animated:YES];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2630 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2631 else
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2632 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2633 if([dataArray containsObject:[self text]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2634 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2635 [pickerView selectRow:[dataArray indexOfObject:[self text]] inComponent:0 animated:YES];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2636 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2637 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2638
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2639 UIToolbar* toolbar = [[UIToolbar alloc] init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2640 [toolbar setBarStyle:toolbarStyle];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2641 [toolbar sizeToFit];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2642
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2643 /* Space between buttons */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2644 UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2645 target:nil
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2646 action:nil];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2647
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2648 UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2649 initWithTitle:@"Done"
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2650 style:UIBarButtonItemStyleDone
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2651 target:self
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2652 action:@selector(doneClicked:)];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2653
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2654 UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2655 initWithTitle:@"Cancel"
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2656 style:UIBarButtonItemStylePlain
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2657 target:self
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2658 action:@selector(cancelClicked:)];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2659
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2660 [toolbar setItems:[NSArray arrayWithObjects:cancelButton, flexibleSpace, doneButton, nil]];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2661
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2662 /* Custom input view */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2663 [self setInputView:pickerView];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2664 [self setInputAccessoryView:toolbar];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2665 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2666 -(int)selectedIndex { return selectedIndex; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2667 @end
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2668
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2669 /* Subclass for a MDI type
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2670 * This is just a box for display purposes... but it is a
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2671 * unique class so it can be identified when creating windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2672 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2673 @interface DWMDI : DWBox {}
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2674 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2675
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2676 @implementation DWMDI
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2677 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2678
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2679 /* This function adds a signal handler callback into the linked list.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2680 */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2681 void _dw_new_signal(ULONG message, HWND window, int msgid, void *signalfunction, void *discfunc, void *data)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2682 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2683 SignalHandler *new = malloc(sizeof(SignalHandler));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2684
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2685 new->message = message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2686 new->window = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2687 new->id = msgid;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2688 new->signalfunction = signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2689 new->discfunction = discfunc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2690 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2691 new->next = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2692
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2693 if (!DWRoot)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2694 DWRoot = new;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2695 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2696 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2697 SignalHandler *prev = NULL, *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2698 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2699 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2700 if(tmp->message == message &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2701 tmp->window == window &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2702 tmp->id == msgid &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2703 tmp->signalfunction == signalfunction)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2704 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2705 tmp->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2706 free(new);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2707 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2708 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2709 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2710 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2711 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2712 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2713 prev->next = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2714 else
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2715 DWRoot = new;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2716 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2717 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2718
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2719 /* Finds the message number for a given signal name */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2720 ULONG _dw_findsigmessage(const char *signame)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2721 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2722 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2723
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2724 for(z=0;z<SIGNALMAX;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2725 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2726 if(strcasecmp(signame, DWSignalTranslate[z].name) == 0)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2727 return DWSignalTranslate[z].message;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2728 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2729 return 0L;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2730 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2731
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2732 unsigned long _dw_foreground = 0xAAAAAA, _dw_background = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2733
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2734 void _dw_handle_resize_events(Box *thisbox)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2735 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2736 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2737
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2738 for(z=0;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2739 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2740 id handle = thisbox->items[z].hwnd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2741
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2742 if(thisbox->items[z].type == TYPEBOX)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2743 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2744 Box *tmp = (Box *)[handle box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2745
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2746 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2747 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2748 _dw_handle_resize_events(tmp);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2749 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2750 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2751 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2752 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2753 if([handle isMemberOfClass:[DWRender class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2754 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2755 DWRender *render = (DWRender *)handle;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2756 CGSize oldsize = [render size];
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2757 CGSize newsize = [render frame].size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2758
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2759 /* Eliminate duplicate configure requests */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2760 if(oldsize.width != newsize.width || oldsize.height != newsize.height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2761 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2762 if(newsize.width > 0 && newsize.height > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2763 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2764 [render setSize:newsize];
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2765 _dw_event_handler(handle, nil, 1);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2766 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2767 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2768 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2769 /* Special handling for notebook controls */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2770 else if([handle isMemberOfClass:[DWNotebook class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2771 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2772 DWNotebook *notebook = handle;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2773 NSInteger intpageid = [[notebook tabs] selectedSegmentIndex];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2774
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2775 if(intpageid != -1 && intpageid < [[notebook views] count])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2776 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2777 DWNotebookPage *page = [[notebook views] objectAtIndex:intpageid];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2778
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2779 if([page isKindOfClass:[DWBox class]])
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2780 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2781 Box *box = [page box];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2782 _dw_handle_resize_events(box);
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2783 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2784 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2785 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2786 /* Handle laying out scrollviews... if required space is less
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2787 * than available space, then expand. Otherwise use required space.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2788 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2789 else if([handle isMemberOfClass:[DWScrollBox class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2790 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2791 DWScrollBox *scrollbox = (DWScrollBox *)handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2792 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2793 DWBox *contentbox = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2794 Box *thisbox = [contentbox box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2795
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2796 /* Get the required space for the box */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2797 _dw_handle_resize_events(thisbox);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2798 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2799 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2800 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2801 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2802
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2803 /* This function calculates how much space the widgets and boxes require
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2804 * and does expansion as necessary.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2805 */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2806 static void _dw_resize_box(Box *thisbox, int *depth, int x, int y, int pass)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2807 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2808 /* Current item position */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2809 int z, currentx = thisbox->pad, currenty = thisbox->pad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2810 /* Used x, y and padding maximum values...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2811 * These will be used to find the widest or
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2812 * tallest items in a box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2813 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2814 int uymax = 0, uxmax = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2815 int upymax = 0, upxmax = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2816
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2817 /* Reset the box sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2818 thisbox->minwidth = thisbox->minheight = thisbox->usedpadx = thisbox->usedpady = thisbox->pad * 2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2819
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2820 /* Count up all the space for all items in the box */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2821 for(z=0;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2822 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2823 int itempad, itemwidth, itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2824
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2825 if(thisbox->items[z].type == TYPEBOX)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2826 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2827 id box = thisbox->items[z].hwnd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2828 Box *tmp = (Box *)[box box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2829
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2830 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2831 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2832 /* On the first pass calculate the box contents */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2833 if(pass == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2834 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2835 (*depth)++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2836
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2837 /* Save the newly calculated values on the box */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2838 _dw_resize_box(tmp, depth, x, y, pass);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2839
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2840 /* Duplicate the values in the item list for use below */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2841 thisbox->items[z].width = tmp->minwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2842 thisbox->items[z].height = tmp->minheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2843
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2844 /* If the box has no contents but is expandable... default the size to 1 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2845 if(!thisbox->items[z].width && thisbox->items[z].hsize)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2846 thisbox->items[z].width = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2847 if(!thisbox->items[z].height && thisbox->items[z].vsize)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2848 thisbox->items[z].height = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2849
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2850 (*depth)--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2851 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2852 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2853 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2854
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2855 /* Precalculate these values, since they will
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2856 * be used used repeatedly in the next section.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2857 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2858 itempad = thisbox->items[z].pad * 2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2859 itemwidth = thisbox->items[z].width + itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2860 itemheight = thisbox->items[z].height + itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2861
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2862 /* Calculate the totals and maximums */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2863 if(thisbox->type == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2864 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2865 if(itemwidth > uxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2866 uxmax = itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2867
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2868 if(thisbox->items[z].hsize != SIZEEXPAND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2869 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2870 if(itemwidth > upxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2871 upxmax = itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2872 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2873 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2874 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2875 if(itempad > upxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2876 upxmax = itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2877 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2878 thisbox->minheight += itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2879 if(thisbox->items[z].vsize != SIZEEXPAND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2880 thisbox->usedpady += itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2881 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2882 thisbox->usedpady += itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2883 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2884 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2885 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2886 if(itemheight > uymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2887 uymax = itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2888 if(thisbox->items[z].vsize != SIZEEXPAND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2889 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2890 if(itemheight > upymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2891 upymax = itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2892 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2893 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2894 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2895 if(itempad > upymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2896 upymax = itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2897 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2898 thisbox->minwidth += itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2899 if(thisbox->items[z].hsize != SIZEEXPAND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2900 thisbox->usedpadx += itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2901 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2902 thisbox->usedpadx += itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2903 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2904 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2905
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2906 /* Add the maximums which were calculated in the previous loop */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2907 thisbox->minwidth += uxmax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2908 thisbox->minheight += uymax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2909 thisbox->usedpadx += upxmax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2910 thisbox->usedpady += upymax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2912 /* The second pass is for actual placement. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2913 if(pass > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2914 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2915 for(z=0;z<(thisbox->count);z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2916 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2917 int height = thisbox->items[z].height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2918 int width = thisbox->items[z].width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2919 int itempad = thisbox->items[z].pad * 2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2920 int thispad = thisbox->pad * 2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2921
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2922 /* Calculate the new sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2923 if(thisbox->items[z].hsize == SIZEEXPAND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2924 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2925 if(thisbox->type == DW_HORZ)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2926 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2927 int expandablex = thisbox->minwidth - thisbox->usedpadx;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2928
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2929 if(expandablex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2930 width = (int)(((float)width / (float)expandablex) * (float)(x - thisbox->usedpadx));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2931 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2932 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2933 width = x - (itempad + thispad + thisbox->grouppadx);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2934 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2935 if(thisbox->items[z].vsize == SIZEEXPAND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2936 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2937 if(thisbox->type == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2938 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2939 int expandabley = thisbox->minheight - thisbox->usedpady;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2940
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2941 if(expandabley)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2942 height = (int)(((float)height / (float)expandabley) * (float)(y - thisbox->usedpady));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2943 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2944 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2945 height = y - (itempad + thispad + thisbox->grouppady);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2946 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2947
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2948 /* If the calculated size is valid... */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2949 if(height > 0 && width > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2950 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2951 int pad = thisbox->items[z].pad;
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2952 id handle = thisbox->items[z].hwnd;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2953 CGRect rect;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2954
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2955 rect.origin.x = currentx + pad;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2956 rect.origin.y = currenty + pad;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2957 rect.size.width = width;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2958 rect.size.height = height;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2959 [handle setFrame:rect];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2960
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2961 /* After placing a box... place its components */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2962 if(thisbox->items[z].type == TYPEBOX)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2963 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2964 id box = thisbox->items[z].hwnd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2965 Box *tmp = (Box *)[box box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2966
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2967 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2968 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2969 (*depth)++;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2970 _dw_resize_box(tmp, depth, width, height, pass);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2971 (*depth)--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2972 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2973 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2974
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2975 /* Special handling for notebook controls */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2976 if([handle isMemberOfClass:[DWNotebook class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2977 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2978 DWNotebook *notebook = handle;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2979 NSInteger intpageid = [[notebook tabs] selectedSegmentIndex];
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2980
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2981 if(intpageid == -1)
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2982 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2983 if([[notebook tabs] numberOfSegments] > 0)
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2984 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2985 DWNotebookPage *notepage = [[notebook views] firstObject];
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2986
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2987 /* If there is no selected segment, select the first one... */
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2988 [[notebook tabs] setSelectedSegmentIndex:0];
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2989 intpageid = 0;
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2990 [notepage setHidden:NO];
2420
384d076ed52a iOS: Minor fix for initial notebook page remaining visible on page change.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2419
diff changeset
2991 [notebook setVisible:notepage];
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2992 }
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2993 }
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2994
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2995 if(intpageid != -1 && intpageid < [[notebook views] count])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2996 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2997 DWNotebookPage *page = [[notebook views] objectAtIndex:intpageid];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2998
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2999 /* If the new page is a valid box, lay it out */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3000 if([page isKindOfClass:[DWBox class]])
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3001 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3002 Box *box = [page box];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3003 /* Start with the entire notebook size and then adjust
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3004 * it to account for the segement control's height.
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3005 */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3006 NSInteger height = [[notebook tabs] frame].size.height;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3007 CGRect frame = [notebook frame];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3008 frame.origin.y += height;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3009 frame.size.height -= height;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3010 [page setFrame:frame];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3011 _dw_do_resize(box, frame.size.width, frame.size.height);
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3012 _dw_handle_resize_events(box);
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3013 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3014 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3015 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3016 /* Handle laying out scrollviews... if required space is less
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3017 * than available space, then expand. Otherwise use required space.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3018 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3019 else if([handle isMemberOfClass:[DWScrollBox class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3020 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3021 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3022 DWScrollBox *scrollbox = (DWScrollBox *)handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3023 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3024 DWBox *contentbox = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3025 Box *thisbox = [contentbox box];
2448
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3026 /* We start with the content being the available size */
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3027 CGRect frame = CGRectMake(0,0,rect.size.width,rect.size.height);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3028
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3029 /* Get the required space for the box */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3030 _dw_resize_box(thisbox, &depth, x, y, 1);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3031
2448
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3032 /* Expand the content box to the size of the contents */
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3033 if(frame.size.width < thisbox->minwidth)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3034 {
2448
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3035 frame.size.width = thisbox->minwidth;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3036 }
2448
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3037 if(frame.size.height < thisbox->minheight)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3038 {
2448
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3039 frame.size.height = thisbox->minheight;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3040 }
2449
6edaa9382046 iOS: Fix scrolling the scrollbox. Make sure scrolling is enabled and set the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2448
diff changeset
3041 [scrollbox setContentSize:frame.size];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3042 [contentbox setFrame:frame];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3043
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3044 /* Layout the content of the scrollbox */
2448
7e1828dd4fe0 iOS: Fix scrollbox content not expanding to take the full area if smaller.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2447
diff changeset
3045 _dw_do_resize(thisbox, frame.size.width, frame.size.height);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3046 _dw_handle_resize_events(thisbox);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3047 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3048 /* Special handling for spinbutton controls */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3049 else if([handle isMemberOfClass:[DWSpinButton class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3050 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3051 DWSpinButton *spinbutton = (DWSpinButton *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3052 UITextField *textfield = [spinbutton textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3053 UIStepper *stepper = [spinbutton stepper];
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3054 NSInteger stepperwidth = [stepper intrinsicContentSize].width;
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3055 [textfield setFrame:CGRectMake(0,0,rect.size.width-stepperwidth,rect.size.height)];
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3056 [stepper setFrame:CGRectMake(rect.size.width-stepperwidth,0,stepperwidth,rect.size.height)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3057 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3058 else if([handle isMemberOfClass:[DWSplitBar class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3059 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3060 DWSplitBar *split = (DWSplitBar *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3061 float percent = [split percent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3062
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3063 if(percent > 0 && rect.size.width > 20 && rect.size.height > 20)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3064 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3065 dw_splitbar_set(handle, percent);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3066 [split setPercent:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3067 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3068 [split splitViewDidResizeSubviews:nil];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3069 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3070
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3071 /* Advance the current position in the box */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3072 if(thisbox->type == DW_HORZ)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3073 currentx += width + (pad * 2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3074 if(thisbox->type == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3075 currenty += height + (pad * 2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3076 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3077 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3078 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3079 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3080
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3081 static void _dw_do_resize(Box *thisbox, int x, int y)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3082 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3083 if(x > 0 && y > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3084 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3085 if(thisbox)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3086 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3087 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3088
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3089 /* Calculate space requirements */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3090 _dw_resize_box(thisbox, &depth, x, y, 1);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3091
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3092 /* Finally place all the boxes and controls */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3093 _dw_resize_box(thisbox, &depth, x, y, 2);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3094 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3095 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3096 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3097
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3098 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3099 * Runs a message loop for Dynamic Windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3100 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3101 void API dw_main(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3102 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3103 /* We don't actually run a loop here,
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3104 * we launched a new thread to run the loop there.
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3105 * Just wait for dw_main_quit() on the DWMainEvent.
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3106 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3107 dw_event_wait(DWMainEvent, DW_TIMEOUT_INFINITE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3108 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3109
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3110 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3111 * Causes running dw_main() to return.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3112 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3113 void API dw_main_quit(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3114 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3115 dw_event_post(DWMainEvent);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3116 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3117
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3118 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3119 * Runs a message loop for Dynamic Windows, for a period of milliseconds.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3120 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3121 * milliseconds: Number of milliseconds to run the loop for.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3122 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3123 void API dw_main_sleep(int milliseconds)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3124 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3125 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3126
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3127 if(DWThread == (DWTID)-1 || DWThread == curr)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3128 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3129 DWTID orig = DWThread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3130 NSDate *until = [NSDate dateWithTimeIntervalSinceNow:(milliseconds/1000.0)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3131
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3132 if(orig == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3133 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3134 DWThread = curr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3135 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3136 /* Process any pending events */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3137 while(_dw_main_iteration(until))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3138 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3139 /* Just loop */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3140 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3141 if(orig == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3142 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3143 DWThread = orig;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3144 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3145 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3146 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3147 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3148 usleep(milliseconds * 1000);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3149 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3150 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3151
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3152 /* Internal version that doesn't lock the run mutex */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3153 int _dw_main_iteration(NSDate *date)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3154 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
3155 return [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:date];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3156 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3157
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3158 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3159 * Processes a single message iteration and returns.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3160 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3161 void API dw_main_iteration(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3162 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3163 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3164
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3165 if(DWThread == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3166 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3167 DWThread = curr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3168 _dw_main_iteration([NSDate distantPast]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3169 DWThread = (DWTID)-1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3170 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3171 else if(DWThread == curr)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3172 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3173 _dw_main_iteration([NSDate distantPast]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3174 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3175 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3176
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3177 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3178 * Cleanly terminates a DW session, should be signal handler safe.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3179 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3180 void API dw_shutdown(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3181 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3182 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3183
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3184 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3185 * Cleanly terminates a DW session, should be signal handler safe.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3186 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3187 * exitcode: Exit code reported to the operating system.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3188 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3189 void API dw_exit(int exitcode)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3190 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3191 dw_shutdown();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3192 exit(exitcode);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3193 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3194
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3195 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3196 * Free's memory allocated by dynamic windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3197 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3198 * ptr: Pointer to dynamic windows allocated
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3199 * memory to be free()'d.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3200 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3201 void API dw_free(void *ptr)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3202 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3203 free(ptr);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3204 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3205
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3206 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3207 * Returns a pointer to a static buffer which containes the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3208 * current user directory. Or the root directory (C:\ on
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3209 * OS/2 and Windows).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3210 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3211 char *dw_user_dir(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3212 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3213 static char _user_dir[PATH_MAX+1] = { 0 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3214
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3215 if(!_user_dir[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3216 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3217 char *home = getenv("HOME");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3218
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3219 if(home)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3220 strncpy(_user_dir, home, PATH_MAX);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3221 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3222 strcpy(_user_dir, "/");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3223 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3224 return _user_dir;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3225 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3226
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3227 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3228 * Returns a pointer to a static buffer which containes the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3229 * private application data directory.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3230 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3231 char * API dw_app_dir(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3232 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3233 return _dw_bundle_path;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3234 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3235
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3236 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3237 * Sets the application ID used by this Dynamic Windows application instance.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3238 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3239 * appid: A string typically in the form: com.company.division.application
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3240 * appname: The application name used on Windows or NULL.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3241 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3242 * DW_ERROR_NONE after successfully setting the application ID.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3243 * DW_ERROR_UNKNOWN if unsupported on this system.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3244 * DW_ERROR_GENERAL if the application ID is not allowed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3245 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3246 * This must be called before dw_init(). If dw_init() is called first
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3247 * it will create a unique ID in the form: org.dbsoft.dwindows.application
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3248 * or if the application name cannot be detected: org.dbsoft.dwindows.pid.#
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3249 * The appname is only required on Windows. If NULL is passed the detected
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3250 * application name will be used, but a prettier name may be desired.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3251 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3252 int dw_app_id_set(const char *appid, const char *appname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3253 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3254 strncpy(_dw_app_id, appid, _DW_APP_ID_SIZE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3255 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3256 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3257
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3258 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3259 * Displays a debug message on the console...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3260 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3261 * format: printf style format string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3262 * ...: Additional variables for use in the format.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3263 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3264 void API dw_debug(const char *format, ...)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3265 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3266 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3267 char outbuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3268
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3269 va_start(args, format);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3270 vsnprintf(outbuf, 1024, format, args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3271 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3272
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3273 NSLog(@"%s", outbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3274 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3275
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3276 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3277 * Displays a Message Box with given text and title..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3278 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3279 * title: The title of the message box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3280 * flags: flags to indicate buttons and icon
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3281 * format: printf style format string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3282 * ...: Additional variables for use in the format.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3283 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3284 int API dw_messagebox(const char *title, int flags, const char *format, ...)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3285 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3286 NSInteger iResponse;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3287 NSString *button1 = @"OK";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3288 NSString *button2 = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3289 NSString *button3 = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3290 NSString *mtitle = [NSString stringWithUTF8String:title];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3291 NSString *mtext;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3292 UIAlertControllerStyle mstyle = UIAlertControllerStyleAlert;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3293 NSArray *params;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3294 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3296 if(flags & DW_MB_OKCANCEL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3297 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3298 button2 = @"Cancel";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3299 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3300 else if(flags & DW_MB_YESNO)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3301 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3302 button1 = @"Yes";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3303 button2 = @"No";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3304 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3305 else if(flags & DW_MB_YESNOCANCEL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3306 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3307 button1 = @"Yes";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3308 button2 = @"No";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3309 button3 = @"Cancel";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3310 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3311
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3312 va_start(args, format);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3313 mtext = [[[NSString alloc] initWithFormat:[NSString stringWithUTF8String:format] arguments:args] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3314 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3315
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
3316 #if 0 /* TODO: If we want to use this style it requires a rectangle...
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
3317 * However the alert style looks pretty good to me...
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
3318 */
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3319 if(flags & DW_MB_INFORMATION)
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3320 mstyle = UIAlertControllerStyleActionSheet;
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
3321 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3322
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3323 params = [NSMutableArray arrayWithObjects:mtitle, mtext, [NSNumber numberWithInteger:mstyle], button1, button2, button3, nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3324 [DWObj safeCall:@selector(messageBox:) withObject:params];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3325 iResponse = [[params lastObject] integerValue];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3326
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3327 switch(iResponse)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3328 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3329 case 1: /* user pressed OK */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3330 if(flags & DW_MB_YESNO || flags & DW_MB_YESNOCANCEL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3331 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3332 return DW_MB_RETURN_YES;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3333 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3334 return DW_MB_RETURN_OK;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3335 case 2: /* user pressed Cancel */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3336 if(flags & DW_MB_OKCANCEL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3337 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3338 return DW_MB_RETURN_CANCEL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3339 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3340 return DW_MB_RETURN_NO;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3341 case 3: /* user pressed the third button */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3342 return DW_MB_RETURN_CANCEL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3343 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3344 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3345 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3346
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3347 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3348 * Opens a file dialog and queries user selection.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3349 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3350 * title: Title bar text for dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3351 * defpath: The default path of the open dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3352 * ext: Default file extention.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3353 * flags: DW_FILE_OPEN or DW_FILE_SAVE.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3354 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3355 * NULL on error. A malloced buffer containing
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3356 * the file path on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3357 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3358 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3359 char * API dw_file_browse(const char *title, const char *defpath, const char *ext, int flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3360 {
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3361 NSPointerArray *params = [[NSPointerArray pointerArrayWithOptions:NSPointerFunctionsOpaqueMemory] retain];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3362 char *file = NULL;
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3363
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3364 [params addPointer:(void *)defpath];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3365 [params addPointer:(void *)ext];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3366 [params addPointer:DW_INT_TO_POINTER(flags)];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3367 [DWObj safeCall:@selector(filePicker:) withObject:params];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3368 if([params count] > 3)
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3369 file = [params pointerAtIndex:3];
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3370
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3371 return file;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3372 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3373
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3374 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3375 * Gets the contents of the default clipboard as text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3376 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3377 * None.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3378 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3379 * Pointer to an allocated string of text or NULL if clipboard empty or contents could not
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3380 * be converted to text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3381 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3382 char *dw_clipboard_get_text()
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3383 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3384 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3385 NSString *str = [pasteboard string];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3386 if(str != nil)
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3387 return strdup([str UTF8String]);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3388 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3389 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3390
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3391 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3392 * Sets the contents of the default clipboard to the supplied text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3393 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3394 * Text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3395 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3396 void dw_clipboard_set_text(const char *str, int len)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3397 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3398 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3399
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3400 [pasteboard setString:[NSString stringWithUTF8String:str]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3401 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3402
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3403
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3404 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3405 * Allocates and initializes a dialog struct.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3406 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3407 * data: User defined data to be passed to functions.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3408 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3409 DWDialog * API dw_dialog_new(void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3410 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3411 DWDialog *tmp = malloc(sizeof(DWDialog));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3412
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3413 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3414 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3415 tmp->eve = dw_event_new();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3416 dw_event_reset(tmp->eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3417 tmp->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3418 tmp->done = FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3419 tmp->result = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3420 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3421 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3422 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3423
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3424 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3425 * Accepts a dialog struct and returns the given data to the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3426 * initial called of dw_dialog_wait().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3427 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3428 * dialog: Pointer to a dialog struct aquired by dw_dialog_new).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3429 * result: Data to be returned by dw_dialog_wait().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3430 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3431 int API dw_dialog_dismiss(DWDialog *dialog, void *result)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3432 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3433 dialog->result = result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3434 dw_event_post(dialog->eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3435 dialog->done = TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3436 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3437 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3438
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3439 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3440 * Accepts a dialog struct waits for dw_dialog_dismiss() to be
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3441 * called by a signal handler with the given dialog struct.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3442 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3443 * dialog: Pointer to a dialog struct aquired by dw_dialog_new).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3444 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3445 void * API dw_dialog_wait(DWDialog *dialog)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3446 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3447 void *tmp = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3448
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3449 if(dialog)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3450 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3451 while(!dialog->done)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3452 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3453 _dw_main_iteration([NSDate dateWithTimeIntervalSinceNow:0.01]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3454 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3455 dw_event_close(&dialog->eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3456 tmp = dialog->result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3457 free(dialog);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3458 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3459 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3460 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3461
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3462 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3463 * Create a new Box to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3464 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3465 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3466 * pad: Number of pixels to pad around the box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3467 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3468 DW_FUNCTION_DEFINITION(dw_box_new, HWND, int type, int pad)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3469 DW_FUNCTION_ADD_PARAM2(type, pad)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3470 DW_FUNCTION_RETURN(dw_box_new, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3471 DW_FUNCTION_RESTORE_PARAM2(type, int, pad, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3472 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3473 DW_FUNCTION_INIT;
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
3474 DWBox *view = [[[DWBox alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3475 Box *newbox = [view box];
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
3476 [view setTranslatesAutoresizingMaskIntoConstraints:NO];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3477 memset(newbox, 0, sizeof(Box));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3478 newbox->pad = pad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3479 newbox->type = type;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3480 DW_FUNCTION_RETURN_THIS(view);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3481 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3482
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3483 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3484 * Create a new Group Box to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3485 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3486 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3487 * pad: Number of pixels to pad around the box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3488 * title: Text to be displayined in the group outline.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3489 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3490 HWND API dw_groupbox_new(int type, int pad, const char *title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3491 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3492 return dw_box_new(type, pad);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3493 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3494
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3495 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3496 * Create a new scrollable Box to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3497 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3498 * type: Either DW_VERT (vertical) or DW_HORZ (horizontal).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3499 * pad: Number of pixels to pad around the box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3500 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3501 DW_FUNCTION_DEFINITION(dw_scrollbox_new, HWND, int type, int pad)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3502 DW_FUNCTION_ADD_PARAM2(type, pad)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3503 DW_FUNCTION_RETURN(dw_scrollbox_new, HWND)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3504 DW_FUNCTION_RESTORE_PARAM2(type, int, pad, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3505 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
3506 DWScrollBox *scrollbox = [[[DWScrollBox alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3507 DWBox *box = dw_box_new(type, pad);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3508 DWBox *tmpbox = dw_box_new(DW_VERT, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3509 dw_box_pack_start(tmpbox, box, 1, 1, TRUE, TRUE, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3510 [scrollbox setBox:box];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3511 [scrollbox addSubview:tmpbox];
2449
6edaa9382046 iOS: Fix scrolling the scrollbox. Make sure scrolling is enabled and set the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2448
diff changeset
3512 [scrollbox setScrollEnabled:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3513 [tmpbox autorelease];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3514 DW_FUNCTION_RETURN_THIS(scrollbox);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3515 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3516
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3517 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3518 * Returns the position of the scrollbar in the scrollbox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3519 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3520 * handle: Handle to the scrollbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3521 * orient: The vertical or horizontal scrollbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3522 */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3523 DW_FUNCTION_DEFINITION(dw_scrollbox_get_pos, int, HWND handle, int orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3524 DW_FUNCTION_ADD_PARAM2(handle, orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3525 DW_FUNCTION_RETURN(dw_scrollbox_get_pos, int)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3526 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, orient, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3527 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3528 DWScrollBox *scrollbox = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3529 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3530 UIView *view = [subviews firstObject];
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
3531 CGSize contentsize = [scrollbox contentSize];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3532 CGPoint contentoffset = [scrollbox contentOffset];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3533 int range = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3534 int val = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3535 if(orient == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3536 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3537 range = [view bounds].size.height - contentsize.height;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3538 val = contentoffset.y;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3539 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3540 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3541 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3542 range = [view bounds].size.width - contentsize.width;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3543 val = contentoffset.x;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3544 }
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3545 if(val > range)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3546 {
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3547 val = range;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3548 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3549 DW_FUNCTION_RETURN_THIS(val);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3550 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3551
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3552 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3553 * Gets the range for the scrollbar in the scrollbox.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3554 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3555 * handle: Handle to the scrollbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3556 * orient: The vertical or horizontal scrollbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3557 */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3558 DW_FUNCTION_DEFINITION(dw_scrollbox_get_range, int, HWND handle, int orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3559 DW_FUNCTION_ADD_PARAM2(handle, orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3560 DW_FUNCTION_RETURN(dw_scrollbox_get_range, int)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3561 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, orient, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3562 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3563 DWScrollBox *scrollbox = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3564 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3565 UIView *view = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3566 int range = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3567 if(orient == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3568 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3569 range = [view bounds].size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3570 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3571 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3572 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3573 range = [view bounds].size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3574 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3575 DW_FUNCTION_RETURN_THIS(range);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3576 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3577
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3578 /* Return the handle to the text object */
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
3579 id _dw_text_handle(id object)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3580 {
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3581 if([object isMemberOfClass:[DWButton class]])
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3582 {
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3583 DWButton *button = object;
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3584 object = [button titleLabel];
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3585 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3586 else if([object isMemberOfClass:[DWSpinButton class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3587 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3588 DWSpinButton *spinbutton = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3589 object = [spinbutton textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3590 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3591 #if 0 /* TODO: Fix this when we have a groupbox implemented */
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3592 if([object isMemberOfClass:[NSBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3593 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3594 NSBox *box = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3595 id content = [box contentView];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3596
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3597 if([content isMemberOfClass:[DWText class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3598 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3599 object = content;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3600 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3601 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3602 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3603 return object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3604 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3605
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3606 /* Internal function to calculate the widget's required size..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3607 * These are the general rules for widget sizes:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3608 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3609 * Render/Unspecified: 1x1
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3610 * Scrolled(Container,Tree,MLE): Guessed size clamped to min and max in dw.h
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3611 * Entryfield/Combobox/Spinbutton: 150x(maxfontheight)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3612 * Spinbutton: 50x(maxfontheight)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3613 * Text/Status: (textwidth)x(textheight)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3614 * Ranged: 100x14 or 14x100 for vertical.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3615 * Buttons/Bitmaps: Size of text or image and border.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3616 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3617 void _dw_control_size(id handle, int *width, int *height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3618 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3619 int thiswidth = 1, thisheight = 1, extrawidth = 0, extraheight = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3620 NSString *nsstr = nil;
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
3621 id object = _dw_text_handle(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3622
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3623 /* Handle all the different button types */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3624 if([handle isMemberOfClass:[DWButton class]])
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3625 {
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3626 UIImage *image = [handle imageForState:UIControlStateNormal];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3627
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3628 if(image)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3629 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3630 /* Image button */
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3631 CGSize size = [image size];
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3632 extrawidth = (int)size.width + 1;
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3633 /* Height isn't additive */
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3634 thisheight = (int)size.height + 1;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3635 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3636 /* Text button */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3637 nsstr = [[handle titleLabel] text];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3638
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3639 if(nsstr && [nsstr length] > 0)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3640 {
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3641 /* With combined text/image we seem to
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3642 * need a lot of additional width space.
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3643 */
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3644 if(image)
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3645 extrawidth += 30;
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3646 else
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3647 extrawidth += 8;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3648 extraheight += 4;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3649 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3650 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3651 /* If the control is an entryfield set width to 150 */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3652 else if([object isKindOfClass:[UITextField class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3653 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3654 UIFont *font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3655
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3656 if([object isEditable])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3657 {
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3658 /* Spinbutton text doesn't need to be as wide */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3659 if([handle isMemberOfClass:[DWSpinButton class]])
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3660 thiswidth = 50;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3661 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3662 thiswidth = 150;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3663 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3664 nsstr = [object text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3665
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3666 if(font)
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3667 thisheight = (int)[font lineHeight];
2467
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
3668
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3669 /* Spinbuttons need some extra */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3670 if([handle isMemberOfClass:[DWSpinButton class]])
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3671 {
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3672 DWSpinButton *spinbutton = handle;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3673 CGSize size = [[spinbutton stepper] intrinsicContentSize];
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3674
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3675 /* Add the stepper width as extra... */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3676 extrawidth = size.width;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3677 /* The height should be the bigger of the two */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3678 if(size.height > thisheight)
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3679 thisheight = size.height;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3680 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3681 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3682 /* Handle the ranged widgets */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3683 else if([object isMemberOfClass:[DWPercent class]] ||
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3684 [object isMemberOfClass:[DWSlider class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3685 {
2541
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3686 if([object isMemberOfClass:[DWSlider class]] && [object vertical])
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3687 {
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3688 thiswidth = 25;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3689 thisheight = 100;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3690 }
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3691 else
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3692 {
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3693 thiswidth = 100;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3694 thisheight = 25;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3695 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3696 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3697 /* Handle bitmap size */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3698 else if([object isMemberOfClass:[UIImageView class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3699 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3700 UIImage *image = (UIImage *)[object image];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3701
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3702 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3703 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
3704 CGSize size = [image size];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3705 thiswidth = (int)size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3706 thisheight = (int)size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3707 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3708 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3709 /* Handle calendar */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3710 else if([object isMemberOfClass:[DWCalendar class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3711 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3712 CGSize size = [object intrinsicContentSize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3713
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3714 thiswidth = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3715 thisheight = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3716 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3717 /* MLE and Container */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3718 else if([object isMemberOfClass:[DWMLE class]] ||
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3719 [object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3720 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
3721 CGSize size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3722
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3723 if([object isMemberOfClass:[DWMLE class]])
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
3724 size = [object contentSize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3725 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3726 size = [object getsize];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3727
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3728 thiswidth = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3729 thisheight = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3730
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3731 if(thiswidth < _DW_SCROLLED_MIN_WIDTH)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3732 thiswidth = _DW_SCROLLED_MIN_WIDTH;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3733 if(thiswidth > _DW_SCROLLED_MAX_WIDTH)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3734 thiswidth = _DW_SCROLLED_MAX_WIDTH;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3735 if(thisheight < _DW_SCROLLED_MIN_HEIGHT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3736 thisheight = _DW_SCROLLED_MIN_HEIGHT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3737 if(thisheight > _DW_SCROLLED_MAX_HEIGHT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3738 thisheight = _DW_SCROLLED_MAX_HEIGHT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3739 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3740 else if([object isKindOfClass:[UILabel class]])
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3741 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3742 nsstr = [object text];
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3743 extrawidth = extraheight = 2;
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3744 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3745 #ifdef DW_INCLUDE_DEPRECATED
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3746 /* Any other control type */
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3747 else if([object isKindOfClass:[UIControl class]])
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3748 nsstr = [object text];
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3749 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3750
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3751 /* If we have a string...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3752 * calculate the size with the current font.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3753 */
2464
4fba0b9453ee iOS: Fix calculating label size when there is no text. Use "gT" to calculate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2463
diff changeset
3754 if(nsstr)
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3755 {
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3756 int textwidth, textheight;
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3757
2464
4fba0b9453ee iOS: Fix calculating label size when there is no text. Use "gT" to calculate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2463
diff changeset
3758 /* If we have an empty string, use "gT" to get the most height for the font */
4fba0b9453ee iOS: Fix calculating label size when there is no text. Use "gT" to calculate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2463
diff changeset
3759 dw_font_text_extents_get(object, NULL, [nsstr length] ? (char *)[nsstr UTF8String] : "gT", &textwidth, &textheight);
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3760
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3761 if(textheight > thisheight)
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3762 thisheight = textheight;
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3763 if(textwidth > thiswidth)
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3764 thiswidth = textwidth;
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3765 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3766
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3767 /* Set the requested sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3768 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3769 *width = thiswidth + extrawidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3770 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3771 *height = thisheight + extraheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3772 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3773
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3774 /* Internal box packing function called by the other 3 functions */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3775 void _dw_box_pack(HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad, char *funcname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3776 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3777 id object = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3778 DWBox *view = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3779 DWBox *this = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3780 Box *thisbox;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3781 int z, x = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3782 Item *tmpitem, *thisitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3783
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3784 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3785 * If you try and pack an item into itself VERY bad things can happen; like at least an
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3786 * infinite loop on GTK! Lets be safe!
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3787 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3788 if(box == item)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3789 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3790 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Danger! Danger! Will Robinson; box and item are the same!");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3791 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3792 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3793
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3794 /* Query the objects */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3795 if([object isKindOfClass:[UIWindow class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3796 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3797 UIWindow *window = box;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3798 NSArray *subviews = [window subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3799 view = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3800 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3801 else if([object isMemberOfClass:[DWScrollBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3802 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3803 DWScrollBox *scrollbox = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3804 view = [scrollbox box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3805 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3806
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3807 thisbox = [view box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3808 thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3809 object = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3810
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3811 /* Do some sanity bounds checking */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3812 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3813 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3814 if(index < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3815 index = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3816 if(index > thisbox->count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3817 index = thisbox->count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3818
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3819 /* Duplicate the existing data */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3820 tmpitem = calloc(sizeof(Item), (thisbox->count+1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3821
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3822 for(z=0;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3823 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3824 if(z == index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3825 x++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3826 tmpitem[x] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3827 x++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3828 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3829
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3830 /* Sanity checks */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3831 if(vsize && !height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3832 height = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3833 if(hsize && !width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3834 width = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3835
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3836 /* Fill in the item data appropriately */
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3837 if([object isKindOfClass:[DWBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3838 tmpitem[index].type = TYPEBOX;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3839 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3840 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
3841 if(width == 0 && hsize == FALSE)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3842 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Width and expand Horizonal both unset for box: %x item: %x",box,item);
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
3843 if(height == 0 && vsize == FALSE)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3844 dw_messagebox(funcname, DW_MB_OK|DW_MB_ERROR, "Height and expand Vertical both unset for box: %x item: %x",box,item);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3845
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3846 tmpitem[index].type = TYPEITEM;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3847 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3848
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3849 tmpitem[index].hwnd = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3850 tmpitem[index].origwidth = tmpitem[index].width = width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3851 tmpitem[index].origheight = tmpitem[index].height = height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3852 tmpitem[index].pad = pad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3853 tmpitem[index].hsize = hsize ? SIZEEXPAND : SIZESTATIC;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3854 tmpitem[index].vsize = vsize ? SIZEEXPAND : SIZESTATIC;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3855
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3856 /* If either of the parameters are -1 ... calculate the size */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3857 if(width == -1 || height == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3858 _dw_control_size(object, width == -1 ? &tmpitem[index].width : NULL, height == -1 ? &tmpitem[index].height : NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3859
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3860 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3861
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3862 /* Update the item count */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3863 thisbox->count++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3864
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3865 /* Add the item to the box */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3866 [view addSubview:this];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3867 /* Enable autorelease on the item...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3868 * so it will get destroyed when the parent is.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3869 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3870 [this autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3871 /* If we are packing a button... */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3872 if([this isMemberOfClass:[DWButton class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3873 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3874 DWButton *button = (DWButton *)this;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3875
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3876 /* Save the parent box so radio
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3877 * buttons can use it later.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3878 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3879 [button setParent:view];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3880 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3881 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3882 _dw_redraw([view window], TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3883
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3884 /* Free the old data */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3885 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3886 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3887 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3888
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3889 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3890 * Remove windows (widgets) from the box they are packed into.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3891 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3892 * handle: Window handle of the packed item to be removed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3893 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3894 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3895 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3896 DW_FUNCTION_DEFINITION(dw_box_unpack, int, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3897 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3898 DW_FUNCTION_RETURN(dw_box_unpack, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3899 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3900 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3901 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3902 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3903 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3904 int retval = DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3905
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3906 if([object isKindOfClass:[UIView class]] || [object isKindOfClass:[UIControl class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3907 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3908 DWBox *parent = (DWBox *)[object superview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3909
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3910 if([parent isKindOfClass:[DWBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3911 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3912 id window = [object window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3913 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3914 int z, index = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3915 Item *tmpitem = NULL, *thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3916
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3917 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3918 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3919
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3920 for(z=0;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3921 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3922 if(thisitem[z].hwnd == object)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3923 index = z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3924 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3925
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3926 if(index == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3927 retval = DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3928 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3929 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3930 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3931 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3932
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3933 if(thisbox->count > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3934 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3935 tmpitem = calloc(sizeof(Item), (thisbox->count-1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3936
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3937 /* Copy all but the current entry to the new list */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3938 for(z=0;z<index;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3939 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3940 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3941 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3942 for(z=index+1;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3943 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3944 tmpitem[z-1] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3945 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3946 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3947
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3948 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3949 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3950 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3951 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3952 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3953 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3954 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3955 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3956 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3957 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3958 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3959 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3960 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3961 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3962 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3963
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3964 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3965 * Remove windows (widgets) from a box at an arbitrary location.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3966 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3967 * box: Window handle of the box to be removed from.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3968 * index: 0 based index of packed items.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3969 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3970 * Handle to the removed item on success, 0 on failure or padding.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3971 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3972 DW_FUNCTION_DEFINITION(dw_box_unpack_at_index, HWND, HWND box, int index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3973 DW_FUNCTION_ADD_PARAM2(box, index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3974 DW_FUNCTION_RETURN(dw_box_unpack_at_index, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3975 DW_FUNCTION_RESTORE_PARAM2(box, HWND, index, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3976 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3977 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3978 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3979 DWBox *parent = (DWBox *)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3980 id object = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3981
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3982 if([parent isKindOfClass:[DWBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3983 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3984 id window = [parent window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3985 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3986
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3987 if(thisbox && index > -1 && index < thisbox->count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3988 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3989 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3990 Item *tmpitem = NULL, *thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3991
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3992 object = thisitem[index].hwnd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3993
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3994 if(object)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3995 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3996 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3997 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3998 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3999
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4000 if(thisbox->count > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4001 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4002 tmpitem = calloc(sizeof(Item), (thisbox->count-1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4003
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4004 /* Copy all but the current entry to the new list */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4005 for(z=0;thisitem && z<index;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4006 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4007 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4008 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4009 for(z=index+1;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4010 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4011 tmpitem[z-1] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4012 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4013 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4014
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4015 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4016 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4017 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4018 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4019 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4020 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4021 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4022
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4023 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4024 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4025 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4026 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4027 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4028 DW_FUNCTION_RETURN_THIS(object);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4029 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4030
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4031 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4032 * Pack windows (widgets) into a box at an arbitrary location.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4033 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4034 * box: Window handle of the box to be packed into.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4035 * item: Window handle of the item to pack.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4036 * index: 0 based index of packed items.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4037 * width: Width in pixels of the item or -1 to be self determined.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4038 * height: Height in pixels of the item or -1 to be self determined.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4039 * hsize: TRUE if the window (widget) should expand horizontally to fill space given.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4040 * vsize: TRUE if the window (widget) should expand vertically to fill space given.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4041 * pad: Number of pixels of padding around the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4042 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4043 DW_FUNCTION_DEFINITION(dw_box_pack_at_index, void, HWND box, HWND item, int index, int width, int height, int hsize, int vsize, int pad)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4044 DW_FUNCTION_ADD_PARAM8(box, item, index, width, height, hsize, vsize, pad)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4045 DW_FUNCTION_NO_RETURN(dw_box_pack_at_index)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4046 DW_FUNCTION_RESTORE_PARAM8(box, HWND, item, HWND, index, int, width, int, height, int, hsize, int, vsize, int, pad, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4047 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4048 _dw_box_pack(box, item, index, width, height, hsize, vsize, pad, "dw_box_pack_at_index()");
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4049 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4050 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4051
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4052 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4053 * Pack windows (widgets) into a box from the start (or top).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4054 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4055 * box: Window handle of the box to be packed into.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4056 * item: Window handle of the item to pack.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4057 * width: Width in pixels of the item or -1 to be self determined.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4058 * height: Height in pixels of the item or -1 to be self determined.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4059 * hsize: TRUE if the window (widget) should expand horizontally to fill space given.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4060 * vsize: TRUE if the window (widget) should expand vertically to fill space given.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4061 * pad: Number of pixels of padding around the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4062 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4063 DW_FUNCTION_DEFINITION(dw_box_pack_start, void, HWND box, HWND item, int width, int height, int hsize, int vsize, int pad)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4064 DW_FUNCTION_ADD_PARAM7(box, item, width, height, hsize, vsize, pad)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4065 DW_FUNCTION_NO_RETURN(dw_box_pack_start)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4066 DW_FUNCTION_RESTORE_PARAM7(box, HWND, item, HWND, width, int, height, int, hsize, int, vsize, int, pad, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4067 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4068 /* 65536 is the table limit on GTK...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4069 * seems like a high enough value we will never hit it here either.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4070 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4071 _dw_box_pack(box, item, 65536, width, height, hsize, vsize, pad, "dw_box_pack_start()");
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4072 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4073 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4074
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4075 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4076 * Pack windows (widgets) into a box from the end (or bottom).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4077 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4078 * box: Window handle of the box to be packed into.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4079 * item: Window handle of the item to pack.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4080 * width: Width in pixels of the item or -1 to be self determined.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4081 * height: Height in pixels of the item or -1 to be self determined.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4082 * hsize: TRUE if the window (widget) should expand horizontally to fill space given.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4083 * vsize: TRUE if the window (widget) should expand vertically to fill space given.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4084 * pad: Number of pixels of padding around the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4085 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4086 DW_FUNCTION_DEFINITION(dw_box_pack_end, void, HWND box, HWND item, int width, int height, int hsize, int vsize, int pad)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4087 DW_FUNCTION_ADD_PARAM7(box, item, width, height, hsize, vsize, pad)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4088 DW_FUNCTION_NO_RETURN(dw_box_pack_end)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4089 DW_FUNCTION_RESTORE_PARAM7(box, HWND, item, HWND, width, int, height, int, hsize, int, vsize, int, pad, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4090 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4091 _dw_box_pack(box, item, 0, width, height, hsize, vsize, pad, "dw_box_pack_end()");
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4092 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4093 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4094
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4095 /* Internal function to create a basic button, used by all button types */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4096 HWND _dw_internal_button_new(const char *text, ULONG cid)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4097 {
2401
010ae32a5067 iOS: Hide the UITransitionView that is attached to the UIWindow.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2400
diff changeset
4098 DWButton *button = [[DWButton buttonWithType:UIButtonTypeRoundedRect] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4099 if(text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4100 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4101 [button setTitle:[NSString stringWithUTF8String:text] forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4102 }
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4103 [button addTarget:button
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4104 action:@selector(buttonClicked:)
2401
010ae32a5067 iOS: Hide the UITransitionView that is attached to the UIWindow.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2400
diff changeset
4105 forControlEvents:UIControlEventTouchUpInside];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4106 [button setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4107 if(DWDefaultFont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4108 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4109 [[button titleLabel] setFont:DWDefaultFont];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4110 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4111 return button;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4112 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4113
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4114 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4115 * Create a new button window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4116 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4117 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4118 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4119 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4120 DW_FUNCTION_DEFINITION(dw_button_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4121 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4122 DW_FUNCTION_RETURN(dw_button_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4123 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4124 {
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4125 DWButton *button = _dw_internal_button_new(text, cid);
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4126 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4127 DW_FUNCTION_RETURN_THIS(button);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4128 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4129
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4130 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4131 * Create a new Entryfield window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4132 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4133 * text: The default text to be in the entryfield widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4134 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4135 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4136 DW_FUNCTION_DEFINITION(dw_entryfield_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4137 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4138 DW_FUNCTION_RETURN(dw_entryfield_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4139 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4140 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
4141 DWEntryField *entry = [[[DWEntryField alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4142 [entry setText:[ NSString stringWithUTF8String:text ]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4143 [entry setTag:cid];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4144 DW_FUNCTION_RETURN_THIS(entry);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4145 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4146
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4147 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4148 * Create a new Entryfield (password) window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4149 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4150 * text: The default text to be in the entryfield widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4151 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4152 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4153 DW_FUNCTION_DEFINITION(dw_entryfield_password_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4154 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4155 DW_FUNCTION_RETURN(dw_entryfield_password_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4156 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4157 {
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
4158 DWEntryField *entry = dw_entryfield_new(text, cid);
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
4159 [entry setSecureTextEntry:YES];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4160 DW_FUNCTION_RETURN_THIS(entry);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4161 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4162
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4163 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4164 * Sets the entryfield character limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4165 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4166 * handle: Handle to the spinbutton to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4167 * limit: Number of characters the entryfield will take.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4168 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4169 void API dw_entryfield_set_limit(HWND handle, ULONG limit)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4170 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
4171 #if 0 /* TODO: Implment this via textField:shouldChangeCharactersInRange:replacementString: */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4172 DWEntryField *entry = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4173 DWEntryFieldFormatter *formatter = [[[DWEntryFieldFormatter alloc] init] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4174
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4175 [formatter setMaximumLength:(int)limit];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4176 [entry setFormatter:formatter];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
4177 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4178 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4179
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4180 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4181 * Create a new bitmap button window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4182 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4183 * text: Bubble help text to be displayed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4184 * id: An ID of a bitmap in the resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4185 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4186 DW_FUNCTION_DEFINITION(dw_bitmapbutton_new, HWND, DW_UNUSED(const char *text), ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4187 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4188 DW_FUNCTION_RETURN(dw_bitmapbutton_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4189 DW_FUNCTION_RESTORE_PARAM2(DW_UNUSED(text), const char *, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4190 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4191 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4192 NSString *respath = [bundle resourcePath];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4193 NSString *filepath = [respath stringByAppendingFormat:@"/%lu.png", cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4194 UIImage *image = [[UIImage alloc] initWithContentsOfFile:filepath];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4195 DWButton *button = _dw_internal_button_new("", cid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4196 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4197 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4198 [button setImage:image forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4199 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4200 [image release];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4201 DW_FUNCTION_RETURN_THIS(button);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4202 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4203
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4204 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4205 * Create a new bitmap button window (widget) to be packed from a file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4206 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4207 * text: Bubble help text to be displayed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4208 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4209 * filename: Name of the file, omit extention to have
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4210 * DW pick the appropriate file extension.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4211 * (BMP on OS/2 or Windows, XPM on Unix)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4212 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
4213 DW_FUNCTION_DEFINITION(dw_bitmapbutton_new_from_file, HWND, DW_UNUSED(const char *text), ULONG cid, const char *filename)
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4214 DW_FUNCTION_ADD_PARAM3(text, cid, filename)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4215 DW_FUNCTION_RETURN(dw_bitmapbutton_new_from_file, HWND)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
4216 DW_FUNCTION_RESTORE_PARAM3(DW_UNUSED(text), const char *, cid, ULONG, filename, const char *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4217 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4218 char *ext = _dw_get_image_extension(filename);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4219
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4220 NSString *nstr = [ NSString stringWithUTF8String:filename ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4221 UIImage *image = [[UIImage alloc] initWithContentsOfFile:nstr];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4222
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4223 if(!image && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4224 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4225 nstr = [nstr stringByAppendingString: [NSString stringWithUTF8String:ext]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4226 image = [[UIImage alloc] initWithContentsOfFile:nstr];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4227 }
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4228 DWButton *button = _dw_internal_button_new("", cid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4229 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4230 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4231 [button setImage:image forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4232 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4233 [image release];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4234 DW_FUNCTION_RETURN_THIS(button);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4235 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4236
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4237 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4238 * Create a new bitmap button window (widget) to be packed from data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4239 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4240 * text: Bubble help text to be displayed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4241 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4242 * data: The contents of the image
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4243 * (BMP or ICO on OS/2 or Windows, XPM on Unix)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4244 * len: length of str
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4245 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4246 DW_FUNCTION_DEFINITION(dw_bitmapbutton_new_from_data, HWND, DW_UNUSED(const char *text), ULONG cid, const char *data, int len)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4247 DW_FUNCTION_ADD_PARAM4(text, cid, data, len)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4248 DW_FUNCTION_RETURN(dw_bitmapbutton_new_from_data, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4249 DW_FUNCTION_RESTORE_PARAM4(DW_UNUSED(text), const char *, cid, ULONG, data, const char *, len, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4250 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4251 NSData *thisdata = [NSData dataWithBytes:data length:len];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4252 UIImage *image = [[UIImage alloc] initWithData:thisdata];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4253 DWButton *button = _dw_internal_button_new("", cid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4254 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4255 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4256 [button setImage:image forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4257 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4258 [image release];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4259 DW_FUNCTION_RETURN_THIS(button);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4260 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4261
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4262 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4263 * Create a new spinbutton window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4264 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4265 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4266 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4267 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4268 DW_FUNCTION_DEFINITION(dw_spinbutton_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4269 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4270 DW_FUNCTION_RETURN(dw_spinbutton_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4271 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4272 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
4273 DWSpinButton *spinbutton = [[[DWSpinButton alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4274 UIStepper *stepper = [spinbutton stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4275 UITextField *textfield = [spinbutton textfield];
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4276 long val = atol(text);
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4277
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4278 [stepper setStepValue:1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4279 [stepper setTag:cid];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4280 [stepper setMinimumValue:-65536];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4281 [stepper setMaximumValue:65536];
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4282 [stepper setValue:(float)val];
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4283 [textfield setText:[NSString stringWithFormat:@"%ld",val]];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4284 DW_FUNCTION_RETURN_THIS(spinbutton);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4285 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4286
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4287 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4288 * Sets the spinbutton value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4289 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4290 * handle: Handle to the spinbutton to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4291 * position: Current value of the spinbutton.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4292 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4293 DW_FUNCTION_DEFINITION(dw_spinbutton_set_pos, void, HWND handle, long position)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4294 DW_FUNCTION_ADD_PARAM2(handle, position)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4295 DW_FUNCTION_NO_RETURN(dw_spinbutton_set_pos)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4296 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, position, long)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4297 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4298 DWSpinButton *spinbutton = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4299 UIStepper *stepper = [spinbutton stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4300 UITextField *textfield = [spinbutton textfield];
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4301 [stepper setValue:(float)position];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4302 [textfield setText:[NSString stringWithFormat:@"%ld",position]];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4303 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4304 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4305
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4306 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4307 * Sets the spinbutton limits.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4308 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4309 * handle: Handle to the spinbutton to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4310 * upper: Upper limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4311 * lower: Lower limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4312 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4313 DW_FUNCTION_DEFINITION(dw_spinbutton_set_limits, void, HWND handle, long upper, long lower)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4314 DW_FUNCTION_ADD_PARAM3(handle, upper, lower)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4315 DW_FUNCTION_NO_RETURN(dw_spinbutton_set_limits)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4316 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, upper, long, lower, long)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4317 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4318 DWSpinButton *spinbutton = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4319 UIStepper *stepper = [spinbutton stepper];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4320 [stepper setMinimumValue:(double)lower];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4321 [stepper setMaximumValue:(double)upper];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4322 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4323 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4324
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4325 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4326 * Returns the current value of the spinbutton.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4327 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4328 * handle: Handle to the spinbutton to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4329 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4330 DW_FUNCTION_DEFINITION(dw_spinbutton_get_pos, long, HWND handle)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4331 DW_FUNCTION_ADD_PARAM1(handle)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4332 DW_FUNCTION_RETURN(dw_spinbutton_get_pos, long)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4333 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4334 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4335 DWSpinButton *spinbutton = handle;
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4336 long retval;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4337 UIStepper *stepper = [spinbutton stepper];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4338 retval = (long)[stepper value];
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4339 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4340 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4341
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4342 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4343 * Create a new radiobutton window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4344 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4345 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4346 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4347 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4348 DW_FUNCTION_DEFINITION(dw_radiobutton_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4349 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4350 DW_FUNCTION_RETURN(dw_radiobutton_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4351 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4352 {
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4353 DWButton *button = _dw_internal_button_new(text, cid);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4354 [button setType:_DW_BUTTON_TYPE_RADIO];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4355 DW_FUNCTION_RETURN_THIS(button);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4356 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4357
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4358 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4359 * Create a new slider window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4360 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4361 * vertical: TRUE or FALSE if slider is vertical.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4362 * increments: Number of increments available.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4363 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4364 */
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4365 DW_FUNCTION_DEFINITION(dw_slider_new, HWND, int vertical, int increments, ULONG cid)
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4366 DW_FUNCTION_ADD_PARAM3(vertical, increments, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4367 DW_FUNCTION_RETURN(dw_slider_new, HWND)
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4368 DW_FUNCTION_RESTORE_PARAM3(vertical, int, increments, int, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4369 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
4370 DWSlider *slider = [[[DWSlider alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4371 [slider setMaximumValue:(double)increments];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4372 [slider setMinimumValue:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4373 [slider setContinuous:YES];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
4374 [slider addTarget:slider
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
4375 action:@selector(sliderChanged:)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
4376 forControlEvents:UIControlEventValueChanged];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4377 [slider setTag:cid];
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4378 [slider setVertical:(vertical ? YES : NO)];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4379 DW_FUNCTION_RETURN_THIS(slider);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4380 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4381
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4382 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4383 * Returns the position of the slider.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4384 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4385 * handle: Handle to the slider to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4386 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4387 unsigned int API dw_slider_get_pos(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4388 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4389 DWSlider *slider = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4390 double val = [slider value];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4391 return (int)val;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4392 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4393
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4394 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4395 * Sets the slider position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4396 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4397 * handle: Handle to the slider to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4398 * position: Position of the slider withing the range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4399 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4400 void API dw_slider_set_pos(HWND handle, unsigned int position)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4401 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4402 DWSlider *slider = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4403 [slider setValue:(double)position];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4404 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4405
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4406 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4407 * Create a new scrollbar window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4408 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4409 * vertical: TRUE or FALSE if scrollbar is vertical.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4410 * increments: Number of increments available.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4411 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4412 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4413 HWND API dw_scrollbar_new(int vertical, ULONG cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4414 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4415 return dw_slider_new(vertical, 1, cid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4416 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4417
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4418 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4419 * Returns the position of the scrollbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4420 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4421 * handle: Handle to the scrollbar to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4422 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4423 unsigned int API dw_scrollbar_get_pos(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4424 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4425 return dw_slider_get_pos(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4426 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4427
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4428 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4429 * Sets the scrollbar position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4430 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4431 * handle: Handle to the scrollbar to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4432 * position: Position of the scrollbar withing the range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4433 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4434 void API dw_scrollbar_set_pos(HWND handle, unsigned int position)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4435 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4436 dw_slider_set_pos(handle, position);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4437 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4438
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4439 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4440 * Sets the scrollbar range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4441 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4442 * handle: Handle to the scrollbar to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4443 * range: Maximum range value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4444 * visible: Visible area relative to the range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4445 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4446 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4447 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4448 DWSlider *slider = handle;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4449 [slider setMaximumValue:(double)range];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4450 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4451
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4452 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4453 * Create a new percent bar window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4454 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4455 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4456 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4457 DW_FUNCTION_DEFINITION(dw_percent_new, HWND, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4458 DW_FUNCTION_ADD_PARAM1(cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4459 DW_FUNCTION_RETURN(dw_percent_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4460 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4461 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
4462 DWPercent *percent = [[[DWPercent alloc] init] retain];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4463 [percent setTag:cid];
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4464 DW_FUNCTION_RETURN_THIS(percent);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4465 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4466
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4467 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4468 * Sets the percent bar position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4469 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4470 * handle: Handle to the percent bar to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4471 * position: Position of the percent bar withing the range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4472 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4473 DW_FUNCTION_DEFINITION(dw_percent_set_pos, void, HWND handle, unsigned int position)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4474 DW_FUNCTION_ADD_PARAM2(handle, position)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4475 DW_FUNCTION_NO_RETURN(dw_percent_set_pos)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4476 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, position, unsigned int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4478 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4479 DWPercent *percent = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4480
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4481 /* Handle indeterminate */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4482 if(position == DW_PERCENT_INDETERMINATE)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4483 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4484 [percent setProgress:0 animated:NO];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4485 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4486 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4487 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4488 /* Handle normal */
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4489 [percent setProgress:(float)position/100.0 animated:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4490 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4491 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4492 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4493
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4494 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4495 * Create a new checkbox window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4496 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4497 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4498 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4499 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4500 DW_FUNCTION_DEFINITION(dw_checkbox_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4501 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4502 DW_FUNCTION_RETURN(dw_checkbox_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4503 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4504 {
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4505 DWButton *button = _dw_internal_button_new(text, cid);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4506 [button setType:_DW_BUTTON_TYPE_CHECK];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4507 DW_FUNCTION_RETURN_THIS(button);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4508 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4509
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4510 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4511 * Returns the state of the checkbox.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4512 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4513 * handle: Handle to the checkbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4514 */
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4515 DW_FUNCTION_DEFINITION(dw_checkbox_get, int, HWND handle)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4516 DW_FUNCTION_ADD_PARAM1(handle)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4517 DW_FUNCTION_RETURN(dw_checkbox_get, int)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4518 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4519 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4520 DWButton *button = handle;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4521 int retval = FALSE;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4522
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4523 if([button state])
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4524 retval = TRUE;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4525 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4526 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4527
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4528 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4529 * Sets the state of the checkbox.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4530 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4531 * handle: Handle to the checkbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4532 * value: TRUE for checked, FALSE for unchecked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4533 */
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4534 DW_FUNCTION_DEFINITION(dw_checkbox_set, void, HWND handle, int value)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4535 DW_FUNCTION_ADD_PARAM2(handle, value)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4536 DW_FUNCTION_NO_RETURN(dw_checkbox_set)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4537 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, value, int)
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4538 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4539 DWButton *button = handle;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4540 [button setState:value];
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4541 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4542 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4543
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4544 /* Internal common function to create containers and listboxes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4545 HWND _dw_cont_new(ULONG cid, int multi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4546 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4547 DWContainer *cont = [[[DWContainer alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4548
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4549 [cont setAllowsMultipleSelection:(multi ? YES : NO)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4550 [cont setDataSource:cont];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4551 [cont setDelegate:cont];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4552 [cont setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4553 [cont autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4554 [cont setRowBgOdd:DW_RGB_TRANSPARENT andEven:DW_RGB_TRANSPARENT];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4555 return cont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4556 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4557
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4558 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4559 * Create a new listbox window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4560 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4561 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4562 * multi: Multiple select TRUE or FALSE.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4563 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4564 DW_FUNCTION_DEFINITION(dw_listbox_new, HWND, ULONG cid, int multi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4565 DW_FUNCTION_ADD_PARAM2(cid, multi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4566 DW_FUNCTION_RETURN(dw_listbox_new, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4567 DW_FUNCTION_RESTORE_PARAM2(cid, ULONG, multi, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4568 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4569 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4570 DWContainer *cont = _dw_cont_new(cid, multi);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4571 [cont setup];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4572 [cont addColumn:@"" andType:DW_CFA_STRING];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4573 DW_FUNCTION_RETURN_THIS(cont);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4574 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4575
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4576 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4577 * Appends the specified text to the listbox's (or combobox) entry list.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4578 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4579 * handle: Handle to the listbox to be appended to.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4580 * text: Text to append into listbox.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4581 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4582 DW_FUNCTION_DEFINITION(dw_listbox_append, void, HWND handle, const char *text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4583 DW_FUNCTION_ADD_PARAM2(handle, text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4584 DW_FUNCTION_NO_RETURN(dw_listbox_append)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4585 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4586 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4587 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4588 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4589
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4590 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4591 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4592 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4593
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4594 [combo append:[NSString stringWithUTF8String:text]];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4595 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4596 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4597 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4598 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4599 NSString *nstr = [NSString stringWithUTF8String:text];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4600 NSArray *newrow = [NSArray arrayWithObject:_dw_table_cell_view_new(nil, nstr)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4601
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4602 [cont addRow:newrow];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4603 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4604 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4605 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4606 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4607 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4608
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4609 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4610 * Inserts the specified text into the listbox's (or combobox) entry list.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4611 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4612 * handle: Handle to the listbox to be inserted into.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4613 * text: Text to insert into listbox.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4614 * pos: 0-based position to insert text
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4615 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4616 DW_FUNCTION_DEFINITION(dw_listbox_insert, void, HWND handle, const char *text, int pos)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4617 DW_FUNCTION_ADD_PARAM3(handle, text, pos)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4618 DW_FUNCTION_NO_RETURN(dw_listbox_insert)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4619 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, text, const char *, pos, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4620 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4621 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4622 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4623
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4624 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4625 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4626 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4627
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4628 [combo insert:[NSString stringWithUTF8String:text] atIndex:pos];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4629 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4630 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4631 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4632 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4633 NSString *nstr = [NSString stringWithUTF8String:text];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4634 NSArray *newrow = [NSArray arrayWithObject:_dw_table_cell_view_new(nil, nstr)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4635
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4636 [cont insertRow:newrow at:pos];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4637 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4638 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4639 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4640 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4641 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4642
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4643 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4644 * Appends the specified text items to the listbox's (or combobox) entry list.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4645 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4646 * handle: Handle to the listbox to be appended to.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4647 * text: Text strings to append into listbox.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4648 * count: Number of text strings to append
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4649 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4650 DW_FUNCTION_DEFINITION(dw_listbox_list_append, void, HWND handle, char **text, int count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4651 DW_FUNCTION_ADD_PARAM3(handle, text, count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4652 DW_FUNCTION_NO_RETURN(dw_listbox_list_append)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4653 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, text, char **, count, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4654 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4655 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4656 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4657
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4658 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4659 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4660 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4661 int z;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4662
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4663 for(z=0;z<count;z++)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4664 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4665 NSString *nstr = [NSString stringWithUTF8String:text[z]];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4666
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4667 [combo append:nstr];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4668 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4669 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4670 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4671 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4672 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4673 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4675 for(z=0;z<count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4676 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4677 NSString *nstr = [NSString stringWithUTF8String:text[z]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4678 NSArray *newrow = [NSArray arrayWithObjects:_dw_table_cell_view_new(nil, nstr),nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4679
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4680 [cont addRow:newrow];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4681 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4682 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4683 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4684 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4685 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4686 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4687
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4688 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4689 * Clears the listbox's (or combobox) list of all entries.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4690 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4691 * handle: Handle to the listbox to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4692 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4693 DW_FUNCTION_DEFINITION(dw_listbox_clear, void, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4694 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4695 DW_FUNCTION_NO_RETURN(dw_listbox_clear)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4696 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4697 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4698 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4699 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4700
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4701 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4702 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4703 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4704
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4705 [combo clear];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4706 }
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4707 if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4708 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4709 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4710
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4711 [cont clear];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4712 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4713 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4714 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4715 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4716 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4717
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4718 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4719 * Returns the listbox's item count.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4720 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4721 * handle: Handle to the listbox to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4722 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4723 DW_FUNCTION_DEFINITION(dw_listbox_count, int, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4724 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4725 DW_FUNCTION_RETURN(dw_listbox_count, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4726 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4727 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4728 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4729 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4730 int result = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4731
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4732 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4733 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4734 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4735
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4736 result = [combo count];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4737 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4738 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4739 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4740 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
4741 result = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4742 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4743 DW_FUNCTION_RETURN_THIS(result);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4744 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4745
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4746 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4747 * Sets the topmost item in the viewport.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4748 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4749 * handle: Handle to the listbox to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4750 * top: Index to the top item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4751 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4752 DW_FUNCTION_DEFINITION(dw_listbox_set_top, void, HWND handle, int top)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4753 DW_FUNCTION_ADD_PARAM2(handle, top)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4754 DW_FUNCTION_NO_RETURN(dw_listbox_set_top)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4755 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, top, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4756 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4757 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4758 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4759
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4760 if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4761 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4762 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4763 NSIndexPath *myIP = [NSIndexPath indexPathForRow:top inSection:0];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4764
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4765 [cont scrollToRowAtIndexPath:myIP atScrollPosition:UITableViewScrollPositionNone animated:NO];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4766 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4767 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4768 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4769
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4770 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4771 * Copies the given index item's text into buffer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4772 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4773 * handle: Handle to the listbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4774 * index: Index into the list to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4775 * buffer: Buffer where text will be copied.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4776 * length: Length of the buffer (including NULL).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4777 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4778 DW_FUNCTION_DEFINITION(dw_listbox_get_text, void, HWND handle, unsigned int index, char *buffer, unsigned int length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4779 DW_FUNCTION_ADD_PARAM4(handle, index, buffer, length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4780 DW_FUNCTION_NO_RETURN(dw_listbox_get_text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4781 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, index, unsigned int, buffer, char *, length, unsigned int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4782 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4783 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4784 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4785
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4786 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4787 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4788 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4789 NSString *nstr = [combo getTextAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4790
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4791 if(nstr)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4792 strncpy(buffer, [nstr UTF8String], length - 1);
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4793 else
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4794 *buffer = '\0';
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4795 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4796 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4797 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4798 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
4799 int count = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4800
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4801 if(index > count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4802 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4803 *buffer = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4804 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4805 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4806 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4807 UITableViewCell *cell = [cont getRow:index and:0];
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
4808 NSString *nstr = [[cell textLabel] text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4809
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4810 strncpy(buffer, [nstr UTF8String], length - 1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4811 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4812 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4813 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4814 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4815
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4816 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4817 * Sets the text of a given listbox entry.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4818 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4819 * handle: Handle to the listbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4820 * index: Index into the list to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4821 * buffer: Buffer where text will be copied.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4822 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4823 DW_FUNCTION_DEFINITION(dw_listbox_set_text, void, HWND handle, unsigned int index, const char *buffer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4824 DW_FUNCTION_ADD_PARAM3(handle, index, buffer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4825 DW_FUNCTION_NO_RETURN(dw_listbox_set_text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4826 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, index, unsigned int, buffer, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4827 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4828 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4829 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4830
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4831 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4832 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4833 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4834
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4835 [combo setText:[NSString stringWithUTF8String:buffer] atIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4836 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4837 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4838 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4839 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
4840 int count = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4841
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4842 if(index <= count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4843 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4844 NSString *nstr = [NSString stringWithUTF8String:buffer];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4845 UITableViewCell *cell = [cont getRow:index and:0];
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
4846
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
4847 [[cell textLabel] setText:nstr];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4848 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4849 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4850 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4851 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4852 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4853 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4854
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4855 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4856 * Returns the index to the item in the list currently selected.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4857 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4858 * handle: Handle to the listbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4859 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4860 DW_FUNCTION_DEFINITION(dw_listbox_selected, int, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4861 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4862 DW_FUNCTION_RETURN(dw_listbox_selected, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4863 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4864 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4865 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4866 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4867 int result = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4868
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4869 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4870 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4871 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4872
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4873 result = [combo selectedIndex];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4874 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4875 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4876 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4877 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4878 NSIndexPath *ip = [cont indexPathForSelectedRow];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4879
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4880 if(ip)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4881 result = (int)ip.row;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4882 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4883 DW_FUNCTION_RETURN_THIS(result);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4884 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4885
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4886 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4887 * Returns the index to the current selected item or -1 when done.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4888 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4889 * handle: Handle to the listbox to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4890 * where: Either the previous return or -1 to restart.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4891 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4892 DW_FUNCTION_DEFINITION(dw_listbox_selected_multi, int, HWND handle, int where)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4893 DW_FUNCTION_ADD_PARAM2(handle, where)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4894 DW_FUNCTION_RETURN(dw_listbox_selected_multi, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4895 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, where, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4896 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4897 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4898 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4899 int retval = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4900
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4901 if([object isMemberOfClass:[DWContainer class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4902 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4903 DWContainer *cont = handle;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4904 NSArray *selected = [cont indexPathsForSelectedRows];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4905 NSIndexPath *ip = [selected objectAtIndex:(where == -1 ? 0 :where)];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4906
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4907 if(ip)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4908 retval = (int)ip.row;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4909 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4910 DW_FUNCTION_RETURN_THIS(retval)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4911 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4912
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4913 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4914 * Sets the selection state of a given index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4915 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4916 * handle: Handle to the listbox to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4917 * index: Item index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4918 * state: TRUE if selected FALSE if unselected.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4919 */
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4920 DW_FUNCTION_DEFINITION(dw_listbox_select, void, HWND handle, int index, DW_UNUSED(int state))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4921 DW_FUNCTION_ADD_PARAM3(handle, index, state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4922 DW_FUNCTION_NO_RETURN(dw_listbox_select)
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4923 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, index, int, DW_UNUSED(state), int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4924 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4925 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4926 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4927
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4928 if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4929 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4930 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4931 NSIndexPath *ip = [NSIndexPath indexPathForRow:index inSection:0];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4932
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4933 [cont selectRowAtIndexPath:ip
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4934 animated:NO
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4935 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4936 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4937 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4938 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4939
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4940 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4941 * Deletes the item with given index from the list.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4942 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4943 * handle: Handle to the listbox to be set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4944 * index: Item index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4945 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4946 DW_FUNCTION_DEFINITION(dw_listbox_delete, void, HWND handle, int index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4947 DW_FUNCTION_ADD_PARAM2(handle, index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4948 DW_FUNCTION_NO_RETURN(dw_listbox_delete)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4949 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, index, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4950 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4951 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4952 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4953
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4954 if([object isMemberOfClass:[DWComboBox class]])
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4955 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4956 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4957
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4958 [combo deleteAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4959 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4960 else if([object isMemberOfClass:[DWContainer class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4961 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4962 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4963
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4964 [cont removeRow:index];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4965 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4966 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4967 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4968 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4969 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4970
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4971 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4972 * Create a new Combobox window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4973 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4974 * text: The default text to be in the combpbox widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4975 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4976 */
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4977 DW_FUNCTION_DEFINITION(dw_combobox_new, HWND, const char *text, ULONG cid)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4978 DW_FUNCTION_ADD_PARAM2(text, cid)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4979 DW_FUNCTION_RETURN(dw_combobox_new, HWND)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4980 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4981 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4982 DWComboBox *combo = [[DWComboBox alloc] init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4983 if(text)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4984 [combo setText:[NSString stringWithUTF8String:text]];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4985 [combo setTag:cid];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4986 DW_FUNCTION_RETURN_THIS(combo);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4987 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4988
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4989 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4990 * Create a new Multiline Editbox window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4991 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4992 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4993 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4994 DW_FUNCTION_DEFINITION(dw_mle_new, HWND, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4995 DW_FUNCTION_ADD_PARAM1(cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4996 DW_FUNCTION_RETURN(dw_mle_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
4997 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4998 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4999 CGRect frame = CGRectMake(0, 0, 100, 50);
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
5000 NSTextContainer *tc = [[NSTextContainer alloc] initWithSize:frame.size];
2421
d88928a85436 iOS: Fix DWMLE, have to created it like this to have valid textStorage.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2420
diff changeset
5001 NSLayoutManager *lm = [[NSLayoutManager alloc] init];
d88928a85436 iOS: Fix DWMLE, have to created it like this to have valid textStorage.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2420
diff changeset
5002 NSTextStorage *ts = [[NSTextStorage alloc] init];
d88928a85436 iOS: Fix DWMLE, have to created it like this to have valid textStorage.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2420
diff changeset
5003 [lm addTextContainer:tc];
d88928a85436 iOS: Fix DWMLE, have to created it like this to have valid textStorage.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2420
diff changeset
5004 [ts addLayoutManager:lm];
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
5005 DWMLE *mle = [[[DWMLE alloc] initWithFrame:frame textContainer:tc] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5006 CGSize size = [mle intrinsicContentSize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5007
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5008 size.width = size.height;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5009 [mle setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5010 [mle setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5011 [mle autorelease];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5012 DW_FUNCTION_RETURN_THIS(mle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5013 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5014
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5015 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5016 * Adds text to an MLE box and returns the current point.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5017 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5018 * handle: Handle to the MLE to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5019 * buffer: Text buffer to be imported.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5020 * startpoint: Point to start entering text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5021 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5022 DW_FUNCTION_DEFINITION(dw_mle_import, unsigned int, HWND handle, const char *buffer, int startpoint)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5023 DW_FUNCTION_ADD_PARAM3(handle, buffer, startpoint)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5024 DW_FUNCTION_RETURN(dw_mle_import, unsigned int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5025 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, buffer, const char *, startpoint, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5026 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5027 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5028 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5029 unsigned int retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5030 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5031 NSString *nstr = [NSString stringWithUTF8String:buffer];
2444
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5032 UIColor *fgcolor = [mle textColor];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5033 UIFont *font = [mle font];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5034 NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5035 [attributes setObject:(fgcolor ? fgcolor : [UIColor labelColor]) forKey:NSForegroundColorAttributeName];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5036 if(font)
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5037 [attributes setObject:font forKey:NSFontAttributeName];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5038 NSAttributedString *nastr = [[NSAttributedString alloc] initWithString:nstr attributes:attributes];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5039 NSUInteger length = [ts length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5040 if(startpoint < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5041 startpoint = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5042 if(startpoint > length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5043 startpoint = (int)length;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5044 [ts insertAttributedString:nastr atIndex:startpoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5045 retval = (unsigned int)strlen(buffer) + startpoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5046 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5047 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5048
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5049 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5050 * Grabs text from an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5051 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5052 * handle: Handle to the MLE to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5053 * buffer: Text buffer to be exported.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5054 * startpoint: Point to start grabbing text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5055 * length: Amount of text to be grabbed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5056 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5057 DW_FUNCTION_DEFINITION(dw_mle_export, void, HWND handle, char *buffer, int startpoint, int length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5058 DW_FUNCTION_ADD_PARAM4(handle, buffer, startpoint, length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5059 DW_FUNCTION_NO_RETURN(dw_mle_export)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5060 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, buffer, char *, startpoint, int, length, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5061 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5062 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5063 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5064 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5065 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5066 const char *tmp = [ms UTF8String];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5067 strncpy(buffer, tmp+startpoint, length);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5068 buffer[length] = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5069 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5070 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5071
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5072 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5073 * Obtains information about an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5074 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5075 * handle: Handle to the MLE to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5076 * bytes: A pointer to a variable to return the total bytes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5077 * lines: A pointer to a variable to return the number of lines.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5078 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5079 DW_FUNCTION_DEFINITION(dw_mle_get_size, void, HWND handle, unsigned long *bytes, unsigned long *lines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5080 DW_FUNCTION_ADD_PARAM3(handle, bytes, lines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5081 DW_FUNCTION_NO_RETURN(dw_mle_get_size)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5082 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, bytes, unsigned long *, lines, unsigned long *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5083 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5084 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5085 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5086 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5087 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5088 NSUInteger numberOfLines, index, stringLength = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5089
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5090 if(bytes)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5091 *bytes = stringLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5092 if(lines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5093 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5094 for(index=0, numberOfLines=0; index < stringLength; numberOfLines++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5095 index = NSMaxRange([ms lineRangeForRange:NSMakeRange(index, 0)]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5096
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5097 *lines = numberOfLines;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5098 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5099 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5100 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5101
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5102 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5103 * Deletes text from an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5104 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5105 * handle: Handle to the MLE to be deleted from.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5106 * startpoint: Point to start deleting text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5107 * length: Amount of text to be deleted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5108 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5109 DW_FUNCTION_DEFINITION(dw_mle_delete, void, HWND handle, int startpoint, int length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5110 DW_FUNCTION_ADD_PARAM3(handle, startpoint, length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5111 DW_FUNCTION_NO_RETURN(dw_mle_delete)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5112 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, startpoint, int, length, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5113 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5114 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5115 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5116 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5117 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5118 NSUInteger mslength = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5119 if(startpoint < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5120 startpoint = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5121 if(startpoint > mslength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5122 startpoint = (int)mslength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5123 if(startpoint + length > mslength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5124 length = (int)mslength - startpoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5125 [ms deleteCharactersInRange:NSMakeRange(startpoint, length)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5126 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5127 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5128
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5129 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5130 * Clears all text from an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5131 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5132 * handle: Handle to the MLE to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5133 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5134 DW_FUNCTION_DEFINITION(dw_mle_clear, void, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5135 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5136 DW_FUNCTION_NO_RETURN(dw_mle_clear)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5137 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5138 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5139 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5140 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5141 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5142 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5143 NSUInteger length = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5144 [ms deleteCharactersInRange:NSMakeRange(0, length)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5145 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5146 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5147
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5148 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5149 * Sets the visible line of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5150 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5151 * handle: Handle to the MLE to be positioned.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5152 * line: Line to be visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5153 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5154 DW_FUNCTION_DEFINITION(dw_mle_set_visible, void, HWND handle, int line)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5155 DW_FUNCTION_ADD_PARAM2(handle, line)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5156 DW_FUNCTION_NO_RETURN(dw_mle_set_visible)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5157 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, line, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5158 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5159 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5160 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5161 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5162 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5163 NSUInteger numberOfLines, index, stringLength = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5164
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5165 for(index=0, numberOfLines=0; index < stringLength && numberOfLines < line; numberOfLines++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5166 index = NSMaxRange([ms lineRangeForRange:NSMakeRange(index, 0)]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5167
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5168 if(line == numberOfLines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5169 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5170 [mle scrollRangeToVisible:[ms lineRangeForRange:NSMakeRange(index, 0)]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5171 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5172 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5173 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5174
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5175 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5176 * Sets the editablity of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5177 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5178 * handle: Handle to the MLE.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5179 * state: TRUE if it can be edited, FALSE for readonly.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5180 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5181 void API dw_mle_set_editable(HWND handle, int state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5182 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5183 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5184 if(state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5185 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5186 [mle setEditable:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5187 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5188 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5189 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5190 [mle setEditable:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5191 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5192 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5193
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5194 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5195 * Sets the word wrap state of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5196 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5197 * handle: Handle to the MLE.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5198 * state: TRUE if it wraps, FALSE if it doesn't.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5199 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5200 void API dw_mle_set_word_wrap(HWND handle, int state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5201 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5202 /* TODO: Figure out how to do this in iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5203 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5204
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5205 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5206 * Sets the word auto complete state of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5207 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5208 * handle: Handle to the MLE.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5209 * state: Bitwise combination of DW_MLE_COMPLETE_TEXT/DASH/QUOTE
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5210 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5211 void API dw_mle_set_auto_complete(HWND handle, int state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5212 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5213 /* TODO: Figure out how to do this in iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5214 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5215
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5216 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5217 * Sets the current cursor position of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5218 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5219 * handle: Handle to the MLE to be positioned.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5220 * point: Point to position cursor.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5221 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5222 DW_FUNCTION_DEFINITION(dw_mle_set_cursor, void, HWND handle, int point)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5223 DW_FUNCTION_ADD_PARAM2(handle, point)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5224 DW_FUNCTION_NO_RETURN(dw_mle_set_cursor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5225 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, point, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5226 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5227 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5228 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5229 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5230 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5231 NSUInteger length = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5232 if(point < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5233 point = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5234 if(point > length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5235 point = (int)length;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5236 [mle setSelectedRange: NSMakeRange(point,point)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5237 [mle scrollRangeToVisible:NSMakeRange(point,point)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5238 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5239 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5240
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5241 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5242 * Finds text in an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5243 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5244 * handle: Handle to the MLE to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5245 * text: Text to search for.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5246 * point: Start point of search.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5247 * flags: Search specific flags.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5248 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5249 DW_FUNCTION_DEFINITION(dw_mle_search, int, HWND handle, const char *text, int point, unsigned long flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5250 DW_FUNCTION_ADD_PARAM4(handle, text, point, flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5251 DW_FUNCTION_RETURN(dw_mle_search, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5252 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, text, const char *, point, int, flags, unsigned long)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5253 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5254 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5255 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5256 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5257 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5258 NSString *searchForMe = [NSString stringWithUTF8String:text];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5259 NSRange searchRange = NSMakeRange(point, [ms length] - point);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5260 NSRange range = NSMakeRange(NSNotFound, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5261 NSUInteger options = flags ? flags : NSCaseInsensitiveSearch;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5262 int retval = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5263
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5264 if(ms)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5265 range = [ms rangeOfString:searchForMe options:options range:searchRange];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5266 if(range.location == NSNotFound)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5267 retval = (int)range.location;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5268 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5269 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5270
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5271 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5272 * Stops redrawing of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5273 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5274 * handle: Handle to the MLE to freeze.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5275 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5276 void API dw_mle_freeze(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5277 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5278 /* Don't think this is necessary */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5279 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5280
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5281 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5282 * Resumes redrawing of an MLE box.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5283 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5284 * handle: Handle to the MLE to thaw.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5285 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5286 void API dw_mle_thaw(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5287 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5288 /* Don't think this is necessary */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5289 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5290
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5291 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5292 * Create a new status text window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5293 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5294 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5295 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5296 */
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5297 DW_FUNCTION_DEFINITION(dw_status_text_new, HWND, const char *text, ULONG cid)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5298 DW_FUNCTION_ADD_PARAM2(text, cid)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5299 DW_FUNCTION_RETURN(dw_status_text_new, HWND)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5300 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5301 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5302 DWText *textfield = [[[DWText alloc] init] retain];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5303 [textfield setText:[NSString stringWithUTF8String:text]];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5304 [textfield setTag:cid];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5305 if(DWDefaultFont)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5306 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5307 [textfield setFont:DWDefaultFont];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5308 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5309 [textfield layer].borderWidth = 2.0;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5310 [textfield layer].borderColor = [[UIColor darkGrayColor] CGColor];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5311 DW_FUNCTION_RETURN_THIS(textfield);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5312 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5313
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5314 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5315 * Create a new static text window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5316 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5317 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5318 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5319 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5320 DW_FUNCTION_DEFINITION(dw_text_new, HWND, const char *text, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5321 DW_FUNCTION_ADD_PARAM2(text, cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5322 DW_FUNCTION_RETURN(dw_text_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5323 DW_FUNCTION_RESTORE_PARAM2(text, const char *, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5324 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
5325 DWText *textfield = [[[DWText alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5326 [textfield setText:[NSString stringWithUTF8String:text]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5327 [textfield setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5328 if(DWDefaultFont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5329 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5330 [textfield setFont:DWDefaultFont];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5331 }
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5332 DW_FUNCTION_RETURN_THIS(textfield);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5333 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5334
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5335 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5336 * Creates a rendering context widget (window) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5337 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5338 * id: An id to be used with dw_window_from_id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5339 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5340 * A handle to the widget or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5341 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5342 DW_FUNCTION_DEFINITION(dw_render_new, HWND, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5343 DW_FUNCTION_ADD_PARAM1(cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5344 DW_FUNCTION_RETURN(dw_render_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5345 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5346 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
5347 DWRender *render = [[[DWRender alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5348 [render setTag:cid];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
5349 DW_FUNCTION_RETURN_THIS(render);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5350 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5351
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5352 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5353 * Invalidate the render widget triggering an expose event.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5354 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5355 * handle: A handle to a render widget to be redrawn.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5356 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5357 DW_FUNCTION_DEFINITION(dw_render_redraw, void, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5358 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5359 DW_FUNCTION_NO_RETURN(dw_render_redraw)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5360 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5361 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5362 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5363 DWRender *render = (DWRender *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5364
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5365 [render setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5366 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5367 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5368
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5369 /* Sets the current foreground drawing color.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5370 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5371 * red: red value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5372 * green: green value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5373 * blue: blue value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5374 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5375 void API dw_color_foreground_set(unsigned long value)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5376 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5377 UIColor *oldcolor = pthread_getspecific(_dw_fg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5378 UIColor *newcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5379 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5380
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5381 _dw_foreground = _dw_get_color(value);
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5382
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5383 newcolor = [[UIColor colorWithRed: DW_RED_VALUE(_dw_foreground)/255.0 green:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5384 DW_GREEN_VALUE(_dw_foreground)/255.0 blue:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5385 DW_BLUE_VALUE(_dw_foreground)/255.0 alpha: 1] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5386 pthread_setspecific(_dw_fg_color_key, newcolor);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5387 [oldcolor release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5388 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5389 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5390
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5391 /* Sets the current background drawing color.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5392 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5393 * red: red value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5394 * green: green value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5395 * blue: blue value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5396 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5397 void API dw_color_background_set(unsigned long value)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5398 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5399 UIColor *oldcolor = pthread_getspecific(_dw_bg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5400 UIColor *newcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5401 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5402
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5403 if(value == DW_CLR_DEFAULT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5404 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5405 pthread_setspecific(_dw_bg_color_key, NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5406 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5407 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5408 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5409 _dw_background = _dw_get_color(value);
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5410
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5411 newcolor = [[UIColor colorWithRed: DW_RED_VALUE(_dw_background)/255.0 green:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5412 DW_GREEN_VALUE(_dw_background)/255.0 blue:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5413 DW_BLUE_VALUE(_dw_background)/255.0 alpha: 1] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5414 pthread_setspecific(_dw_bg_color_key, newcolor);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5415 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5416 [oldcolor release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5417 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5418 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5419
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5420 /* Allows the user to choose a color using the system's color chooser dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5421 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5422 * value: current color
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5423 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5424 * The selected color or the current color if cancelled.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5425 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5426 unsigned long API dw_color_choose(unsigned long value)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5427 {
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5428 NSMutableArray *params = [NSMutableArray arrayWithObject:[NSNumber numberWithUnsignedLong:value]];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5429 unsigned long newcolor = value;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5430
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5431 [DWObj safeCall:@selector(colorPicker:) withObject:params];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5432 if([params count] > 1)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5433 newcolor = [[params lastObject] unsignedLongValue];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5434
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5435 return newcolor;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5436 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5437
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5438 CGContextRef _dw_draw_context(id source, bool antialiased)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5439 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5440 CGContextRef context = nil;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5441
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5442 if([source isMemberOfClass:[DWImage class]])
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5443 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5444 DWImage *image = source;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5445
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5446 context = [image cgcontext];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5447 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5448 if(context)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5449 CGContextSetAllowsAntialiasing(context, antialiased);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5450 return context;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5451 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5452
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5453 DWImage *_dw_dest_image(HPIXMAP pixmap, id object)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5454 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5455 if(pixmap && pixmap->image)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5456 return pixmap->image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5457 if([object isMemberOfClass:[DWRender class]])
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5458 return [object cachedImage];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5459 return nil;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5460 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5461
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5462 /* Draw a point on a window (preferably a render window).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5463 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5464 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5465 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5466 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5467 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5468 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5469 DW_FUNCTION_DEFINITION(dw_draw_point, void, HWND handle, HPIXMAP pixmap, int x, int y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5470 DW_FUNCTION_ADD_PARAM4(handle, pixmap, x, y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5471 DW_FUNCTION_NO_RETURN(dw_draw_point)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5472 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, pixmap, HPIXMAP, x, int, y, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5473 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5474 DW_FUNCTION_INIT;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5475 DWImage *bi = _dw_dest_image(pixmap, handle);
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5476 CGContextRef context = _dw_draw_context(bi, NO);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5477
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5478 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5479 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5480
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5481 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5482 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5483 UIBezierPath* aPath = [UIBezierPath bezierPath];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5484 [aPath setLineWidth: 0.5];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5485 UIColor *color = pthread_getspecific(_dw_fg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5486 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5487
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5488 [aPath moveToPoint:CGPointMake(x, y)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5489 [aPath stroke];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5490 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5491 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5492 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5493 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5494 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5495
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5496 /* Draw a line on a window (preferably a render window).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5497 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5498 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5499 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5500 * x1: First X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5501 * y1: First Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5502 * x2: Second X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5503 * y2: Second Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5504 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5505 DW_FUNCTION_DEFINITION(dw_draw_line, void, HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5506 DW_FUNCTION_ADD_PARAM6(handle, pixmap, x1, y1, x2, y2)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5507 DW_FUNCTION_NO_RETURN(dw_draw_line)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5508 DW_FUNCTION_RESTORE_PARAM6(handle, HWND, pixmap, HPIXMAP, x1, int, y1, int, x2, int, y2, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5509 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5510 DW_FUNCTION_INIT;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5511 DWImage *bi = _dw_dest_image(pixmap, handle);
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5512 CGContextRef context = _dw_draw_context(bi, NO);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5513
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5514 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5515 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5516
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5517 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5518 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5519 UIBezierPath* aPath = [UIBezierPath bezierPath];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5520 UIColor *color = pthread_getspecific(_dw_fg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5521 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5522
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5523 [aPath moveToPoint:CGPointMake(x1 + 0.5, y1 + 0.5)];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
5524 [aPath addLineToPoint:CGPointMake(x2 + 0.5, y2 + 0.5)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5525 [aPath stroke];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5526 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5527 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5528 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5529 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5530 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5531
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5532 /* Draw text on a window (preferably a render window).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5533 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5534 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5535 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5536 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5537 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5538 * text: Text to be displayed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5539 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5540 DW_FUNCTION_DEFINITION(dw_draw_text, void, HWND handle, HPIXMAP pixmap, int x, int y, const char *text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5541 DW_FUNCTION_ADD_PARAM5(handle, pixmap, x, y, text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5542 DW_FUNCTION_NO_RETURN(dw_draw_text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5543 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pixmap, HPIXMAP, x, int, y, int, text, const char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5544 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5545 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5546 NSString *nstr = [ NSString stringWithUTF8String:text ];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5547 DWImage *bi = nil;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5548 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5549 DWRender *render;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5550 id image = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5551
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5552 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5553 {
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
5554 bi = (id)pixmap->image;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5555 font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5556 render = pixmap->handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5557 if(!font && [render isMemberOfClass:[DWRender class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5558 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5559 font = [render font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5560 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5561 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5562 else if(image && [image isMemberOfClass:[DWRender class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5563 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5564 render = image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5565 font = [render font];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5566 bi = [render cachedImage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5567 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5568 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5569 {
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5570 CGContextRef context = _dw_draw_context(bi, NO);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5571
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5572 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5573 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5574
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5575 UIColor *fgcolor = pthread_getspecific(_dw_fg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5576 UIColor *bgcolor = pthread_getspecific(_dw_bg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5577 NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:fgcolor, NSForegroundColorAttributeName, nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5578 if(bgcolor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5579 [dict setValue:bgcolor forKey:NSBackgroundColorAttributeName];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5580 if(font)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5581 [dict setValue:font forKey:NSFontAttributeName];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5582 [nstr drawAtPoint:CGPointMake(x, y) withAttributes:dict];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5583 [dict release];
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5584 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5585 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5586 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5587 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5588 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5589
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5590 /* Query the width and height of a text string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5591 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5592 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5593 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5594 * text: Text to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5595 * width: Pointer to a variable to be filled in with the width.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5596 * height Pointer to a variable to be filled in with the height.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5597 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5598 void API dw_font_text_extents_get(HWND handle, HPIXMAP pixmap, const char *text, int *width, int *height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5599 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5600 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5601 NSString *nstr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5602 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5603 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5604
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5605 nstr = [NSString stringWithUTF8String:text];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5606
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5607 /* Check the pixmap for associated object or font */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5608 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5609 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5610 object = pixmap->handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5611 font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5612 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5613 NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5614 /* If we didn't get a font from the pixmap... try the associated object */
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
5615 if(!font && ([object isMemberOfClass:[DWRender class]] || [object isKindOfClass:[UIControl class]]
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
5616 || [object isKindOfClass:[UILabel class]]))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5617 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5618 font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5619 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5620 /* If we got a font... add it to the dictionary */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5621 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5622 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5623 [dict setValue:font forKey:NSFontAttributeName];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5624 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5625 /* Calculate the size of the string */
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
5626 CGSize size = [nstr sizeWithAttributes:dict];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5627 [dict release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5628 /* Return whatever information we can */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5629 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5630 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5631 *width = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5632 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5633 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5634 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5635 *height = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5636 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5637 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5638 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5639
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5640 /* Draw a polygon on a window (preferably a render window).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5641 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5642 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5643 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5644 * flags: DW_DRAW_FILL (1) to fill the polygon or DW_DRAW_DEFAULT (0).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5645 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5646 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5647 * width: Width of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5648 * height: Height of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5649 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5650 DW_FUNCTION_DEFINITION(dw_draw_polygon, void, HWND handle, HPIXMAP pixmap, int flags, int npoints, int *x, int *y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5651 DW_FUNCTION_ADD_PARAM6(handle, pixmap, flags, npoints, x, y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5652 DW_FUNCTION_NO_RETURN(dw_draw_polygon)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5653 DW_FUNCTION_RESTORE_PARAM6(handle, HWND, pixmap, HPIXMAP, flags, int, npoints, int, x, int *, y, int *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5654 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5655 DW_FUNCTION_INIT;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5656 DWImage *bi = _dw_dest_image(pixmap, handle);
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5657 CGContextRef context = _dw_draw_context(bi, flags & DW_DRAW_NOAA ? NO : YES);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5658
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5659 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5660 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5661
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5662 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5663 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5664 UIBezierPath* aPath = [UIBezierPath bezierPath];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5665 UIColor *color = pthread_getspecific(_dw_fg_color_key);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5666 int z;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5667
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5668 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5669
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5670 [aPath moveToPoint:CGPointMake(*x + 0.5, *y + 0.5)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5671 for(z=1;z<npoints;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5672 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5673 [aPath addLineToPoint:CGPointMake(x[z] + 0.5, y[z] + 0.5)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5674 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5675 [aPath closePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5676 if(flags & DW_DRAW_FILL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5677 [aPath fill];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5678 else
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5679 [aPath stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5680 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5681 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5682 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5683 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5684 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5685
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5686 /* Draw a rectangle on a window (preferably a render window).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5687 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5688 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5689 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5690 * flags: DW_DRAW_FILL (1) to fill the box or DW_DRAW_DEFAULT (0).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5691 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5692 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5693 * width: Width of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5694 * height: Height of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5695 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5696 DW_FUNCTION_DEFINITION(dw_draw_rect, void, HWND handle, HPIXMAP pixmap, int flags, int x, int y, int width, int height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5697 DW_FUNCTION_ADD_PARAM7(handle, pixmap, flags, x, y, width, height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5698 DW_FUNCTION_NO_RETURN(dw_draw_rect)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5699 DW_FUNCTION_RESTORE_PARAM7(handle, HWND, pixmap, HPIXMAP, flags, int, x, int, y, int, width, int, height, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5700 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5701 DW_FUNCTION_INIT;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5702 DWImage *bi = _dw_dest_image(pixmap, handle);
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5703 CGContextRef context = _dw_draw_context(bi, flags & DW_DRAW_NOAA ? NO : YES);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5704
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5705 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5706 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5707
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5708 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5709 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5710 UIColor *color = pthread_getspecific(_dw_fg_color_key);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5711 UIBezierPath *bp = [UIBezierPath bezierPathWithRect:CGRectMake(x, y, width, height)];;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5712
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5713 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5714
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5715 if(flags & DW_DRAW_FILL)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5716 [bp fill];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5717 else
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5718 [bp stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5719 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5720 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5721 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5722 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5723 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5724
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5725 /* Draw an arc on a window (preferably a render window).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5726 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5727 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5728 * pixmap: Handle to the pixmap. (choose only one of these)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5729 * flags: DW_DRAW_FILL (1) to fill the arc or DW_DRAW_DEFAULT (0).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5730 * DW_DRAW_FULL will draw a complete circle/elipse.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5731 * xorigin: X coordinate of center of arc.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5732 * yorigin: Y coordinate of center of arc.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5733 * x1: X coordinate of first segment of arc.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5734 * y1: Y coordinate of first segment of arc.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5735 * x2: X coordinate of second segment of arc.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5736 * y2: Y coordinate of second segment of arc.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5737 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5738 DW_FUNCTION_DEFINITION(dw_draw_arc, void, HWND handle, HPIXMAP pixmap, int flags, int xorigin, int yorigin, int x1, int y1, int x2, int y2)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5739 DW_FUNCTION_ADD_PARAM9(handle, pixmap, flags, xorigin, yorigin, x1, y1, x2, y2)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5740 DW_FUNCTION_NO_RETURN(dw_draw_arc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5741 DW_FUNCTION_RESTORE_PARAM9(handle, HWND, pixmap, HPIXMAP, flags, int, xorigin, int, yorigin, int, x1, int, y1, int, x2, int, y2, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5742 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5743 DW_FUNCTION_INIT;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5744 DWImage *bi = _dw_dest_image(pixmap, handle);
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5745 CGContextRef context = _dw_draw_context(bi, flags & DW_DRAW_NOAA ? NO : YES);
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5746
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5747 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5748 UIGraphicsPushContext(context);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5749
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5750 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5751 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5752 UIBezierPath* aPath;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5753 UIColor *color = pthread_getspecific(_dw_fg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5754 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5755
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5756 /* Special case of a full circle/oval */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5757 if(flags & DW_DRAW_FULL)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5758 aPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(x1, y1, x2 - x1, y2 - y1)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5759 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5760 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5761 double a1 = atan2((y1-yorigin), (x1-xorigin));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5762 double a2 = atan2((y2-yorigin), (x2-xorigin));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5763 double dx = xorigin - x1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5764 double dy = yorigin - y1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5765 double r = sqrt(dx*dx + dy*dy);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5766
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5767 /* Prepare to draw */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5768 aPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(xorigin, yorigin)
2440
070337dd4ef7 iOS: Fix dw_draw_arc()... iOS is in raidans not degrees. Thanks wiliz on freenode.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2438
diff changeset
5769 radius:r startAngle:a1 endAngle:a2 clockwise:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5770 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5771 /* If the fill flag is passed */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5772 if(flags & DW_DRAW_FILL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5773 [aPath fill];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5774 else
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5775 [aPath stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5776 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5777 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5778 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5779 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5780 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5781
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5782 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5783 * Create a tree object to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5784 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5785 * id: An ID to be used for getting the resource from the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5786 * resource file.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5787 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5788 * A handle to a tree window or NULL on failure.
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5789 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5790 HWND API dw_tree_new(ULONG cid)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5791 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5792 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5793 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5794 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5795
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5796 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5797 * Inserts an item into a tree window (widget) after another item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5798 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5799 * handle: Handle to the tree to be inserted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5800 * item: Handle to the item to be positioned after.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5801 * title: The text title of the entry.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5802 * icon: Handle to coresponding icon.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5803 * parent: Parent handle or 0 if root.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5804 * itemdata: Item specific data.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5805 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5806 * A handle to a tree item or NULL on failure.
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5807 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5808 HTREEITEM API dw_tree_insert_after(HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5809 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5810 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5811 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5812 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5813
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5814 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5815 * Inserts an item into a tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5816 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5817 * handle: Handle to the tree to be inserted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5818 * title: The text title of the entry.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5819 * icon: Handle to coresponding icon.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5820 * parent: Parent handle or 0 if root.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5821 * itemdata: Item specific data.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5822 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5823 * A handle to a tree item or NULL on failure.
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5824 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5825 HTREEITEM API dw_tree_insert(HWND handle, const char *title, HICN icon, HTREEITEM parent, void *itemdata)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5826 {
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5827 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5828 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5829 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5830
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5831 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5832 * Gets the text an item in a tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5833 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5834 * handle: Handle to the tree containing the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5835 * item: Handle of the item to be modified.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5836 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5837 * A malloc()ed buffer of item text to be dw_free()ed or NULL on error.
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5838 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5839 char * API dw_tree_get_title(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5840 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5841 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5842 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5843 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5844
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5845 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5846 * Gets the text an item in a tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5847 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5848 * handle: Handle to the tree containing the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5849 * item: Handle of the item to be modified.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5850 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5851 * A handle to a tree item or NULL on failure.
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5852 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5853 HTREEITEM API dw_tree_get_parent(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5854 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5855 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5856 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5857 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5858
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5859 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5860 * Sets the text and icon of an item in a tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5861 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5862 * handle: Handle to the tree containing the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5863 * item: Handle of the item to be modified.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5864 * title: The text title of the entry.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5865 * icon: Handle to coresponding icon.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5866 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5867 void API dw_tree_item_change(HWND handle, HTREEITEM item, const char *title, HICN icon)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5868 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5869 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5870
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5871 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5872
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5873 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5874 * Sets the item data of a tree item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5875 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5876 * handle: Handle to the tree containing the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5877 * item: Handle of the item to be modified.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5878 * itemdata: User defined data to be associated with item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5879 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5880 void API dw_tree_item_set_data(HWND handle, HTREEITEM item, void *itemdata)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5881 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5882 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5883
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5884 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5885
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5886 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5887 * Gets the item data of a tree item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5888 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5889 * handle: Handle to the tree containing the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5890 * item: Handle of the item to be modified.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5891 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5892 * A pointer to tree item data or NULL on failure.
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5893 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5894 void * API dw_tree_item_get_data(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5895 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5896 /* TODO: Implement tree for iOS if possible */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5897 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5898 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5899
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5900 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5901 * Sets this item as the active selection.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5902 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5903 * handle: Handle to the tree window (widget) to be selected.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5904 * item: Handle to the item to be selected.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5905 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5906 void API dw_tree_item_select(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5907 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5908 /* TODO: Implement tree for iOS if possible */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5909 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5910
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5911 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5912 * Removes all nodes from a tree.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5913 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5914 * handle: Handle to the window (widget) to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5915 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5916 void API dw_tree_clear(HWND handle)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5917 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5918 /* TODO: Implement tree for iOS if possible */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5919 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5920
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5921 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5922 * Expands a node on a tree.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5923 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5924 * handle: Handle to the tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5925 * item: Handle to node to be expanded.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5926 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5927 void API dw_tree_item_expand(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5928 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5929 /* TODO: Implement tree for iOS if possible */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5930 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5931
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5932 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5933 * Collapses a node on a tree.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5934 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5935 * handle: Handle to the tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5936 * item: Handle to node to be collapsed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5937 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5938 void API dw_tree_item_collapse(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5939 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5940 /* TODO: Implement tree for iOS if possible */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5941 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5942
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5943 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5944 * Removes a node from a tree.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5945 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5946 * handle: Handle to the window (widget) to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5947 * item: Handle to node to be deleted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5948 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5949 void API dw_tree_item_delete(HWND handle, HTREEITEM item)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5950 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5951 /* TODO: Implement tree for iOS if possible */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5952 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5953
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5954 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5955 * Create a container object to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5956 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5957 * id: An ID to be used for getting the resource from the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5958 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5959 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5960 DW_FUNCTION_DEFINITION(dw_container_new, HWND, ULONG cid, int multi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5961 DW_FUNCTION_ADD_PARAM2(cid, multi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5962 DW_FUNCTION_RETURN(dw_container_new, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5963 DW_FUNCTION_RESTORE_PARAM2(cid, ULONG, multi, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5964 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5965 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5966 DWContainer *cont = _dw_cont_new(cid, multi);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5967 DW_FUNCTION_RETURN_THIS(cont);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5968 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5969
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5970 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5971 * Sets up the container columns.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5972 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5973 * handle: Handle to the container to be configured.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5974 * flags: An array of unsigned longs with column flags.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5975 * titles: An array of strings with column text titles.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5976 * count: The number of columns (this should match the arrays).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5977 * separator: The column number that contains the main separator.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5978 * (this item may only be used in OS/2)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5979 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5980 DW_FUNCTION_DEFINITION(dw_container_setup, int, HWND handle, unsigned long *flags, char **titles, int count, int separator)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5981 DW_FUNCTION_ADD_PARAM5(handle, flags, titles, count, separator)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5982 DW_FUNCTION_RETURN(dw_container_setup, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5983 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, flags, unsigned long *, titles, char **, count, int, DW_UNUSED(separator), int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5984 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5985 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5986 int z, retval = DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5987 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5988
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5989 [cont setup];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5990
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5991 for(z=0;z<count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5992 {
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5993 /* Even though we don't have columns on iOS, we save the data...
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5994 * So we can simulate columns when displaying the data in the list.
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5995 */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5996 NSString *title = [NSString stringWithUTF8String:titles[z]];
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5997
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5998 [cont addColumn:title andType:(int)flags[z]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5999 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6000 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6001 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6002
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6003 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6004 * Configures the main filesystem columnn title for localization.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6005 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6006 * handle: Handle to the container to be configured.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6007 * title: The title to be displayed in the main column.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6008 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6009 void API dw_filesystem_set_column_title(HWND handle, const char *title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6010 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6011 char *newtitle = strdup(title ? title : "");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6012
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6013 dw_window_set_data(handle, "_dw_coltitle", newtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6014 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6015
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6016 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6017 * Sets up the filesystem columns, note: filesystem always has an icon/filename field.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6018 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6019 * handle: Handle to the container to be configured.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6020 * flags: An array of unsigned longs with column flags.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6021 * titles: An array of strings with column text titles.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6022 * count: The number of columns (this should match the arrays).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6023 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6024 int API dw_filesystem_setup(HWND handle, unsigned long *flags, char **titles, int count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6025 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6026 char **newtitles = malloc(sizeof(char *) * (count + 1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6027 unsigned long *newflags = malloc(sizeof(unsigned long) * (count + 1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6028 char *coltitle = (char *)dw_window_get_data(handle, "_dw_coltitle");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6029 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6030
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6031 newtitles[0] = coltitle ? coltitle : "Filename";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6032
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6033 newflags[0] = DW_CFA_STRINGANDICON | DW_CFA_LEFT | DW_CFA_HORZSEPARATOR;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6034
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6035 memcpy(&newtitles[1], titles, sizeof(char *) * count);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6036 memcpy(&newflags[1], flags, sizeof(unsigned long) * count);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6037
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6038 dw_container_setup(handle, newflags, newtitles, count + 1, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6039 [cont setFilesystem:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6040
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6041 if(coltitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6042 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6043 dw_window_set_data(handle, "_dw_coltitle", NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6044 free(coltitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6045 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6046 free(newtitles);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6047 free(newflags);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6048 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6049 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6050
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6051 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6052 * Allocates memory used to populate a container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6053 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6054 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6055 * rowcount: The number of items to be populated.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6056 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6057 DW_FUNCTION_DEFINITION(dw_container_alloc, void *, HWND handle, int rowcount)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6058 DW_FUNCTION_ADD_PARAM2(handle, rowcount)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6059 DW_FUNCTION_RETURN(dw_container_alloc, void *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6060 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, rowcount, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6061 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6062 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6063 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6064 [cont addRows:rowcount];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6065 DW_FUNCTION_RETURN_THIS(cont);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6066 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6067
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6068 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6069 * Sets an item in specified row and column to the given data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6070 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6071 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6072 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6073 * column: Zero based column of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6074 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6075 * data: Pointer to the data to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6076 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6077 DW_FUNCTION_DEFINITION(dw_container_set_item, void, HWND handle, void *pointer, int column, int row, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6078 DW_FUNCTION_ADD_PARAM5(handle, pointer, column, row, data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6079 DW_FUNCTION_NO_RETURN(dw_container_set_item)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6080 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pointer, void *, column, int, row, int, data, void *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6081 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6082 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6083 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6084 id icon = nil, text = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6085 int type = [cont cellType:column];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6086 int lastadd = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6087
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6088 /* If pointer is NULL we are getting a change request instead of set */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6089 if(pointer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6090 lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6091
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6092 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6093 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6094 if(type & DW_CFA_BITMAPORICON)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6095 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6096 icon = *((UIImage **)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6097 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6098 else if(type & DW_CFA_STRING)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6099 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6100 char *str = *((char **)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6101 text = [ NSString stringWithUTF8String:str ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6102 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6103 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6104 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6105 char textbuffer[101] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6106
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6107 if(type & DW_CFA_ULONG)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6108 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6109 ULONG tmp = *((ULONG *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6110
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6111 snprintf(textbuffer, 100, "%lu", tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6112 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6113 else if(type & DW_CFA_DATE)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6114 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6115 struct tm curtm;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6116 CDATE cdate = *((CDATE *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6117
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6118 memset( &curtm, 0, sizeof(curtm) );
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6119 curtm.tm_mday = cdate.day;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6120 curtm.tm_mon = cdate.month - 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6121 curtm.tm_year = cdate.year - 1900;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6122
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6123 strftime(textbuffer, 100, "%x", &curtm);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6124 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6125 else if(type & DW_CFA_TIME)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6126 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6127 struct tm curtm;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6128 CTIME ctime = *((CTIME *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6129
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6130 memset( &curtm, 0, sizeof(curtm) );
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6131 curtm.tm_hour = ctime.hours;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6132 curtm.tm_min = ctime.minutes;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6133 curtm.tm_sec = ctime.seconds;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6134
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6135 strftime(textbuffer, 100, "%X", &curtm);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6136 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6137 if(textbuffer[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6138 text = [ NSString stringWithUTF8String:textbuffer ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6139 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6140 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6141
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6142 id object = [cont getRow:(row+lastadd) and:column];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6143
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6144 /* If it is a cell, change the content of the cell */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6145 if([object isMemberOfClass:[UITableViewCell class]])
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6146 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6147 UITableViewCell *cell = object;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6148
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6149 if(icon)
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
6150 [[cell imageView] setImage:icon];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6151 else
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
6152 [[cell textLabel] setText:text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6153 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6154 else /* Otherwise replace it with a new cell */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6155 [cont editCell:_dw_table_cell_view_new(icon, text) at:(row+lastadd) and:column];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
6156 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6157 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6158 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6159
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6160 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6161 * Changes an existing item in specified row and column to the given data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6162 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6163 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6164 * column: Zero based column of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6165 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6166 * data: Pointer to the data to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6167 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6168 void API dw_container_change_item(HWND handle, int column, int row, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6169 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6170 dw_container_set_item(handle, NULL, column, row, data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6171 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6172
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6173 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6174 * Changes an existing item in specified row and column to the given data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6175 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6176 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6177 * column: Zero based column of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6178 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6179 * data: Pointer to the data to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6180 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6181 void API dw_filesystem_change_item(HWND handle, int column, int row, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6182 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6183 dw_container_change_item(handle, column+1, row, data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6184 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6185
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6186 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6187 * Changes an item in specified row and column to the given data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6188 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6189 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6190 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6191 * column: Zero based column of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6192 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6193 * data: Pointer to the data to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6194 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6195 void API dw_filesystem_change_file(HWND handle, int row, const char *filename, HICN icon)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6196 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6197 dw_filesystem_set_file(handle, NULL, row, filename, icon);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6198 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6199
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6200 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6201 * Sets an item in specified row and column to the given data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6202 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6203 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6204 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6205 * column: Zero based column of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6206 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6207 * data: Pointer to the data to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6208 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6209 DW_FUNCTION_DEFINITION(dw_filesystem_set_file, void, HWND handle, void *pointer, int row, const char *filename, HICN icon)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6210 DW_FUNCTION_ADD_PARAM5(handle, pointer, row, filename, icon)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6211 DW_FUNCTION_NO_RETURN(dw_filesystem_set_file)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6212 DW_FUNCTION_RESTORE_PARAM5(handle, HWND, pointer, void *, row, int, filename, char *, icon, HICN)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6213 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6214 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6215 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6216 NSString *text = filename ? [NSString stringWithUTF8String:filename] : nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6217 int lastadd = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6218
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6219 /* If pointer is NULL we are getting a change request instead of set */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6220 if(pointer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6221 lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6222
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6223 id object = [cont getRow:(row+lastadd) and:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6224
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6225 /* If it is a cell, change the content of the cell */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6226 if([object isMemberOfClass:[UITableViewCell class]])
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6227 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6228 UITableViewCell *cell = object;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6229
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6230 if(icon)
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
6231 [[cell imageView] setImage:icon];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6232 if(text)
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
6233 [[cell textLabel] setText:text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6234 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6235 else /* Otherwise replace it with a new cell */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6236 [cont editCell:_dw_table_cell_view_new(icon, text) at:(row+lastadd) and:0];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
6237 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6238 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6239 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6240
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6241 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6242 * Sets an item in specified row and column to the given data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6243 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6244 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6245 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6246 * column: Zero based column of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6247 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6248 * data: Pointer to the data to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6249 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6250 void API dw_filesystem_set_item(HWND handle, void *pointer, int column, int row, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6251 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6252 dw_container_set_item(handle, pointer, column+1, row, data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6253 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6254
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6255 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6256 * Gets column type for a container column
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6257 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6258 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6259 * column: Zero based column.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6260 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6261 DW_FUNCTION_DEFINITION(dw_container_get_column_type, int, HWND handle, int column)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6262 DW_FUNCTION_ADD_PARAM2(handle, column)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6263 DW_FUNCTION_RETURN(dw_container_get_column_type, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6264 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, column, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6265 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6266 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6267 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6268 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6269 int flag = [cont cellType:column];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6270 if(flag & DW_CFA_BITMAPORICON)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6271 rc = DW_CFA_BITMAPORICON;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6272 else if(flag & DW_CFA_STRING)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6273 rc = DW_CFA_STRING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6274 else if(flag & DW_CFA_ULONG)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6275 rc = DW_CFA_ULONG;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6276 else if(flag & DW_CFA_DATE)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6277 rc = DW_CFA_DATE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6278 else if(flag & DW_CFA_TIME)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6279 rc = DW_CFA_TIME;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6280 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6281 rc = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6282 DW_FUNCTION_RETURN_THIS(rc);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6283 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6284
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6285 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6286 * Gets column type for a filesystem container column
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6287 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6288 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6289 * column: Zero based column.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6290 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6291 int API dw_filesystem_get_column_type(HWND handle, int column)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6292 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6293 return dw_container_get_column_type(handle, column+1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6294 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6296 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6297 * Sets the alternating row colors for container window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6298 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6299 * handle: The window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6300 * oddcolor: Odd row background color in DW_RGB format or a default color index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6301 * evencolor: Even row background color in DW_RGB format or a default color index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6302 * DW_RGB_TRANSPARENT will disable coloring rows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6303 * DW_CLR_DEFAULT will use the system default alternating row colors.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6304 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6305 DW_FUNCTION_DEFINITION(dw_container_set_stripe, void, HWND handle, unsigned long oddcolor, unsigned long evencolor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6306 DW_FUNCTION_ADD_PARAM3(handle, oddcolor, evencolor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6307 DW_FUNCTION_NO_RETURN(dw_container_set_stripe)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6308 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, oddcolor, unsigned long, evencolor, unsigned long)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6309 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6310 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6311 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6312 [cont setRowBgOdd:oddcolor
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6313 andEven:evencolor];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6314 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6315 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6316
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6317 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6318 * Sets the width of a column in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6319 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6320 * handle: Handle to window (widget) of container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6321 * column: Zero based column of width being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6322 * width: Width of column in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6323 */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6324 void API dw_container_set_column_width(HWND handle, int column, int width)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6325 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6326 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6327
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6328 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6329 * Sets the title of a row in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6330 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6331 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6332 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6333 * title: String title of the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6334 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6335 DW_FUNCTION_DEFINITION(dw_container_set_row_title, void, void *pointer, int row, const char *title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6336 DW_FUNCTION_ADD_PARAM3(pointer, row, title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6337 DW_FUNCTION_NO_RETURN(dw_container_set_row_title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6338 DW_FUNCTION_RESTORE_PARAM3(pointer, void *, row, int, title, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6339 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6340 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6341 DWContainer *cont = pointer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6342 int lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6343 [cont setRow:(row+lastadd) title:title];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6344 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6345 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6346
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6347
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6348 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6349 * Sets the data pointer of a row in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6350 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6351 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6352 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6353 * data: Data pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6354 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6355 DW_FUNCTION_DEFINITION(dw_container_set_row_data, void, void *pointer, int row, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6356 DW_FUNCTION_ADD_PARAM3(pointer, row, data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6357 DW_FUNCTION_NO_RETURN(dw_container_set_row_data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6358 DW_FUNCTION_RESTORE_PARAM3(pointer, void *, row, int, data, void *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6359 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6360 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6361 DWContainer *cont = pointer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6362 int lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6363 [cont setRowData:(row+lastadd) title:data];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6364 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6365 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6366
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6367
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6368 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6369 * Sets the title of a row in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6370 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6371 * handle: Handle to window (widget) of container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6372 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6373 * title: String title of the item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6374 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6375 DW_FUNCTION_DEFINITION(dw_container_change_row_title, void, HWND handle, int row, const char *title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6376 DW_FUNCTION_ADD_PARAM3(handle, row, title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6377 DW_FUNCTION_NO_RETURN(dw_container_change_row_title)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6378 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, row, int, title, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6379 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6380 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6381 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6382 [cont setRow:row title:title];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6383 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6384 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6385
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6386 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6387 * Sets the data pointer of a row in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6388 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6389 * handle: Handle to window (widget) of container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6390 * row: Zero based row of data being set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6391 * data: Data pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6392 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6393 DW_FUNCTION_DEFINITION(dw_container_change_row_data, void, HWND handle, int row, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6394 DW_FUNCTION_ADD_PARAM3(handle, row, data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6395 DW_FUNCTION_NO_RETURN(dw_container_change_row_data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6396 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, row, int, data, void *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6397 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6398 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6399 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6400 [cont setRowData:row title:data];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6401 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6402 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6403
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6404 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6405 * Sets the title of a row in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6406 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6407 * handle: Handle to the container window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6408 * pointer: Pointer to the allocated memory in dw_container_alloc().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6409 * rowcount: The number of rows to be inserted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6410 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6411 DW_FUNCTION_DEFINITION(dw_container_insert, void, HWND handle, void *pointer, int rowcount)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6412 DW_FUNCTION_ADD_PARAM3(handle, pointer, rowcount)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6413 DW_FUNCTION_NO_RETURN(dw_container_insert)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6414 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, DW_UNUSED(pointer), void *, DW_UNUSED(rowcount), int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6415 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6416 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6417 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6418 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6419 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6420 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6421
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6422 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6423 * Removes all rows from a container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6424 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6425 * handle: Handle to the window (widget) to be cleared.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6426 * redraw: TRUE to cause the container to redraw immediately.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6427 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6428 DW_FUNCTION_DEFINITION(dw_container_clear, void, HWND handle, int redraw)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6429 DW_FUNCTION_ADD_PARAM2(handle, redraw)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6430 DW_FUNCTION_NO_RETURN(dw_container_clear)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6431 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, redraw, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6432 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6433 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6434 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6435 [cont clear];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6436 if(redraw)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6437 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6438 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6439 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6440
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6441 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6442 * Removes the first x rows from a container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6443 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6444 * handle: Handle to the window (widget) to be deleted from.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6445 * rowcount: The number of rows to be deleted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6446 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6447 DW_FUNCTION_DEFINITION(dw_container_delete, void, HWND handle, int rowcount)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6448 DW_FUNCTION_ADD_PARAM2(handle, rowcount)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6449 DW_FUNCTION_NO_RETURN(dw_container_delete)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6450 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, rowcount, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6451 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6452 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6453 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6454 int x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6455
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6456 for(x=0;x<rowcount;x++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6457 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6458 [cont removeRow:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6459 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6460 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6461 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6462 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6463
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6464 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6465 * Scrolls container up or down.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6466 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6467 * handle: Handle to the window (widget) to be scrolled.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6468 * direction: DW_SCROLL_UP, DW_SCROLL_DOWN, DW_SCROLL_TOP or
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6469 * DW_SCROLL_BOTTOM. (rows is ignored for last two)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6470 * rows: The number of rows to be scrolled.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6471 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
6472 DW_FUNCTION_DEFINITION(dw_container_scroll, void, HWND handle, int direction, DW_UNUSED(long rows))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6473 DW_FUNCTION_ADD_PARAM3(handle, direction, rows)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6474 DW_FUNCTION_NO_RETURN(dw_container_scroll)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
6475 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, direction, int, DW_UNUSED(rows), long)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6476 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6477 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6478 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6479 int rowcount = (int)[cont numberOfRowsInSection:0];
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6480 CGPoint offset = [cont contentOffset];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6481
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6482 /* Safety check */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6483 if(rowcount < 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6484 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6485 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6486 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6487
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6488 switch(direction)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6489 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6490 case DW_SCROLL_TOP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6491 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6492 offset.y = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6493 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6494 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6495 case DW_SCROLL_BOTTOM:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6496 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6497 offset.y = [cont contentSize].height - [cont visibleSize].height;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6498 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6499 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
6500 /* TODO: Currently scrolling a full page, need to use row parameter instead */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6501 case DW_SCROLL_UP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6502 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6503 offset.y -= [cont visibleSize].height;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6504 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6505 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6506 case DW_SCROLL_DOWN:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6507 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6508 offset.y += [cont visibleSize].height;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6509 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6510 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6511 }
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6512 if(offset.y < 0)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6513 offset.y = 0;
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6514 [cont setContentOffset:offset];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6515 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6516 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6517
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6518 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6519 * Starts a new query of a container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6520 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6521 * handle: Handle to the window (widget) to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6522 * flags: If this parameter is DW_CRA_SELECTED it will only
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6523 * return items that are currently selected. Otherwise
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6524 * it will return all records in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6525 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6526 DW_FUNCTION_DEFINITION(dw_container_query_start, char *, HWND handle, unsigned long flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6527 DW_FUNCTION_ADD_PARAM2(handle, flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6528 DW_FUNCTION_RETURN(dw_container_query_start, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6529 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, flags, unsigned long)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6530 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6531 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6532 DWContainer *cont = handle;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6533 NSArray *selected = [cont indexPathsForSelectedRows];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
6534 NSIndexPath *result = [selected firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6535 void *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6536
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6537 if(result)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6538 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6539 if(flags & DW_CR_RETDATA)
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6540 retval = [cont getRowData:(int)result.row];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6541 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6542 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6543 char *temp = [cont getRowTitle:(int)result.row];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6544 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6545 retval = strdup(temp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6546 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6547 [cont setLastQueryPoint:1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6548 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6549 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6550 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6551
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6552 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6553 * Continues an existing query of a container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6554 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6555 * handle: Handle to the window (widget) to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6556 * flags: If this parameter is DW_CRA_SELECTED it will only
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6557 * return items that are currently selected. Otherwise
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6558 * it will return all records in the container.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6559 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6560 DW_FUNCTION_DEFINITION(dw_container_query_next, char *, HWND handle, unsigned long flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6561 DW_FUNCTION_ADD_PARAM2(handle, flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6562 DW_FUNCTION_RETURN(dw_container_query_next, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6563 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, flags, unsigned long)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6564 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6565 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6566 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6567 int lastQueryPoint = [cont lastQueryPoint];
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6568 NSArray *selected = [cont indexPathsForSelectedRows];
2429
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
6569 NSIndexPath *result = lastQueryPoint < [selected count] ? [selected objectAtIndex:lastQueryPoint] : nil;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6570 void *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6571
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6572 if(result)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6573 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6574 if(flags & DW_CR_RETDATA)
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6575 retval = [cont getRowData:(int)result.row];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6576 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6577 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6578 char *temp = [cont getRowTitle:(int)result.row];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6579 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6580 retval = strdup(temp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6581 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6582 [cont setLastQueryPoint:(int)lastQueryPoint+1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6583 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6584 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6585 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6586
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6587 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6588 * Cursors the item with the text speficied, and scrolls to that item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6589 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6590 * handle: Handle to the window (widget) to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6591 * text: Text usually returned by dw_container_query().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6592 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6593 DW_FUNCTION_DEFINITION(dw_container_cursor, void, HWND handle, const char *text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6594 DW_FUNCTION_ADD_PARAM2(handle, text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6595 DW_FUNCTION_NO_RETURN(dw_container_cursor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6596 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6597 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6598 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6599 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6600 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6601 char *thistext;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6602 int x, count = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6603
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6604 for(x=0;x<count;x++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6605 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6606 thistext = [cont getRowTitle:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6607
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6608 if(thistext && strcmp(thistext, text) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6609 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6610 NSIndexPath *ip = [NSIndexPath indexPathForRow:(NSUInteger)x inSection:0];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6611
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6612 [cont selectRowAtIndexPath:ip
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6613 animated:NO
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6614 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6615 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6616 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6617 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6618 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6619 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6620 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6621 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6622
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6623 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6624 * Cursors the item with the data speficied, and scrolls to that item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6625 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6626 * handle: Handle to the window (widget) to be queried.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6627 * data: Data associated with the row.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6628 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6629 DW_FUNCTION_DEFINITION(dw_container_cursor_by_data, void, HWND handle, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6630 DW_FUNCTION_ADD_PARAM2(handle, data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6631 DW_FUNCTION_NO_RETURN(dw_container_cursor_by_data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6632 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, data, void *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6633 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6634 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6635 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6636 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6637 void *thisdata;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6638 int x, count = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6639
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6640 for(x=0;x<count;x++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6641 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6642 thisdata = [cont getRowData:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6643
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6644 if(thisdata == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6645 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6646 NSIndexPath *ip = [NSIndexPath indexPathForRow:(NSUInteger)x inSection:0];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6647
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6648 [cont selectRowAtIndexPath:ip
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6649 animated:NO
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6650 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6651 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6652 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6653 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6654 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6655 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6656 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6657 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6658
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6659 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6660 * Deletes the item with the text speficied.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6661 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6662 * handle: Handle to the window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6663 * text: Text usually returned by dw_container_query().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6664 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6665 DW_FUNCTION_DEFINITION(dw_container_delete_row, void, HWND handle, const char *text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6666 DW_FUNCTION_ADD_PARAM2(handle, text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6667 DW_FUNCTION_NO_RETURN(dw_container_delete_row)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6668 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6669 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6670 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6671 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6672 char *thistext;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6673 int x, count = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6675 for(x=0;x<count;x++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6676 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6677 thistext = [cont getRowTitle:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6678
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6679 if(thistext && strcmp(thistext, text) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6680 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6681 [cont removeRow:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6682 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6683 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6684 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6685 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6686 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6687 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6688 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6689
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6690 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6691 * Deletes the item with the data speficied.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6692 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6693 * handle: Handle to the window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6694 * data: Data specified.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6695 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6696 DW_FUNCTION_DEFINITION(dw_container_delete_row_by_data, void, HWND handle, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6697 DW_FUNCTION_ADD_PARAM2(handle, data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6698 DW_FUNCTION_NO_RETURN(dw_container_delete_row_by_data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6699 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, data, void *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6700 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6701 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6702 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6703 void *thisdata;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6704 int x, count = (int)[cont numberOfRowsInSection:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6705
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6706 for(x=0;x<count;x++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6707 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6708 thisdata = [cont getRowData:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6709
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6710 if(thisdata == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6711 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6712 [cont removeRow:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6713 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6714 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6715 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6716 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6717 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6718 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6719 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6720
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6721 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6722 * Optimizes the column widths so that all data is visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6723 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6724 * handle: Handle to the window (widget) to be optimized.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6725 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6726 void dw_container_optimize(HWND handle)
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6727 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6728 /* TODO: Not sure if we need to implement this on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6729 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6730
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6731 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6732 * Inserts an icon into the taskbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6733 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6734 * handle: Window handle that will handle taskbar icon messages.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6735 * icon: Icon handle to display in the taskbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6736 * bubbletext: Text to show when the mouse is above the icon.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6737 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6738 void API dw_taskbar_insert(HWND handle, HICN icon, const char *bubbletext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6739 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6740 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6741
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6742 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6743 * Deletes an icon from the taskbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6744 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6745 * handle: Window handle that was used with dw_taskbar_insert().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6746 * icon: Icon handle that was used with dw_taskbar_insert().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6747 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6748 void API dw_taskbar_delete(HWND handle, HICN icon)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6749 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6750 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6751
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6752 /* Internal function to keep HICNs from getting too big */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6753 void _dw_icon_resize(UIImage *image)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6754 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6755 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6756 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
6757 CGSize size = [image size];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6758 if(size.width > 24 || size.height > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6759 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6760 if(size.width > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6761 size.width = 24;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6762 if(size.height > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6763 size.height = 24;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6764 #if 0 /* TODO: UIImage is immutable, duplicate? */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6765 [image setSize:size];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6766 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6767 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6768 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6769 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6770
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6771 /* Internal version that does not resize the image */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6772 HICN _dw_icon_load(unsigned long resid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6773 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6774 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6775 NSString *respath = [bundle resourcePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6776 NSString *filepath = [respath stringByAppendingFormat:@"/%lu.png", resid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6777 UIImage *image = [[UIImage alloc] initWithContentsOfFile:filepath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6778 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6779 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6780
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6781 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6782 * Obtains an icon from a module (or header in GTK).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6783 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6784 * module: Handle to module (DLL) in OS/2 and Windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6785 * id: A unsigned long id int the resources on OS/2 and
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6786 * Windows, on GTK this is converted to a pointer
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6787 * to an embedded XPM.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6788 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6789 HICN API dw_icon_load(unsigned long module, unsigned long resid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6790 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6791 UIImage *image = _dw_icon_load(resid);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6792 _dw_icon_resize(image);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6793 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6794 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6795
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6796 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6797 * Obtains an icon from a file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6798 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6799 * filename: Name of the file, omit extention to have
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6800 * DW pick the appropriate file extension.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6801 * (ICO on OS/2 or Windows, XPM on Unix)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6802 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6803 HICN API dw_icon_load_from_file(const char *filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6804 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6805 char *ext = _dw_get_image_extension( filename );
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6806
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6807 NSString *nstr = [ NSString stringWithUTF8String:filename ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6808 UIImage *image = [[UIImage alloc] initWithContentsOfFile:nstr];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6809 if(!image && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6810 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6811 nstr = [nstr stringByAppendingString: [NSString stringWithUTF8String:ext]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6812 image = [[UIImage alloc] initWithContentsOfFile:nstr];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6813 }
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6814 _dw_icon_resize(image);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6815 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6816 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6817
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6818 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6819 * Obtains an icon from data
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6820 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6821 * filename: Name of the file, omit extention to have
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6822 * DW pick the appropriate file extension.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6823 * (ICO on OS/2 or Windows, XPM on Unix)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6824 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6825 HICN API dw_icon_load_from_data(const char *data, int len)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6826 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6827 NSData *thisdata = [NSData dataWithBytes:data length:len];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6828 UIImage *image = [[UIImage alloc] initWithData:thisdata];
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6829 _dw_icon_resize(image);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6830 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6831 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6832
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6833 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6834 * Frees a loaded resource in OS/2 and Windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6835 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6836 * handle: Handle to icon returned by dw_icon_load().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6837 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6838 void API dw_icon_free(HICN handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6839 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6840 UIImage *image = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6841 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6842 [image release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6843 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6844 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6845
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6846 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6847 * Create a new MDI Frame to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6848 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6849 * id: An ID to be used with dw_window_from_id or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6850 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6851 HWND API dw_mdi_new(unsigned long cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6852 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6853 /* There isn't anything like quite like MDI on MacOS...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6854 * However we will make floating windows that hide
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6855 * when the application is deactivated to simulate
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6856 * similar behavior.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6857 */
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
6858 DWMDI *mdi = [[[DWMDI alloc] init] retain];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6859 [mdi setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6860 return mdi;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6861 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6862
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6863 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6864 * Creates a splitbar window (widget) with given parameters.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6865 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6866 * type: Value can be DW_VERT or DW_HORZ.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6867 * topleft: Handle to the window to be top or left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6868 * bottomright: Handle to the window to be bottom or right.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6869 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6870 * A handle to a splitbar window or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6871 */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6872 DW_FUNCTION_DEFINITION(dw_splitbar_new, HWND, DW_UNUSED(int type), HWND topleft, HWND bottomright, unsigned long cid)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6873 DW_FUNCTION_ADD_PARAM4(type, topleft, bottomright, cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6874 DW_FUNCTION_RETURN(dw_splitbar_new, HWND)
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6875 DW_FUNCTION_RESTORE_PARAM4(DW_UNUSED(type), int, topleft, HWND, bottomright, HWND, cid, unsigned long)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6876 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6877 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6878 id tmpbox = dw_box_new(DW_VERT, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6879 DWSplitBar *split = [[DWSplitBar alloc] init];
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
6880 UIViewController *vc = [[[UIViewController alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6881 [split setDelegate:split];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6882 dw_box_pack_start(tmpbox, topleft, 0, 0, TRUE, TRUE, 0);
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6883 [vc setView:tmpbox];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6884 if (@available(iOS 14.0, *)) {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6885 [split setViewController:vc forColumn:UISplitViewControllerColumnPrimary];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6886 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6887 [split addChildViewController:vc];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6888 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6889 [tmpbox autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6890 tmpbox = dw_box_new(DW_VERT, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6891 dw_box_pack_start(tmpbox, bottomright, 0, 0, TRUE, TRUE, 0);
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6892 vc = [[UIViewController alloc] init];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6893 [vc setView:tmpbox];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6894 if (@available(iOS 14.0, *)) {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6895 [split setViewController:vc forColumn:UISplitViewControllerColumnSecondary];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6896 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6897 [split addChildViewController:vc];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6898 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6899 [tmpbox autorelease];
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
6900 [vc autorelease];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6901 #if 0 /* TODO: All iOS splitbars are vertical */
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6902 [split setVertical:(type == DW_VERT ? YES : NO)];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6903 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6904 /* Set the default percent to 50% split */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6905 [split setPercent:50.0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6906 [split setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6907 DW_FUNCTION_RETURN_THIS(split);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6908 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6909
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6910 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6911 * Sets the position of a splitbar (pecentage).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6912 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6913 * handle: The handle to the splitbar returned by dw_splitbar_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6914 * percent: The position of the splitbar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6915 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6916 DW_FUNCTION_DEFINITION(dw_splitbar_set, void, HWND handle, float percent)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6917 DW_FUNCTION_ADD_PARAM2(handle, percent)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6918 DW_FUNCTION_NO_RETURN(dw_splitbar_set)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6919 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, percent, float)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6920 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6921 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6922 DWSplitBar *split = handle;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6923 CGSize size = [split preferredContentSize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6924 float pos;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6925 /* Calculate the position based on the size */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6926 #if 0 /* TODO: iOS split views are always vertical */
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6927 if(![split isVertical])
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6928 pos = size.height * (percent / 100.0);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6929 else
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6930 #endif
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6931 pos = size.width * (percent / 100.0);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6932 if(pos > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6933 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6934 if (@available(iOS 14.0, *)) {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6935 [split setPreferredPrimaryColumnWidth:pos];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6936 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6937 /* TODO: Is this possible on earlier versions? */
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6938 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6939 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6940 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6941 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6942 /* If we have no size.. wait until the resize
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6943 * event when we get an actual size to try
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6944 * to set the splitbar again.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6945 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6946 [split setPercent:percent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6947 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6948 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6949 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6950
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6951 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6952 * Gets the position of a splitbar (pecentage).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6953 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6954 * handle: The handle to the splitbar returned by dw_splitbar_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6955 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6956 float API dw_splitbar_get(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6957 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6958 DWSplitBar *split = handle;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6959 float retval = 50.0;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6960
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6961 if (@available(iOS 14.0, *)) {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6962 float primary = [split primaryColumnWidth];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6963 float supplementary = [split supplementaryColumnWidth];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6964 retval = (primary / (primary + supplementary)) * 100.0;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6965 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6966 /* TODO: If possible*/
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6967 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6968 return retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6969 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6970
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6971 /* Internal function to convert fontname to UIFont */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6972 UIFont *_dw_font_by_name(const char *fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6973 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6974 UIFont *font = DWDefaultFont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6975
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6976 if(fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6977 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6978 char *name = strchr(fontname, '.');
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6979
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6980 if(name && (name++))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6981 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6982 UIFontDescriptorSymbolicTraits traits = 0;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6983 UIFontDescriptor* fd;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6984 int size = atoi(fontname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6985 char *Italic = strstr(name, " Italic");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6986 char *Bold = strstr(name, " Bold");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6987 size_t len = (Italic ? (Bold ? (Italic > Bold ? (Bold - name) : (Italic - name)) : (Italic - name)) : (Bold ? (Bold - name) : strlen(name)));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6988 char *newname = alloca(len+1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6989
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6990 memset(newname, 0, len+1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6991 strncpy(newname, name, len);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6992
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6993 if(Bold)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6994 traits |= UIFontDescriptorTraitBold;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6995 if(Italic)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6996 traits |= UIFontDescriptorTraitItalic;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6997
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6998 fd = [UIFontDescriptor
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6999 fontDescriptorWithFontAttributes:@{UIFontDescriptorFamilyAttribute:[NSString stringWithUTF8String:newname],
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7000 UIFontDescriptorTraitsAttribute: @{UIFontSymbolicTrait:[NSNumber numberWithInteger:traits]}}];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7001 NSArray* matches = [fd matchingFontDescriptorsWithMandatoryKeys:
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7002 [NSSet setWithObjects:UIFontDescriptorFamilyAttribute, UIFontDescriptorTraitsAttribute, nil]];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7003 if(matches.count != 0)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7004 font = [UIFont fontWithDescriptor:matches[0] size:size];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7005 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7006 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7007 return font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7008 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7009
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7010 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7011 * Create a bitmap object to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7012 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7013 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7014 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7015 DW_FUNCTION_DEFINITION(dw_bitmap_new, HWND, ULONG cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7016 DW_FUNCTION_ADD_PARAM1(cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7017 DW_FUNCTION_RETURN(dw_bitmap_new, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7018 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7019 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7020 DW_FUNCTION_INIT;
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
7021 UIImageView *bitmap = [[[UIImageView alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7022 [bitmap setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7023 DW_FUNCTION_RETURN_THIS(bitmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7024 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7025
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7026 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7027 * Creates a pixmap with given parameters.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7028 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7029 * handle: Window handle the pixmap is associated with.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7030 * width: Width of the pixmap in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7031 * height: Height of the pixmap in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7032 * depth: Color depth of the pixmap.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7033 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7034 * A handle to a pixmap or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7035 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7036 HPIXMAP API dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7037 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7038 HPIXMAP pixmap = NULL;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7039
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7040 if((pixmap = calloc(1,sizeof(struct _hpixmap))))
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7041 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7042 pixmap->width = width;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7043 pixmap->height = height;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7044 pixmap->handle = handle;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
7045 pixmap->image = [[[DWImage alloc] initWithSize:CGSizeMake(width,height)] retain];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7046 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7047 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7048 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7049
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7050 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7051 * Creates a pixmap from a file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7052 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7053 * handle: Window handle the pixmap is associated with.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7054 * filename: Name of the file, omit extention to have
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7055 * DW pick the appropriate file extension.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7056 * (BMP on OS/2 or Windows, XPM on Unix)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7057 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7058 * A handle to a pixmap or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7059 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7060 HPIXMAP API dw_pixmap_new_from_file(HWND handle, const char *filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7061 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7062 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7063 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7064 char *ext = _dw_get_image_extension( filename );
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7065
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7066 if(!(pixmap = calloc(1,sizeof(struct _hpixmap))))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7067 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7068 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7069 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7070 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7071 NSString *nstr = [ NSString stringWithUTF8String:filename ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7072 UIImage *tmpimage = [[[UIImage alloc] initWithContentsOfFile:nstr] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7073 if(!tmpimage && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7074 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7075 nstr = [nstr stringByAppendingString: [NSString stringWithUTF8String:ext]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7076 tmpimage = [[[UIImage alloc] initWithContentsOfFile:nstr] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7077 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7078 if(!tmpimage)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7079 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7080 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7081 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7082 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7083 pixmap->width = [tmpimage size].width;
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7084 pixmap->height = [tmpimage size].height;
2447
8723c01fb87e iOS: Fix bug in dw_pixmap_new_from_file(). Resources go into the app
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2445
diff changeset
7085 pixmap->image = [[DWImage alloc] initWithUIImage:tmpimage];
8723c01fb87e iOS: Fix bug in dw_pixmap_new_from_file(). Resources go into the app
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2445
diff changeset
7086 pixmap->handle = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7087 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7088 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7089 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7090
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7091 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7092 * Creates a pixmap from memory.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7093 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7094 * handle: Window handle the pixmap is associated with.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7095 * data: Source of the image data
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7096 * (BMP on OS/2 or Windows, XPM on Unix)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7097 * le: length of data
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7098 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7099 * A handle to a pixmap or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7100 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7101 HPIXMAP API dw_pixmap_new_from_data(HWND handle, const char *data, int len)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7102 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7103 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7104 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7105
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7106 if(!(pixmap = calloc(1,sizeof(struct _hpixmap))))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7107 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7108 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7109 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7110 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7111 NSData *thisdata = [NSData dataWithBytes:data length:len];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7112 UIImage *tmpimage = [[[UIImage alloc] initWithData:thisdata] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7113 if(!tmpimage)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7114 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7115 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7116 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7117 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7118 pixmap->width = [tmpimage size].width;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7119 pixmap->height = [tmpimage size].height;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
7120 pixmap->image = [[DWImage alloc] initWithUIImage:tmpimage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7121 pixmap->handle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7122 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7123 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7124 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7125
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7126 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7127 * Sets the transparent color for a pixmap
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7128 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7129 * pixmap: Handle to a pixmap returned by
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7130 * dw_pixmap_new..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7131 * color: transparent color
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7132 * Note: This does nothing on Mac as transparency
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7133 * is handled automatically
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7134 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7135 void API dw_pixmap_set_transparent_color( HPIXMAP pixmap, ULONG color )
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7136 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7137 /* Don't do anything */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7138 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7139
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7140 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7141 * Creates a pixmap from internal resource graphic specified by id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7142 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7143 * handle: Window handle the pixmap is associated with.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7144 * id: Resource ID associated with requested pixmap.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7145 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7146 * A handle to a pixmap or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7147 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7148 HPIXMAP API dw_pixmap_grab(HWND handle, ULONG resid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7149 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7150 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7151 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7152
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7153 if(!(pixmap = calloc(1,sizeof(struct _hpixmap))))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7154 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7155 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7156 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7157 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7158
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7159 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7160 NSString *respath = [bundle resourcePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7161 NSString *filepath = [respath stringByAppendingFormat:@"/%lu.png", resid];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7162 UIImage *tmpimage = [[UIImage alloc] initWithContentsOfFile:filepath];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7163
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7164 if(tmpimage)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7165 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7166 pixmap->width = [tmpimage size].width;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7167 pixmap->height = [tmpimage size].height;
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
7168 pixmap->image = [[DWImage alloc] initWithUIImage:tmpimage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7169 pixmap->handle = handle;
2412
3b59cbd26fab iOS/Mac: Fix a minor memory leak in dw_pixmap_grab().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2411
diff changeset
7170 DW_LOCAL_POOL_OUT;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7171 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7172 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7173 free(pixmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7174 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7175 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7176 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7177
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7178 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7179 * Sets the font used by a specified pixmap.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7180 * Normally the pixmap font is obtained from the associated window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7181 * However this can be used to override that, or for pixmaps with no window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7182 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7183 * pixmap: Handle to a pixmap returned by dw_pixmap_new() or
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7184 * passed to the application via a callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7185 * fontname: Name and size of the font in the form "size.fontname"
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7186 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7187 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7188 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7189 int API dw_pixmap_set_font(HPIXMAP pixmap, const char *fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7190 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7191 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7192 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7193 UIFont *font = _dw_font_by_name(fontname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7194
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7195 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7196 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7197 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7198 UIFont *oldfont = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7199 [font retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7200 pixmap->font = font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7201 if(oldfont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7202 [oldfont release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7203 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7204 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7205 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7206 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7207 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7208 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7209
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7210 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7211 * Destroys an allocated pixmap.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7212 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7213 * pixmap: Handle to a pixmap returned by
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7214 * dw_pixmap_new..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7215 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7216 void API dw_pixmap_destroy(HPIXMAP pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7217 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7218 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7219 {
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
7220 DWImage *image = (DWImage *)pixmap->image;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7221 UIFont *font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7222 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7223 [image release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7224 [font release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7225 free(pixmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7226 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7227 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7228 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7229
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7230 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7231 * Copies from one item to another.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7232 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7233 * dest: Destination window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7234 * destp: Destination pixmap. (choose only one).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7235 * xdest: X coordinate of destination.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7236 * ydest: Y coordinate of destination.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7237 * width: Width of area to copy.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7238 * height: Height of area to copy.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7239 * src: Source window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7240 * srcp: Source pixmap. (choose only one).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7241 * xsrc: X coordinate of source.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7242 * ysrc: Y coordinate of source.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7243 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7244 void API dw_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7245 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7246 dw_pixmap_stretch_bitblt(dest, destp, xdest, ydest, width, height, src, srcp, xsrc, ysrc, -1, -1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7247 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7248
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7249 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7250 * Copies from one surface to another allowing for stretching.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7251 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7252 * dest: Destination window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7253 * destp: Destination pixmap. (choose only one).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7254 * xdest: X coordinate of destination.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7255 * ydest: Y coordinate of destination.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7256 * width: Width of the target area.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7257 * height: Height of the target area.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7258 * src: Source window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7259 * srcp: Source pixmap. (choose only one).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7260 * xsrc: X coordinate of source.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7261 * ysrc: Y coordinate of source.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7262 * srcwidth: Width of area to copy.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7263 * srcheight: Height of area to copy.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7264 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7265 * DW_ERROR_NONE on success and DW_ERROR_GENERAL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7266 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7267 int API dw_pixmap_stretch_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc, int srcwidth, int srcheight)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7268 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7269 DWBitBlt *bltinfo;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7270 NSValue* bi;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7271 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7272
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7273 /* Sanity checks */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7274 if((!dest && !destp) || (!src && !srcp) ||
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7275 ((srcwidth == -1 || srcheight == -1) && srcwidth != srcheight))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7276 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7277 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7278 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7279 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7280
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7281 bltinfo = calloc(1, sizeof(DWBitBlt));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7282 bi = [NSValue valueWithPointer:bltinfo];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7283
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7284 /* Fill in the information */
2436
ab36fbb50fe5 iOS: Fixes to get cachedImage functionality working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2435
diff changeset
7285 bltinfo->dest = _dw_dest_image(destp, dest);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7286 bltinfo->src = src;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7287 bltinfo->xdest = xdest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7288 bltinfo->ydest = ydest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7289 bltinfo->width = width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7290 bltinfo->height = height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7291 bltinfo->xsrc = xsrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7292 bltinfo->ysrc = ysrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7293 bltinfo->srcwidth = srcwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7294 bltinfo->srcheight = srcheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7296 if(srcp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7297 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7298 id object = bltinfo->src = (id)srcp->image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7299 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7300 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7301 [DWObj safeCall:@selector(doBitBlt:) withObject:bi];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7302 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7303 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7304 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7305
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7306 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7307 * Create a new static text window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7308 * Not available under OS/2, eCS
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7309 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7310 * text: The text to be display by the static text widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7311 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7312 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7313 DW_FUNCTION_DEFINITION(dw_calendar_new, HWND, ULONG cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7314 DW_FUNCTION_ADD_PARAM1(cid)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7315 DW_FUNCTION_RETURN(dw_calendar_new, HWND)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7316 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7317 {
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7318 DWCalendar *calendar = nil;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7319 #if 0 /* TODO: Figure out why this corrupts DWBoxes in its hierarchy */
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
7320 DWCalendar *calendar = [[[DWCalendar alloc] init] retain];
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7321 if (@available(iOS 14.0, *)) {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7322 [calendar setPreferredDatePickerStyle:UIDatePickerStyleInline];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7323 } else {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7324 // We really want the iOS 14 style to match the other platforms...
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7325 // but just leave it the default spinner style on 13 and earlier.
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7326 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7327 [calendar setDatePickerMode:UIDatePickerModeDate];
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7328 [calendar setDate:[NSDate date]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7329 [calendar setTag:cid];
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7330 #endif
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7331 DW_FUNCTION_RETURN_THIS(calendar);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7332 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7333
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7334 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7335 * Sets the current date of a calendar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7336 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7337 * handle: The handle to the calendar returned by dw_calendar_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7338 * year...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7339 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7340 DW_FUNCTION_DEFINITION(dw_calendar_set_date, void, HWND handle, unsigned int year, unsigned int month, unsigned int day)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7341 DW_FUNCTION_ADD_PARAM4(handle, year, month, day)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7342 DW_FUNCTION_NO_RETURN(dw_calendar_set_date)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7343 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, year, unsigned int, month, unsigned int, day, unsigned int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7344 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7345 DWCalendar *calendar = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7346 NSDate *date;
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7347 char buffer[101] = {0};
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7348
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7349 snprintf(buffer, 100, "%04d-%02d-%02d", year, month, day);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7350
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7351 NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7352 dateFormatter.dateFormat = @"yyyy-MM-dd";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7353
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7354 date = [dateFormatter dateFromString:[NSString stringWithUTF8String:buffer]];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7355 [calendar setDate:date];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7356 [date release];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7357 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7358 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7359
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7360 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7361 * Gets the current date of a calendar.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7362 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7363 * handle: The handle to the calendar returned by dw_calendar_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7364 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7365 DW_FUNCTION_DEFINITION(dw_calendar_get_date, void, HWND handle, unsigned int *year, unsigned int *month, unsigned int *day)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7366 DW_FUNCTION_ADD_PARAM4(handle, year, month, day)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7367 DW_FUNCTION_NO_RETURN(dw_calendar_get_date)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7368 DW_FUNCTION_RESTORE_PARAM4(handle, HWND, year, unsigned int *, month, unsigned int *, day, unsigned int *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7369 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7370 DWCalendar *calendar = handle;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7371 NSCalendar *mycalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7372 NSDate *date = [calendar date];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7373 NSDateComponents* components = [mycalendar components:NSCalendarUnitDay|NSCalendarUnitMonth|NSCalendarUnitYear fromDate:date];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7374 *day = (unsigned int)[components day];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7375 *month = (unsigned int)[components month];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7376 *year = (unsigned int)[components year];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7377 [mycalendar release];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7378 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7379 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7380
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7381 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7382 * Causes the embedded HTML widget to take action.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7383 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7384 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7385 * action: One of the DW_HTML_* constants.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7386 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7387 DW_FUNCTION_DEFINITION(dw_html_action, void, HWND handle, int action)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7388 DW_FUNCTION_ADD_PARAM2(handle, action)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7389 DW_FUNCTION_NO_RETURN(dw_html_action)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7390 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, action, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7391 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7392 DWWebView *html = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7393 switch(action)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7394 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7395 case DW_HTML_GOBACK:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7396 [html goBack];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7397 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7398 case DW_HTML_GOFORWARD:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7399 [html goForward];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7400 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7401 case DW_HTML_GOHOME:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7402 dw_html_url(handle, DW_HOME_URL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7403 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7404 case DW_HTML_SEARCH:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7405 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7406 case DW_HTML_RELOAD:
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7407 [html reload];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7408 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7409 case DW_HTML_STOP:
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7410 [html stopLoading];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7411 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7412 case DW_HTML_PRINT:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7413 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7414 }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7415 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7416 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7417
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7418 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7419 * Render raw HTML code in the embedded HTML widget..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7420 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7421 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7422 * string: String buffer containt HTML code to
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7423 * be rendered.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7424 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7425 * 0 on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7426 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7427 DW_FUNCTION_DEFINITION(dw_html_raw, int, HWND handle, const char *string)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7428 DW_FUNCTION_ADD_PARAM2(handle, string)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7429 DW_FUNCTION_RETURN(dw_html_raw, int)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7430 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, string, const char *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7431 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7432 DWWebView *html = handle;
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7433 int retval = DW_ERROR_NONE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7434 [html loadHTMLString:[ NSString stringWithUTF8String:string ] baseURL:nil];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7435 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7436 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7437
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7438 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7439 * Render file or web page in the embedded HTML widget..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7440 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7441 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7442 * url: Universal Resource Locator of the web or
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7443 * file object to be rendered.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7444 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7445 * 0 on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7446 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7447 DW_FUNCTION_DEFINITION(dw_html_url, int, HWND handle, const char *url)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7448 DW_FUNCTION_ADD_PARAM2(handle, url)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7449 DW_FUNCTION_RETURN(dw_html_url, int)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7450 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, url, const char *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7451 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7452 DWWebView *html = handle;
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7453 int retval = DW_ERROR_NONE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7454 [html loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[ NSString stringWithUTF8String:url ]]]];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7455 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7456 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7457
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7458 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7459 * Executes the javascript contained in "script" in the HTML window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7460 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7461 * handle: Handle to the HTML window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7462 * script: Javascript code to execute.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7463 * scriptdata: Data passed to the signal handler.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7464 * Notes: A DW_SIGNAL_HTML_RESULT event will be raised with scriptdata.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7465 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7466 * DW_ERROR_NONE (0) on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7467 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7468 DW_FUNCTION_DEFINITION(dw_html_javascript_run, int, HWND handle, const char *script, void *scriptdata)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7469 DW_FUNCTION_ADD_PARAM3(handle, script, scriptdata)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7470 DW_FUNCTION_RETURN(dw_html_javascript_run, int)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7471 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, script, const char *, scriptdata, void *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7472 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7473 DWWebView *html = handle;
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7474 int retval = DW_ERROR_NONE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7475 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7476
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7477 [html evaluateJavaScript:[NSString stringWithUTF8String:script] completionHandler:^(NSString *result, NSError *error)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7478 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7479 void *params[2] = { result, scriptdata };
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7480 _dw_event_handler(html, (id)params, 18);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7481 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7482 DW_LOCAL_POOL_OUT;
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7483 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7484 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7485
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7486 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7487 * Create a new HTML window (widget) to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7488 * Not available under OS/2, eCS
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7489 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7490 * text: The default text to be in the entryfield widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7491 * id: An ID to be used with dw_window_from_id() or 0L.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7492 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7493 DW_FUNCTION_DEFINITION(dw_html_new, HWND, ULONG cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7494 DW_FUNCTION_ADD_PARAM1(cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7495 DW_FUNCTION_RETURN(dw_html_new, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7496 DW_FUNCTION_RESTORE_PARAM1(DW_UNUSED(cid), ULONG)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7497 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7498 DW_FUNCTION_INIT;
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
7499 DWWebView *web = [[[DWWebView alloc] init] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7500 web.navigationDelegate = web;
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
7501 [web setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7502 DW_FUNCTION_RETURN_THIS(web);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7503 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7504
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7505 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7506 * Returns the current X and Y coordinates of the mouse pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7507 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7508 * x: Pointer to variable to store X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7509 * y: Pointer to variable to store Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7510 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7511 void API dw_pointer_query_pos(long *x, long *y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7512 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7513 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7514 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7515 *x = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7516 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7517 if(y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7518 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7519 *y = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7520 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7521 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7522
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7523 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7524 * Sets the X and Y coordinates of the mouse pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7525 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7526 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7527 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7528 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7529 void API dw_pointer_set_pos(long x, long y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7530 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7531 /* From what I have read this isn't possible, agaist human interface rules */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7532 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7533
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7534 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7535 * Create a menu object to be popped up.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7536 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7537 * id: An ID to be used for getting the resource from the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7538 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7539 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7540 HMENUI API dw_menu_new(ULONG cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7541 {
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7542 DWMenu *menu = [[[DWMenu alloc] initWithTag:cid] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7543 return menu;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7544 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7545
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7546 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7547 * Create a menubar on a window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7548 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7549 * location: Handle of a window frame to be attached to.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7550 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7551 HMENUI API dw_menubar_new(HWND location)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7552 {
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7553 DWWindow *window = location;
2577
6fdab466d7a2 Android: Fix notebook page change event page always being 0.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2570
diff changeset
7554 DWMenu *menu = [[[DWMenu alloc] initWithTag:0] retain];
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7555
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7556 [window setMenu:menu];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7557 return menu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7558 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7559
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7560 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7561 * Destroys a menu created with dw_menubar_new or dw_menu_new.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7562 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7563 * menu: Handle of a menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7564 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7565 void API dw_menu_destroy(HMENUI *menu)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7566 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7567 DWMenu *thismenu = *menu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7568 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7569 [thismenu release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7570 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7571 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7572
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7573 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7574 * Pops up a context menu at given x and y coordinates.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7575 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7576 * menu: The handle the the existing menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7577 * parent: Handle to the window initiating the popup.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7578 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7579 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7580 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7581 void API dw_menu_popup(HMENUI *menu, HWND parent, int x, int y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7582 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7583 DWMenu *thismenu = (DWMenu *)*menu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7584 id object = parent;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7585 DWWindow *window = [object isMemberOfClass:[DWWindow class]] ? object : (DWWindow *)[object window];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7586 [thismenu autorelease];
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7587 [window setPopupMenu:thismenu];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7588 *menu = nil;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7589 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7590
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7591 char _dw_removetilde(char *dest, const char *src)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7592 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7593 int z, cur=0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7594 char accel = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7595
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7596 for(z=0;z<strlen(src);z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7597 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7598 if(src[z] != '~')
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7599 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7600 dest[cur] = src[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7601 cur++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7602 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7603 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7604 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7605 accel = src[z+1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7606 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7607 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7608 dest[cur] = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7609 return accel;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7610 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7611
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7612 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7613 * Adds a menuitem or submenu to an existing menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7614 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7615 * menu: The handle the the existing menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7616 * title: The title text on the menu item to be added.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7617 * id: An ID to be used for message passing.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7618 * flags: Extended attributes to set on the menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7619 * end: If TRUE memu is positioned at the end of the menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7620 * check: If TRUE menu is "check"able.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7621 * flags: Extended attributes to set on the menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7622 * submenu: Handle to an existing menu to be a submenu or NULL.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7623 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7624 HWND API dw_menu_append_item(HMENUI menux, const char *title, ULONG itemid, ULONG flags, int end, int check, HMENUI submenux)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7625 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7626 DWMenu *menu = menux;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7627 DWMenuItem *item = nil;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7628 if(!title || strlen(title) == 0)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7629 [menu addItem:[[NSNull alloc] init]];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7630 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7631 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7632 char accel[2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7633 char *newtitle = malloc(strlen(title)+1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7634 NSString *nstr;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7635
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7636 accel[0] = _dw_removetilde(newtitle, title);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7637 accel[1] = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7638
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7639 nstr = [NSString stringWithUTF8String:newtitle];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7640 free(newtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7641
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7642 item = [[DWMenuItem commandWithTitle:nstr image:nil
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7643 action:@selector(menuHandler:)
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7644 propertyList:nil] autorelease];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7645 [item setTag:itemid];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7646 [menu addItem:item];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7647
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7648 if(check)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7649 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7650 [item setCheck:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7651 if(flags & DW_MIS_CHECKED)
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7652 [item setState:UIMenuElementStateOn];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7653 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7654 if(flags & DW_MIS_DISABLED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7655 [item setEnabled:NO];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7656
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7657 if(submenux)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7658 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7659 DWMenu *submenu = submenux;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7660
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7661 [submenu setTitle:nstr];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7662 [item setSubmenu:submenu];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7663 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7664 return item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7665 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7666 return item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7667 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7668
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7669 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7670 * Sets the state of a menu item check.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7671 * Deprecated; use dw_menu_item_set_state()
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7672 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7673 * menu: The handle the the existing menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7674 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7675 * check: TRUE for checked FALSE for not checked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7676 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7677 void API dw_menu_item_set_check(HMENUI menux, unsigned long itemid, int check)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7678 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7679 id menu = menux;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7680 DWMenuItem *menuitem = [menu childWithTag:itemid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7681
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7682 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7683 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7684 if(check)
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7685 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7686 else
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7687 [menuitem setState:UIMenuElementStateOff];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7688 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7689 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7690
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7691 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7692 * Deletes the menu item specified.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7693 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7694 * menu: The handle to the menu in which the item was appended.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7695 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7696 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7697 * DW_ERROR_NONE (0) on success or DW_ERROR_UNKNOWN on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7698 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7699 int API dw_menu_delete_item(HMENUI menux, unsigned long itemid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7700 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7701 id menu = menux;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7702 DWMenuItem *menuitem = [menu childWithTag:itemid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7703
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7704 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7705 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7706 [menu removeItem:menuitem];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7707 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7708 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7709 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7710 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7711
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7712 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7713 * Sets the state of a menu item.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7714 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7715 * menu: The handle to the existing menu.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7716 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7717 * flags: DW_MIS_ENABLED/DW_MIS_DISABLED
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7718 * DW_MIS_CHECKED/DW_MIS_UNCHECKED
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7719 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7720 void API dw_menu_item_set_state(HMENUI menux, unsigned long itemid, unsigned long state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7721 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7722 id menu = menux;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7723 DWMenuItem *menuitem = [menu childWithTag:itemid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7724
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7725 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7726 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7727 if(state & DW_MIS_CHECKED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7728 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7729 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7730 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7731 else if(state & DW_MIS_UNCHECKED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7732 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7733 [menuitem setState:UIMenuElementStateOff];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7734 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7735 #if 0 /* TODO: Disabled items not supported on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7736 if(state & DW_MIS_ENABLED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7737 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7738 [menuitem setEnabled:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7739 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7740 else if(state & DW_MIS_DISABLED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7741 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7742 [menuitem setEnabled:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7743 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7744 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7745 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7746 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7747
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7748 /* Gets the notebook page from associated ID */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7749 DWNotebookPage *_dw_notepage_from_id(DWNotebook *notebook, unsigned long pageid)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7750 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7751 NSArray *pages = [notebook views];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7752 for(DWNotebookPage *notepage in pages)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7753 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7754 if([notepage pageid] == pageid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7755 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7756 return notepage;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7757 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7758 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7759 return nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7760 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7761
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7762 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7763 * Create a notebook object to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7764 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7765 * id: An ID to be used for getting the resource from the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7766 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7767 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
7768 DW_FUNCTION_DEFINITION(dw_notebook_new, HWND, ULONG cid, DW_UNUSED(int top))
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7769 DW_FUNCTION_ADD_PARAM2(cid, top)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7770 DW_FUNCTION_RETURN(dw_notebook_new, HWND)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
7771 DW_FUNCTION_RESTORE_PARAM2(cid, ULONG, DW_UNUSED(top), int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7772 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
7773 DWNotebook *notebook = [[[DWNotebook alloc] init] retain];
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7774 [[notebook tabs] addTarget:notebook
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7775 action:@selector(pageChanged:)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7776 forControlEvents:UIControlEventValueChanged];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7777 [notebook setTag:cid];
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7778 DW_FUNCTION_RETURN_THIS(notebook);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7779 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7780
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7781 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7782 * Adds a new page to specified notebook.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7783 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7784 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7785 * flags: Any additional page creation flags.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7786 * front: If TRUE page is added at the beginning.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7787 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7788 DW_FUNCTION_DEFINITION(dw_notebook_page_new, ULONG, HWND handle, DW_UNUSED(ULONG flags), int front)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7789 DW_FUNCTION_ADD_PARAM3(handle, flags, front)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7790 DW_FUNCTION_RETURN(dw_notebook_page_new, ULONG)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7791 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, DW_UNUSED(flags), ULONG, front, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7792 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7793 DWNotebook *notebook = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7794 NSInteger page = [notebook pageid];
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7795 DWNotebookPage *notepage = [[[DWNotebookPage alloc] init] retain];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7796 NSMutableArray<DWNotebookPage *> *views = [notebook views];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7797 unsigned long retval;
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7798
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7799 [notepage setPageid:(int)page];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7800 if(front)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7801 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7802 [[notebook tabs] insertSegmentWithTitle:@"" atIndex:(NSInteger)0 animated:NO];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7803 [views addObject:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7804 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7805 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7806 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7807 [[notebook tabs] insertSegmentWithTitle:@"" atIndex:[[notebook tabs] numberOfSegments] animated:NO];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7808 [views addObject:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7809 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7810 [notebook addSubview:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7811 [notepage autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7812 [notebook setPageid:(int)(page+1)];
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7813
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7814 if([views count] != 1)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7815 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7816 /* Otherwise hide the page */
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7817 [notepage setHidden:YES];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7818 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7819
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7820 retval = (unsigned long)page;
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7821 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7822 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7823
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7824 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7825 * Remove a page from a notebook.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7826 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7827 * handle: Handle to the notebook widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7828 * pageid: ID of the page to be destroyed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7829 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7830 DW_FUNCTION_DEFINITION(dw_notebook_page_destroy, void, HWND handle, unsigned int pageid)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7831 DW_FUNCTION_ADD_PARAM2(handle, pageid)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7832 DW_FUNCTION_NO_RETURN(dw_notebook_page_destroy)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7833 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, pageid, unsigned int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7834 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7835 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7836 DWNotebookPage *notepage = _dw_notepage_from_id(notebook, pageid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7837 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7838
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7839 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7840 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7841 NSMutableArray<DWNotebookPage *> *views = [notebook views];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7842 NSUInteger index = [views indexOfObject:notepage];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7843
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7844 if(index != NSNotFound)
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7845 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7846 [[notebook tabs] removeSegmentAtIndex:index animated:NO];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7847 [notepage removeFromSuperview];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7848 [views removeObject:notepage];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7849 [notepage release];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7850 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7851 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7852 DW_LOCAL_POOL_OUT;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7853 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7854 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7855
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7856 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7857 * Queries the currently visible page ID.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7858 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7859 * handle: Handle to the notebook widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7860 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7861 DW_FUNCTION_DEFINITION(dw_notebook_page_get, unsigned long, HWND handle)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7862 DW_FUNCTION_ADD_PARAM1(handle)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7863 DW_FUNCTION_RETURN(dw_notebook_page_get, unsigned long)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7864 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7865 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7866 DWNotebook *notebook = handle;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7867 NSInteger index = [[notebook tabs] selectedSegmentIndex];
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7868 unsigned long retval = 0;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7869
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7870 if(index != -1)
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7871 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7872 NSMutableArray<DWNotebookPage *> *views = [notebook views];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7873 DWNotebookPage *notepage = [views objectAtIndex:index];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7874
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7875 retval = [notepage pageid];
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7876 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7877 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7878 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7879
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7880 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7881 * Sets the currently visibale page ID.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7882 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7883 * handle: Handle to the notebook widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7884 * pageid: ID of the page to be made visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7885 */
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7886 DW_FUNCTION_DEFINITION(dw_notebook_page_set, void, HWND handle, unsigned int pageid)
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7887 DW_FUNCTION_ADD_PARAM2(handle, pageid)
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7888 DW_FUNCTION_NO_RETURN(dw_notebook_page_set)
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7889 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, pageid, unsigned int)
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7890 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7891 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7892 DWNotebookPage *notepage = _dw_notepage_from_id(notebook, pageid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7893
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7894 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7895 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7896 NSMutableArray<DWNotebookPage *> *views = [notebook views];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7897 NSUInteger index = [views indexOfObject:notepage];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7898
2419
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7899 if(index != -1)
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7900 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7901 [[notebook tabs] setSelectedSegmentIndex:index];
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7902 }
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7903 }
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7904 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7905 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7906
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7907 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7908 * Sets the text on the specified notebook tab.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7909 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7910 * handle: Notebook handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7911 * pageid: Page ID of the tab to set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7912 * text: Pointer to the text to set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7913 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7914 DW_FUNCTION_DEFINITION(dw_notebook_page_set_text, void, HWND handle, ULONG pageid, const char *text)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7915 DW_FUNCTION_ADD_PARAM3(handle, pageid, text)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7916 DW_FUNCTION_NO_RETURN(dw_notebook_page_set_text)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7917 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, pageid, ULONG, text, const char *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7918 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7919 DWNotebook *notebook = handle;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7920
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7921 [[notebook tabs] setTitle:[NSString stringWithUTF8String:text] forSegmentAtIndex:pageid];
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
7922 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7923 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7924
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7925 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7926 * Sets the text on the specified notebook tab status area.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7927 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7928 * handle: Notebook handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7929 * pageid: Page ID of the tab to set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7930 * text: Pointer to the text to set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7931 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7932 void API dw_notebook_page_set_status_text(HWND handle, ULONG pageid, const char *text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7933 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7934 /* Note supported here... do nothing */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7935 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7936
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7937 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7938 * Packs the specified box into the notebook page.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7939 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7940 * handle: Handle to the notebook to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7941 * pageid: Page ID in the notebook which is being packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7942 * page: Box handle to be packed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7943 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7944 DW_FUNCTION_DEFINITION(dw_notebook_pack, void, HWND handle, ULONG pageid, HWND page)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7945 DW_FUNCTION_ADD_PARAM3(handle, pageid, page)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7946 DW_FUNCTION_NO_RETURN(dw_notebook_pack)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7947 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, pageid, ULONG, page, HWND)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7948 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7949 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7950 DWNotebookPage *notepage = _dw_notepage_from_id(notebook, pageid);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7951
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7952 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7953 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7954 dw_box_pack_start(notepage, page, 0, 0, TRUE, TRUE, 0);
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7955 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7956 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7957 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7958
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7959 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7960 * Create a new Window Frame.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7961 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7962 * owner: The Owner's window handle or HWND_DESKTOP.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7963 * title: The Window title.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7964 * flStyle: Style flags, see the PM reference.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7965 */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
7966 DW_FUNCTION_DEFINITION(dw_window_new, HWND, DW_UNUSED(HWND hwndOwner), const char *title, DW_UNUSED(ULONG flStyle))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7967 DW_FUNCTION_ADD_PARAM3(hwndOwner, title, flStyle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7968 DW_FUNCTION_RETURN(dw_window_new, HWND)
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
7969 DW_FUNCTION_RESTORE_PARAM3(DW_UNUSED(hwndOwner), HWND, title, char *, DW_UNUSED(flStyle), ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7970 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7971 DW_FUNCTION_INIT;
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7972 CGRect screenrect = [[UIScreen mainScreen] bounds];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7973 DWWindow *window = [[DWWindow alloc] initWithFrame:screenrect];
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
7974 DWView *view = [[DWView alloc] init];
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
7975 UIUserInterfaceStyle style = [[DWObj hiddenWindow] overrideUserInterfaceStyle];
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
7976
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
7977 [window setWindowLevel:UIWindowLevelNormal];
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
7978 [window setRootViewController:[[DWViewController alloc] init]];
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
7979 [window addSubview:view];
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7980 [window setBackgroundColor:[UIColor systemBackgroundColor]];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7981
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
7982 /* TODO: Handle style flags... if we can? There is no visible frame */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7983 if(@available(iOS 13.0, *)) {
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7984 NSString *nstitle = [NSString stringWithUTF8String:title];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7985 [window setLargeContentTitle:nstitle];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7986 if(flStyle & DW_FCF_TITLEBAR)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7987 {
2570
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
7988 NSInteger sbheight = [[[window windowScene] statusBarManager] statusBarFrame].size.height;
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
7989 UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, sbheight, screenrect.size.width, 40)];
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7990 UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:nstitle];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7991
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7992 [navbar setItems:@[navItem]];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7993 [window addSubview:navbar];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
7994 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7995 }
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
7996 /* Copy the overrideUserInterfaceStyle property from the hiddenWindow */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
7997 if(style != UIUserInterfaceStyleUnspecified)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
7998 [window setOverrideUserInterfaceStyle:style];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7999 DW_FUNCTION_RETURN_THIS(window);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8000 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8001
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8002 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8003 * Call a function from the window (widget)'s context.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8004 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8005 * handle: Window handle of the widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8006 * function: Function pointer to be called.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8007 * data: Pointer to the data to be passed to the function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8008 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8009 void API dw_window_function(HWND handle, void *function, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8010 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8011 void **params = calloc(2, sizeof(void *));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8012 NSValue *v;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8013 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8014 v = [NSValue valueWithPointer:params];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8015 params[0] = function;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8016 params[1] = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8017 [DWObj performSelectorOnMainThread:@selector(doWindowFunc:) withObject:v waitUntilDone:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8018 free(params);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8019 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8020 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8021
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8022
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8023 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8024 * Changes the appearance of the mouse pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8025 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8026 * handle: Handle to widget for which to change.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8027 * cursortype: ID of the pointer you want.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8028 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8029 void API dw_window_set_pointer(HWND handle, int pointertype)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8030 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8031 /* TODO: Only might be possible on Catalyst */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8032 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8033
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8034 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8035 * Makes the window visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8036 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8037 * handle: The window handle to make visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8038 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8039 DW_FUNCTION_DEFINITION(dw_window_show, int, HWND handle)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8040 DW_FUNCTION_ADD_PARAM1(handle)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8041 DW_FUNCTION_RETURN(dw_window_show, int)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8042 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8043 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8044 NSObject *object = handle;
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8045 int retval = DW_ERROR_NONE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8046
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8047 if([ object isMemberOfClass:[ DWWindow class ] ])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8048 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8049 DWWindow *window = handle;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8050 CGRect rect = [window frame];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8051
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8052 /* If we haven't been sized by a call.. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8053 if(rect.size.width <= 1 || rect.size.height <= 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8054 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8055 /* Determine the contents size */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8056 dw_window_set_size(handle, 0, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8057 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8058 if(![window shown])
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8059 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8060 [window makeKeyAndVisible];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8061 [window setShown:YES];
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8062 }
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8063 else
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8064 [window setHidden:NO];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8065 }
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8066 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8067 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8068
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8069 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8070 * Makes the window invisible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8071 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8072 * handle: The window handle to make visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8073 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8074 DW_FUNCTION_DEFINITION(dw_window_hide, int, HWND handle)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8075 DW_FUNCTION_ADD_PARAM1(handle)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8076 DW_FUNCTION_RETURN(dw_window_hide, int)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8077 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8078 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8079 NSObject *object = handle;
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8080 int retval = DW_ERROR_NONE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8081
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8082 if([ object isKindOfClass:[ UIWindow class ] ])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8083 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8084 UIWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8085
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8086 [window setHidden:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8087 }
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8088 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8089 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8090
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8091 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8092 * Sets the colors used by a specified window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8093 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8094 * handle: The window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8095 * fore: Foreground color in DW_RGB format or a default color index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8096 * back: Background color in DW_RGB format or a default color index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8097 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8098 DW_FUNCTION_DEFINITION(dw_window_set_color, int, HWND handle, unsigned long fore, unsigned long back)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8099 DW_FUNCTION_ADD_PARAM3(handle, fore, back)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8100 DW_FUNCTION_RETURN(dw_window_set_color, int)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8101 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, fore, unsigned long, back, unsigned long)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8102 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8103 id object = handle;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8104 unsigned long _fore = _dw_get_color(fore);
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8105 unsigned long _back = _dw_get_color(back);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8106 UIColor *fg = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8107 UIColor *bg = NULL;
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8108 int retval = DW_ERROR_NONE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8109
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8110 /* Get the UIColor for non-default colors */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8111 if(fore != DW_CLR_DEFAULT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8112 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8113 fg = [UIColor colorWithRed: DW_RED_VALUE(_fore)/255.0 green: DW_GREEN_VALUE(_fore)/255.0 blue: DW_BLUE_VALUE(_fore)/255.0 alpha: 1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8114 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8115 if(back != DW_CLR_DEFAULT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8116 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8117 bg = [UIColor colorWithRed: DW_RED_VALUE(_back)/255.0 green: DW_GREEN_VALUE(_back)/255.0 blue: DW_BLUE_VALUE(_back)/255.0 alpha: 1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8118 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8119
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8120 /* Get the textfield from the spinbutton */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8121 if([object isMemberOfClass:[DWSpinButton class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8122 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8123 object = [object textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8124 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8125 /* Get the cell on classes using NSCell */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8126 if([object isKindOfClass:[UITextField class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8127 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8128 [object setTextColor:(fg ? fg : [UIColor labelColor])];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8129 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8130 if([object isMemberOfClass:[DWButton class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8131 {
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
8132 [[object titleLabel] setTextColor:(fg ? fg : [UIColor labelColor])];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8133 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8134 if([object isKindOfClass:[UITextField class]] || [object isKindOfClass:[UIButton class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8135 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8136 [object setBackgroundColor:(bg ? bg : [UIColor systemBackgroundColor])];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8137 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8138 else if([object isMemberOfClass:[DWBox class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8139 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8140 DWBox *box = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8141
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8142 [box setColor:_back];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8143 [box setBackgroundColor:bg];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8144 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8145 else if([object isKindOfClass:[UITableView class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8146 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8147 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8148
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8149 [cont setBackgroundColor:(bg ? bg : [UIColor systemBackgroundColor])];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8150 [cont setForegroundColor:(fg ? fg : [UIColor labelColor])];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8151 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8152 else if([object isMemberOfClass:[DWMLE class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8153 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8154 DWMLE *mle = handle;
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8155 [mle setBackgroundColor:(bg ? bg : [UIColor systemBackgroundColor])];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8156 [mle setTextColor:(fg ? fg : [UIColor labelColor])];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8157 }
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8158 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8159 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8160
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8161 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8162 * Sets the font used by a specified window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8163 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8164 * handle: The window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8165 * border: Size of the window border in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8166 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8167 int API dw_window_set_border(HWND handle, int border)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8168 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8169 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8170 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8171
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8172 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8173 * Sets the style of a given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8174 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8175 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8176 * width: New width in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8177 * height: New height in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8178 */
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8179 DW_FUNCTION_DEFINITION(dw_window_set_style, void, HWND handle, ULONG style, ULONG mask)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8180 DW_FUNCTION_ADD_PARAM3(handle, style, mask)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8181 DW_FUNCTION_NO_RETURN(dw_window_set_style)
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8182 DW_FUNCTION_RESTORE_PARAM3(handle, HWND, style, ULONG, mask, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8183 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8184 id object = _dw_text_handle(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8185
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8186 if([object isKindOfClass:[UILabel class]])
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8187 {
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8188 UILabel *label = object;
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8189
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8190 [label setTextAlignment:(style & 0xF)];
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8191 #if 0 /* TODO: Implement vertical centering */
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8192 if(mask & DW_DT_VCENTER)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8193 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8194 [cell setVCenter:(style & DW_DT_VCENTER ? YES : NO)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8195 }
2378
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8196 #endif
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8197 if(mask & DW_DT_WORDBREAK)
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8198 {
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8199 if(style & DW_DT_WORDBREAK)
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8200 [label setLineBreakMode:NSLineBreakByWordWrapping];
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8201 else
cc858be0cb81 iOS: More work on conversion from Mac... going to be a few more of these
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2377
diff changeset
8202 [label setLineBreakMode:NSLineBreakByTruncatingTail];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8203 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8204 }
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8205 else if([object isMemberOfClass:[DWMLE class]])
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8206 {
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8207 DWMLE *mle = handle;
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8208 [mle setTextAlignment:(style & mask)];
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8209 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8210 else if([object isMemberOfClass:[DWMenuItem class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8211 {
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8212 DWMenuItem *menuitem = object;
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8213
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8214 if(mask & (DW_MIS_CHECKED | DW_MIS_UNCHECKED))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8215 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8216 if(style & DW_MIS_CHECKED)
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8217 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8218 else if(style & DW_MIS_UNCHECKED)
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8219 [menuitem setState:UIMenuElementStateOff];
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8220 }
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8221 #if 0 /* Disabled menu items not available on iOS currently */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8222 if(mask & (DW_MIS_ENABLED | DW_MIS_DISABLED))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8223 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8224 if(style & DW_MIS_ENABLED)
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8225 [menuitem setEnabled:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8226 else if(style & DW_MIS_DISABLED)
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8227 [menuitem setEnabled:NO];
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8228 }
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8229 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8230 }
2399
1cbc316292c1 iOS: Move more functions into thread safety, iOS is very adamant about the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2396
diff changeset
8231 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8232 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8233
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8234 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8235 * Sets the current focus item for a window/dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8236 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8237 * handle: Handle to the dialog item to be focused.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8238 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8239 * This is for use after showing the window/dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8240 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8241 DW_FUNCTION_DEFINITION(dw_window_set_focus, void, HWND handle)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8242 DW_FUNCTION_ADD_PARAM1(handle)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8243 DW_FUNCTION_NO_RETURN(dw_window_set_focus)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8244 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8245 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8246 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8247
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8248 [object becomeFirstResponder];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8249 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8250 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8251
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8252 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8253 * Sets the default focus item for a window/dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8254 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8255 * window: Toplevel window or dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8256 * defaultitem: Handle to the dialog item to be default.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8257 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8258 * This is for use before showing the window/dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8259 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8260 DW_FUNCTION_DEFINITION(dw_window_default, void, HWND handle, HWND defaultitem)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8261 DW_FUNCTION_ADD_PARAM2(handle, defaultitem)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8262 DW_FUNCTION_NO_RETURN(dw_window_default)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8263 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, defaultitem, HWND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8264 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8265 DWWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8266 id object = defaultitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8267
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8268 if([window isKindOfClass:[UIWindow class]] && [object isKindOfClass:[UIControl class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8269 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8270 [object becomeFirstResponder];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8271 }
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8272 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8273 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8274
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8275 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8276 * Sets window to click the default dialog item when an ENTER is pressed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8277 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8278 * window: Window (widget) to look for the ENTER press.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8279 * next: Window (widget) to move to next (or click)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8280 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8281 void API dw_window_click_default(HWND handle, HWND next)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8282 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8283 /* TODO: Figure out how to do this if we should */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8284 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8285
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8286 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8287 * Captures the mouse input to this window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8288 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8289 * handle: Handle to receive mouse input.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8290 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8291 void API dw_window_capture(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8292 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8293 /* Don't do anything for now */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8294 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8296 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8297 * Releases previous mouse capture.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8298 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8299 void API dw_window_release(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8300 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8301 /* Don't do anything for now */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8302 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8303
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8304 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8305 * Changes a window's parent to newparent.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8306 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8307 * handle: The window handle to destroy.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8308 * newparent: The window's new parent window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8309 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8310 void API dw_window_reparent(HWND handle, HWND newparent)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8311 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8312 /* TODO: Not sure if we should even bother with this */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8313 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8314
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8315 /* Allows the user to choose a font using the system's font chooser dialog.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8316 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8317 * currfont: current font
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8318 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8319 * A malloced buffer with the selected font or NULL on error.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8320 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8321 char * API dw_font_choose(const char *currfont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8322 {
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8323 NSPointerArray *params = [[NSPointerArray pointerArrayWithOptions:NSPointerFunctionsOpaqueMemory] retain];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8324 char *font = NULL;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8325
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8326 [params addPointer:(void *)currfont];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8327 [DWObj safeCall:@selector(fontPicker:) withObject:params];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8328 if([params count] > 1)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8329 font = [params pointerAtIndex:1];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8330
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8331 return font;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8332 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8333
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8334 /* Internal function to return a pointer to an item struct
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8335 * with information about the packing information regarding object.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8336 */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8337 Item *_dw_box_item(id object)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8338 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8339 /* Find the item within the box it is packed into */
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8340 if([object isKindOfClass:[DWBox class]] || [object isKindOfClass:[UIControl class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8341 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8342 DWBox *parent = (DWBox *)[object superview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8343
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8344 if([parent isKindOfClass:[DWBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8345 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8346 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8347 Item *thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8348 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8349
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8350 for(z=0;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8351 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8352 if(thisitem[z].hwnd == object)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8353 return &thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8354 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8355 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8356 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8357 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8358 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8359
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8360 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8361 * Sets the font used by a specified window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8362 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8363 * handle: The window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8364 * fontname: Name and size of the font in the form "size.fontname"
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8365 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8366 int API dw_window_set_font(HWND handle, const char *fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8367 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8368 UIFont *font = fontname ? _dw_font_by_name(fontname) :
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8369 (DWDefaultFont ? DWDefaultFont : [UIFont systemFontOfSize:[UIFont smallSystemFontSize]]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8370
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8371 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8372 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8373 id object = _dw_text_handle(handle);
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8374 if([object isMemberOfClass:[DWMLE class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8375 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8376 DWMLE *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8377
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8378 [mle setFont:font];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8379 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8380 else if([object isKindOfClass:[UIControl class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8381 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8382 [object setFont:font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8383 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8384 else if([object isMemberOfClass:[DWRender class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8385 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8386 DWRender *render = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8387
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8388 [render setFont:font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8389 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8390 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8391 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8392 /* If we changed the text... */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8393 Item *item = _dw_box_item(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8394
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8395 /* Check to see if any of the sizes need to be recalculated */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8396 if(item && (item->origwidth == -1 || item->origheight == -1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8397 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8398 _dw_control_size(handle, item->origwidth == -1 ? &item->width : NULL, item->origheight == -1 ? &item->height : NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8399 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8400 _dw_redraw([object window], TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8401 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8402 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8403 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8404 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8405 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8406
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8407 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8408 * Returns the current font for the specified window
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8409 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8410 * handle: The window handle from which to obtain the font.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8411 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8412 char * API dw_window_get_font(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8413 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8414 id object = _dw_text_handle(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8415 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8416
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8417 if([object isKindOfClass:[UIControl class]] || [object isMemberOfClass:[DWRender class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8418 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8419 font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8420 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8421 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8422 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8423 NSString *fontname = [font fontName];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8424 NSString *output = [NSString stringWithFormat:@"%d.%s", (int)[font pointSize], [fontname UTF8String]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8425 return strdup([output UTF8String]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8426 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8427 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8428 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8429
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8430 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8431 * Destroys a window and all of it's children.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8432 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8433 * handle: The window handle to destroy.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8434 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8435 DW_FUNCTION_DEFINITION(dw_window_destroy, int, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8436 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8437 DW_FUNCTION_RETURN(dw_window_destroy, int)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8438 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8439 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8440 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8441 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8442 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8443 int retval = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8444
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8445 /* Handle destroying a top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8446 if([ object isKindOfClass:[ UIWindow class ] ])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8447 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8448 DWWindow *window = handle;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8449 [window release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8450 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8451 /* Handle removing menu items from menus */
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8452 else if([object isMemberOfClass:[DWMenuItem class]])
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8453 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8454 DWMenuItem *item = object;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8455 DWMenu *menu = [item menu];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8456
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8457 [menu removeItem:object];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8458 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8459 /* Handle destroying a control or box */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8460 else if([object isKindOfClass:[UIView class]] || [object isKindOfClass:[UIControl class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8461 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8462 DWBox *parent = (DWBox *)[object superview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8463
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8464 if([parent isKindOfClass:[DWBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8465 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8466 id window = [object window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8467 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8468 int z, index = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8469 Item *tmpitem = NULL, *thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8470
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8471 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8472 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8473
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8474 for(z=0;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8475 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8476 if(thisitem[z].hwnd == object)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8477 index = z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8478 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8479
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8480 if(index != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8481 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8482 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8483
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8484 if(thisbox->count > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8485 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8486 tmpitem = calloc(sizeof(Item), (thisbox->count-1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8487
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8488 /* Copy all but the current entry to the new list */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8489 for(z=0;z<index;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8490 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8491 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8492 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8493 for(z=index+1;z<thisbox->count;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8494 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8495 tmpitem[z-1] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8496 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8497 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8498
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8499 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8500 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8501 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8502 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8503 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8504 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8505 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8506
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8507 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8508 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8509 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8510 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8511 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8512 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8513 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8514 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8515
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8516 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8517 * Gets the text used for a given window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8518 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8519 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8520 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8521 * text: The text associsated with a given window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8522 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8523 DW_FUNCTION_DEFINITION(dw_window_get_text, char *, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8524 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8525 DW_FUNCTION_RETURN(dw_window_get_text, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8526 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8527 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8528 DW_FUNCTION_INIT;
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8529 id object = _dw_text_handle(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8530 char *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8531
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8532 if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]])
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8533 {
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8534 NSString *nsstr = [object text];
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8535
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8536 retval = strdup([nsstr UTF8String]);
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8537 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8538 #ifdef DW_INCLUDE_DEPRECATED
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8539 else if([object isKindOfClass:[UIControl class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8540 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8541 UIControl *control = object;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8542 NSString *nsstr = [control text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8543
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8544 if(nsstr && [nsstr length] > 0)
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8545 retval = strdup([nsstr UTF8String]);
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8546 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8547 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8548 DW_FUNCTION_RETURN_THIS(retval);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8549 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8550
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8551 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8552 * Sets the text used for a given window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8553 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8554 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8555 * text: The text associsated with a given window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8556 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8557 DW_FUNCTION_DEFINITION(dw_window_set_text, void, HWND handle, const char *text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8558 DW_FUNCTION_ADD_PARAM2(handle, text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8559 DW_FUNCTION_NO_RETURN(dw_window_set_text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8560 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, text, char *)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8561 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8562 DW_FUNCTION_INIT;
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8563 id object = _dw_text_handle(handle);
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8564 Item *item = NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8565
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8566 if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]])
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8567 {
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8568 [object setText:[NSString stringWithUTF8String:text]];
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8569 item = _dw_box_item(handle);
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8570 }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8571 else if([object isMemberOfClass:[DWWindow class]])
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8572 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8573 DWWindow *window = object;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8574 NSArray *array = [window subviews];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8575
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8576 for(id obj in array)
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8577 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8578 if([obj isMemberOfClass:[UINavigationBar class]])
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8579 {
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8580 UINavigationBar *nav = obj;
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8581 UINavigationItem *item = [[nav items] firstObject];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8582
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8583 [item setTitle:[NSString stringWithUTF8String:text]];
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8584 }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8585 }
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8586 }
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8587 #ifdef DW_INCLUDE_DEPRECATED
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8588 else if([object isKindOfClass:[UIControl class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8589 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8590 UIControl *control = object;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8591 [control setText:[NSString stringWithUTF8String:text]];
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8592 item = _dw_box_item(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8593 }
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8594 #endif
2569
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8595 /* If we changed the text...
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8596 * Check to see if any of the sizes need to be recalculated
97b30df25fd1 iOS: If DW_FCF_TITLEBAR is passed to dw_window_new() create a UINavigationBar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2542
diff changeset
8597 */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8598 if(item && (item->origwidth == -1 || item->origheight == -1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8599 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8600 int newwidth, newheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8601
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8602 _dw_control_size(handle, &newwidth, &newheight);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8603
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8604 /* Only update the item and redraw the window if it changed */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8605 if((item->origwidth == -1 && item->width != newwidth) ||
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8606 (item->origheight == -1 && item->height != newheight))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8607 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8608 if(item->origwidth == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8609 item->width = newwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8610 if(item->origheight == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8611 item->height = newheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8612 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8613 _dw_redraw([object window], TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8614 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8615 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8616 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8617 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8618
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8619 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8620 * Sets the text used for a given window's floating bubble help.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8621 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8622 * handle: Handle to the window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8623 * bubbletext: The text in the floating bubble tooltip.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8624 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8625 void API dw_window_set_tooltip(HWND handle, const char *bubbletext)
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8626 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8627 /* Tooltips don't exist on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8628 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8629
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8630 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8631 * Disables given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8632 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8633 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8634 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8635 DW_FUNCTION_DEFINITION(dw_window_disable, void, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8636 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8637 DW_FUNCTION_NO_RETURN(dw_window_disable)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8638 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8639 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8640 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8641 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8642
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8643 if([object isMemberOfClass:[UIScrollView class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8644 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8645 UIScrollView *sv = handle;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8646 NSArray *subviews = [sv subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8647 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8648 }
2464
4fba0b9453ee iOS: Fix calculating label size when there is no text. Use "gT" to calculate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2463
diff changeset
8649 if([object isKindOfClass:[UIControl class]] || [object isMemberOfClass:[DWMenuItem class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8650 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8651 [object setEnabled:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8652 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8653 if([object isKindOfClass:[UITextView class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8654 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8655 UITextView *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8656
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8657 [mle setEditable:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8658 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8659 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8660 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8661
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8662 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8663 * Enables given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8664 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8665 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8666 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8667 DW_FUNCTION_DEFINITION(dw_window_enable, void, HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8668 DW_FUNCTION_ADD_PARAM1(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8669 DW_FUNCTION_NO_RETURN(dw_window_enable)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8670 DW_FUNCTION_RESTORE_PARAM1(handle, HWND)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8671 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8672 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8673 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8675 if([object isMemberOfClass:[UIScrollView class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8676 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8677 UIScrollView *sv = handle;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8678 NSArray *subviews = [sv subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8679 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8680 }
2464
4fba0b9453ee iOS: Fix calculating label size when there is no text. Use "gT" to calculate
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2463
diff changeset
8681 if([object isKindOfClass:[UIControl class]] || [object isMemberOfClass:[DWMenuItem class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8682 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8683 [object setEnabled:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8684 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8685 if([object isKindOfClass:[UITextView class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8686 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8687 UITextView *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8688
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8689 [mle setEditable:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8690 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8691 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8692 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8693
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8694 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8695 * Sets the bitmap used for a given static window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8696 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8697 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8698 * id: An ID to be used to specify the icon,
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8699 * (pass 0 if you use the filename param)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8700 * filename: a path to a file (Bitmap on OS/2 or
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8701 * Windows and a pixmap on Unix, pass
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8702 * NULL if you use the id param)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8703 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8704 void API dw_window_set_bitmap_from_data(HWND handle, unsigned long cid, const char *data, int len)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8705 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8706 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8707
2450
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8708 if([object isKindOfClass:[UIImageView class]] || [object isMemberOfClass:[DWButton class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8709 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8710 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8711 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8712 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8713 NSData *thisdata = [NSData dataWithBytes:data length:len];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8714 UIImage *pixmap = [[[UIImage alloc] initWithData:thisdata] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8715
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8716 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8717 {
2450
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8718 if([object isMemberOfClass:[DWButton class]])
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8719 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8720 DWButton *button = object;
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8721 [button setImage:pixmap forState:UIControlStateNormal];
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8722 }
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8723 else
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8724 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8725 UIImageView *iv = object;
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8726 [iv setImage:pixmap];
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8727 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8728 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8729 /* If we changed the bitmap... */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8730 Item *item = _dw_box_item(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8731
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8732 /* Check to see if any of the sizes need to be recalculated */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8733 if(item && (item->origwidth == -1 || item->origheight == -1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8734 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8735 _dw_control_size(handle, item->origwidth == -1 ? &item->width : NULL, item->origheight == -1 ? &item->height : NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8736 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8737 _dw_redraw([object window], TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8738 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8739 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8740 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8741 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8742 dw_window_set_bitmap(handle, cid, NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8743 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8744 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8745
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8746 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8747 * Sets the bitmap used for a given static window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8748 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8749 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8750 * id: An ID to be used to specify the icon,
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8751 * (pass 0 if you use the filename param)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8752 * filename: a path to a file (Bitmap on OS/2 or
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8753 * Windows and a pixmap on Unix, pass
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8754 * NULL if you use the id param)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8755 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8756 void API dw_window_set_bitmap(HWND handle, unsigned long resid, const char *filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8757 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8758 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8759 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8760
2450
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8761 if([object isKindOfClass:[UIImageView class]] || [object isMemberOfClass:[DWButton class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8762 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8763 UIImage *bitmap = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8764
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8765 if(filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8766 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8767 char *ext = _dw_get_image_extension( filename );
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8768 NSString *nstr = [ NSString stringWithUTF8String:filename ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8769
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8770 bitmap = [[[UIImage alloc] initWithContentsOfFile:nstr] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8771
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8772 if(!bitmap && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8773 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8774 nstr = [nstr stringByAppendingString: [NSString stringWithUTF8String:ext]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8775 bitmap = [[[UIImage alloc] initWithContentsOfFile:nstr] autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8776 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8777 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8778 if(!bitmap && resid > 0 && resid < 65536)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8779 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8780 bitmap = _dw_icon_load(resid);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8781 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8782
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8783 if(bitmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8784 {
2450
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8785 if([object isMemberOfClass:[DWButton class]])
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8786 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8787 DWButton *button = object;
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8788 [button setImage:bitmap forState:UIControlStateNormal];
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8789 }
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8790 else
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8791 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8792 UIImageView *iv = object;
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8793 [iv setImage:bitmap];
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8794 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8795
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8796 /* If we changed the bitmap... */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8797 Item *item = _dw_box_item(handle);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8798
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8799 /* Check to see if any of the sizes need to be recalculated */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8800 if(item && (item->origwidth == -1 || item->origheight == -1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8801 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8802 _dw_control_size(handle, item->origwidth == -1 ? &item->width : NULL, item->origheight == -1 ? &item->height : NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8803 /* Queue a redraw on the top-level window */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8804 _dw_redraw([object window], TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8805 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8806 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8807 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8808 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8809 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8810
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8811 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8812 * Sets the icon used for a given window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8813 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8814 * handle: Handle to the window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8815 * id: An ID to be used to specify the icon.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8816 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8817 void API dw_window_set_icon(HWND handle, HICN icon)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8818 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8819 /* This isn't needed, it is loaded from the bundle */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8820 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8821
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8822 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8823 * Gets the child window handle with specified ID.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8824 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8825 * handle: Handle to the parent window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8826 * id: Integer ID of the child.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8827 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8828 HWND API dw_window_from_id(HWND handle, int cid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8829 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8830 NSObject *object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8831 UIView *view = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8832 if([ object isKindOfClass:[ UIWindow class ] ])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8833 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8834 UIWindow *window = handle;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8835 NSArray *subviews = [window subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8836 view = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8837 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8838 return [view viewWithTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8839 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8840
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8841 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8842 * Minimizes or Iconifies a top-level window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8843 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8844 * handle: The window handle to minimize.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8845 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8846 int API dw_window_minimize(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8847 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8848 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8849 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8850
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8851 /* Causes entire window to be invalidated and redrawn.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8852 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8853 * handle: Toplevel window handle to be redrawn.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8854 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8855 void API dw_window_redraw(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8856 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8857 DWWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8858 [window setRedraw:YES];
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8859 [window setShown:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8860 [window setRedraw:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8861 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8862
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8863 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8864 * Makes the window topmost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8865 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8866 * handle: The window handle to make topmost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8867 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8868 int API dw_window_raise(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8869 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8870 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8871 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8872
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8873 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8874 * Makes the window bottommost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8875 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8876 * handle: The window handle to make bottommost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8877 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8878 int API dw_window_lower(HWND handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8879 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8880 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8881 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8882
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8883 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8884 * Sets the size of a given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8885 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8886 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8887 * width: New width in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8888 * height: New height in pixels.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8889 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8890 void API dw_window_set_size(HWND handle, ULONG width, ULONG height)
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8891 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8892 /* On iOS the window usually takes up the full screen */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8893 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8894
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8895 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8896 * Gets the size the system thinks the widget should be.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8897 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8898 * handle: Window handle of the item to be back.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8899 * width: Width in pixels of the item or NULL if not needed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8900 * height: Height in pixels of the item or NULL if not needed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8901 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8902 void API dw_window_get_preferred_size(HWND handle, int *width, int *height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8903 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8904 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8905
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8906 if([object isMemberOfClass:[DWBox class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8907 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8908 Box *thisbox;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8909
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8910 if((thisbox = (Box *)[object box]))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8911 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8912 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8913
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8914 /* Calculate space requirements */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8915 _dw_resize_box(thisbox, &depth, 0, 0, 1);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8916
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8917 /* Return what was requested */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8918 if(width) *width = thisbox->minwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8919 if(height) *height = thisbox->minheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8920 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8921 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8922 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8923 _dw_control_size(handle, width, height);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8924 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8925
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8926 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8927 * Sets the gravity of a given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8928 * Gravity controls which corner of the screen and window the position is relative to.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8929 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8930 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8931 * horz: DW_GRAV_LEFT (default), DW_GRAV_RIGHT or DW_GRAV_CENTER.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8932 * vert: DW_GRAV_TOP (default), DW_GRAV_BOTTOM or DW_GRAV_CENTER.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8933 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8934 void API dw_window_set_gravity(HWND handle, int horz, int vert)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8935 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8936 dw_window_set_data(handle, "_dw_grav_horz", DW_INT_TO_POINTER(horz));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8937 dw_window_set_data(handle, "_dw_grav_vert", DW_INT_TO_POINTER(vert));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8938 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8939
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8940 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8941 * Sets the position of a given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8942 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8943 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8944 * x: X location from the bottom left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8945 * y: Y location from the bottom left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8946 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8947 void API dw_window_set_pos(HWND handle, LONG x, LONG y)
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8948 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8949 /* iOS windows take up the whole screen */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8950 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8951
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8952 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8953 * Sets the position and size of a given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8954 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8955 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8956 * x: X location from the bottom left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8957 * y: Y location from the bottom left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8958 * width: Width of the widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8959 * height: Height of the widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8960 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8961 void API dw_window_set_pos_size(HWND handle, LONG x, LONG y, ULONG width, ULONG height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8962 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8963 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8964
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8965 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8966 * Gets the position and size of a given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8967 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8968 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8969 * x: X location from the bottom left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8970 * y: Y location from the bottom left.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8971 * width: Width of the widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8972 * height: Height of the widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8973 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8974 void API dw_window_get_pos_size(HWND handle, LONG *x, LONG *y, ULONG *width, ULONG *height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8975 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8976 NSObject *object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8977
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
8978 if([object isKindOfClass:[UIWindow class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8979 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8980 UIWindow *window = handle;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
8981 CGRect rect = [window frame];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8982 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8983 *x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8984 if(y)
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8985 *y = rect.origin.y;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8986 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8987 *width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8988 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8989 *height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8990 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8991 }
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
8992 else if([object isKindOfClass:[UIControl class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8993 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8994 UIControl *control = handle;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
8995 CGRect rect = [control frame];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8996 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8997 *x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8998 if(y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8999 *y = rect.origin.y;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9000 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9001 *width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9002 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9003 *height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9004 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9005 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9006 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9007
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9008 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9009 * Returns the width of the screen.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9010 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9011 int API dw_screen_width(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9012 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9013 CGRect screenRect = [[UIScreen mainScreen] bounds];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9014 return screenRect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9015 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9016
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9017 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9018 * Returns the height of the screen.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9019 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9020 int API dw_screen_height(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9021 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9022 CGRect screenRect = [[UIScreen mainScreen] bounds];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9023 return screenRect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9024 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9025
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9026 /* This should return the current color depth */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9027 unsigned long API dw_color_depth_get(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9028 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9029 /* iOS always runs in 32bit depth */
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9030 return 32;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9031 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9032
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9033 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9034 * Creates a new system notification if possible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9035 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9036 * title: The short title of the notification.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9037 * imagepath: Path to an image to display or NULL if none.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9038 * description: A longer description of the notification,
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9039 * or NULL if none is necessary.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9040 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9041 * A handle to the notification which can be used to attach a "clicked" event if desired,
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9042 * or NULL if it fails or notifications are not supported by the system.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9043 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9044 * This will create a system notification that will show in the notifaction panel
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9045 * on supported systems, which may be clicked to perform another task.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9046 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9047 HWND dw_notification_new(const char *title, const char *imagepath, const char *description, ...)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9048 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9049 char outbuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9050 HWND retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9051
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9052 if(description)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9053 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9054 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9055
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9056 va_start(args, description);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9057 vsnprintf(outbuf, 1024, description, args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9058 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9059 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9060
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9061 /* Configure the notification's payload. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9062 if (@available(iOS 10.0, *))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9063 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9064 if([[NSBundle mainBundle] bundleIdentifier] != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9065 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9066 UNMutableNotificationContent* notification = [[UNMutableNotificationContent alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9067
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9068 if(notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9069 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9070 notification.title = [NSString stringWithUTF8String:title];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9071 if(description)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9072 notification.body = [NSString stringWithUTF8String:outbuf];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9073 if(imagepath)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9074 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9075 NSURL *url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:imagepath]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9076 NSError *error;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9077 UNNotificationAttachment *attachment = [UNNotificationAttachment attachmentWithIdentifier:@"imageID"
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9078 URL:url
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9079 options:nil
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9080 error:&error];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9081 if(attachment)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9082 notification.attachments = @[attachment];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9083 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9084 retval = notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9085 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9086 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9087 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9088 return retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9089 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9090
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9091 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9092 * Sends a notification created by dw_notification_new() after attaching signal handler.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9093 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9094 * notification: The handle to the notification returned by dw_notification_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9095 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9096 * DW_ERROR_NONE on success, DW_ERROR_UNKNOWN on error or not supported.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9097 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9098 int dw_notification_send(HWND notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9099 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9100 if(notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9101 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9102 NSString *notid = [NSString stringWithFormat:@"dw-notification-%llu", DW_POINTER_TO_ULONGLONG(notification)];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9103
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9104 /* Schedule the notification. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9105 if (@available(iOS 10.0, *))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9106 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9107 if([[NSBundle mainBundle] bundleIdentifier] != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9108 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9109 UNMutableNotificationContent* content = (UNMutableNotificationContent *)notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9110 UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:notid content:content trigger:nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9111
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9112 UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9113 [center addNotificationRequest:request withCompletionHandler:nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9114 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9115 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9116 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9117 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9118 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9119 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9120
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9121
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9122 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9123 * Returns some information about the current operating environment.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9124 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9125 * env: Pointer to a DWEnv struct.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9126 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9127 void dw_environment_query(DWEnv *env)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9128 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9129 memset(env, '\0', sizeof(DWEnv));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9130 strcpy(env->osName, "iOS");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9131
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9132 strncpy(env->buildDate, __DATE__, sizeof(env->buildDate)-1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9133 strncpy(env->buildTime, __TIME__, sizeof(env->buildTime)-1);
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
9134 strncpy(env->htmlEngine, "WEBKIT", sizeof(env->htmlEngine)-1);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9135 env->DWMajorVersion = DW_MAJOR_VERSION;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9136 env->DWMinorVersion = DW_MINOR_VERSION;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9137 #ifdef VER_REV
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9138 env->DWSubVersion = VER_REV;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9139 #else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9140 env->DWSubVersion = DW_SUB_VERSION;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9141 #endif
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9142
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9143 env->MajorVersion = DWOSMajor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9144 env->MinorVersion = DWOSMinor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9145 env->MajorBuild = DWOSBuild;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9146 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9147
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9148 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9149 * Emits a beep.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9150 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9151 * freq: Frequency.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9152 * dur: Duration.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9153 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9154 void API dw_beep(int freq, int dur)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9155 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9156 AudioServicesPlayAlertSound((SystemSoundID)1104);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9157 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9158
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9159 /* Call this after drawing to the screen to make sure
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9160 * anything you have drawn is visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9161 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9162 void API dw_flush(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9163 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9164 /* This may need to be thread specific */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9165 [DWObj performSelectorOnMainThread:@selector(doFlush:) withObject:nil waitUntilDone:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9166 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9167
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9168 /* Functions for managing the user data lists that are associated with
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9169 * a given window handle. Used in dw_window_set_data() and
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9170 * dw_window_get_data().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9171 */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9172 UserData *_dw_find_userdata(UserData **root, const char *varname)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9173 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9174 UserData *tmp = *root;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9175
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9176 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9177 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9178 if(strcasecmp(tmp->varname, varname) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9179 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9180 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9181 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9182 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9183 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9184
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9185 int _dw_new_userdata(UserData **root, const char *varname, void *data)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9186 {
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9187 UserData *new = _dw_find_userdata(root, varname);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9188
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9189 if(new)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9190 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9191 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9192 return TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9193 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9194 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9195 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9196 new = malloc(sizeof(UserData));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9197 if(new)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9198 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9199 new->varname = strdup(varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9200 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9201
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9202 new->next = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9203
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9204 if (!*root)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9205 *root = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9206 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9207 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9208 UserData *prev = *root, *tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9209
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9210 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9211 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9212 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9213 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9214 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9215 prev->next = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9216 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9217 return TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9218 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9219 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9220 return FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9221 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9222
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9223 int _dw_remove_userdata(UserData **root, const char *varname, int all)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9224 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9225 UserData *prev = NULL, *tmp = *root;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9226
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9227 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9228 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9229 if(all || strcasecmp(tmp->varname, varname) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9230 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9231 if(!prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9232 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9233 *root = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9234 free(tmp->varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9235 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9236 if(!all)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9237 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9238 tmp = *root;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9239 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9240 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9241 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9242 /* If all is true we should
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9243 * never get here.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9244 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9245 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9246 free(tmp->varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9247 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9248 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9249 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9250 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9251 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9252 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9253 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9254 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9255 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9256 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9257 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9258 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9259
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9260 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9261 * Add a named user data item to a window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9262 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9263 * window: Window handle of signal to be called back.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9264 * dataname: A string pointer identifying which signal to be hooked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9265 * data: User data to be passed to the handler function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9266 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9267 DW_FUNCTION_DEFINITION(dw_window_set_data, void, HWND window, const char *dataname, void *data)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9268 DW_FUNCTION_ADD_PARAM3(window, dataname, data)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9269 DW_FUNCTION_NO_RETURN(dw_window_set_data)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9270 DW_FUNCTION_RESTORE_PARAM3(window, HWND, dataname, const char *, data, void *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9271 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9272 id object = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9273 if([object isMemberOfClass:[DWWindow class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9274 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9275 UIWindow *win = window;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9276 NSArray *subviews = [win subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9277 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9278 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9279 else if([object isMemberOfClass:[UIScrollView class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9280 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9281 UIScrollView *sv = window;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9282 NSArray *subviews = [sv subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9283 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9284 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9285 WindowData *blah = (WindowData *)[object userdata];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9286
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9287 if(!blah)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9288 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9289 if(!dataname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9290 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9291
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9292 blah = calloc(1, sizeof(WindowData));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9293 [object setUserdata:blah];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9294 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9296 if(data)
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9297 _dw_new_userdata(&(blah->root), dataname, data);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9298 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9299 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9300 if(dataname)
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9301 _dw_remove_userdata(&(blah->root), dataname, FALSE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9302 else
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9303 _dw_remove_userdata(&(blah->root), NULL, TRUE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9304 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9305 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9306 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9307
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9308 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9309 * Gets a named user data item to a window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9310 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9311 * window: Window handle of signal to be called back.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9312 * dataname: A string pointer identifying which signal to be hooked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9313 * data: User data to be passed to the handler function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9314 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9315 DW_FUNCTION_DEFINITION(dw_window_get_data, void *, HWND window, const char *dataname)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9316 DW_FUNCTION_ADD_PARAM2(window, dataname)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9317 DW_FUNCTION_RETURN(dw_window_get_data, void *)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9318 DW_FUNCTION_RESTORE_PARAM2(window, HWND, dataname, const char *)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9319 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9320 id object = window;
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9321 void *retval = NULL;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9322
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9323 if([object isMemberOfClass:[DWWindow class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9324 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9325 UIWindow *win = window;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9326 NSArray *subviews = [win subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9327 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9328 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9329 else if([object isMemberOfClass:[UIScrollView class]])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9330 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9331 UIScrollView *sv = window;
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9332 NSArray *subviews = [sv subviews];
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9333 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9334 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9335 WindowData *blah = (WindowData *)[object userdata];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9336
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9337 if(blah && blah->root && dataname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9338 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9339 UserData *ud = _dw_find_userdata(&(blah->root), dataname);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9340 if(ud)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9341 retval = ud->data;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9342 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9343 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9344 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9345
2532
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9346 /*
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9347 * Compare two window handles.
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9348 * Parameters:
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9349 * window1: First window handle to compare.
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9350 * window2: Second window handle to compare.
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9351 * Returns:
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9352 * TRUE if the windows are the same object, FALSE if not.
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9353 */
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9354 int API dw_window_compare(HWND window1, HWND window2)
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9355 {
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9356 /* If anything special is require to compare... do it
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9357 * here otherwise just compare the handles.
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9358 */
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9359 if(window1 && window2 && window1 == window2)
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9360 return TRUE;
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9361 return FALSE;
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9362 }
457c91634881 Added dw_window_compare() to check if two window handles refer to the same object.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2472
diff changeset
9363
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9364 #define DW_TIMER_MAX 64
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9365 static NSTimer *DWTimers[DW_TIMER_MAX];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9366
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9367 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9368 * Add a callback to a timer event.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9369 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9370 * interval: Milliseconds to delay between calls.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9371 * sigfunc: The pointer to the function to be used as the callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9372 * data: User data to be passed to the handler function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9373 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9374 * Timer ID for use with dw_timer_disconnect(), 0 on error.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9375 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9376 DW_FUNCTION_DEFINITION(dw_timer_connect, int, int interval, void *sigfunc, void *data)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9377 DW_FUNCTION_ADD_PARAM3(interval, sigfunc, data)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9378 DW_FUNCTION_RETURN(dw_timer_connect, int)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9379 DW_FUNCTION_RESTORE_PARAM3(interval, int, sigfunc, void *, data, void *)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9380 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9381 int z, retval = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9382
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9383 for(z=0;z<DW_TIMER_MAX;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9384 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9385 if(!DWTimers[z])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9386 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9387 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9388 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9389 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9390
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9391 if(sigfunc && !DWTimers[z])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9392 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9393 NSTimeInterval seconds = (double)interval / 1000.0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9394 NSTimer *thistimer = DWTimers[z] = [NSTimer scheduledTimerWithTimeInterval:seconds target:DWHandler selector:@selector(runTimer:) userInfo:nil repeats:YES];
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9395 _dw_new_signal(0, thistimer, z+1, sigfunc, NULL, data);
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9396 retval = z+1;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9397 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9398 DW_FUNCTION_RETURN_THIS(retval);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9399 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9400
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9401 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9402 * Removes timer callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9403 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9404 * id: Timer ID returned by dw_timer_connect().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9405 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9406 DW_FUNCTION_DEFINITION(dw_timer_disconnect, void, int timerid)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9407 DW_FUNCTION_ADD_PARAM1(timerid)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9408 DW_FUNCTION_NO_RETURN(dw_timer_disconnect)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9409 DW_FUNCTION_RESTORE_PARAM1(timerid, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9410 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9411 SignalHandler *prev = NULL, *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9412 NSTimer *thistimer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9413
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9414 /* 0 is an invalid timer ID */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9415 if(timerid > 0 && timerid < DW_TIMER_MAX && DWTimers[timerid-1])
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9416 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9417 thistimer = DWTimers[timerid-1];
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9418 DWTimers[timerid-1] = nil;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9419
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9420 [thistimer invalidate];
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9421
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9422 while(tmp)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9423 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9424 if(tmp->id == timerid && tmp->window == thistimer)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9425 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9426 if(prev)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9427 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9428 prev->next = tmp->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9429 free(tmp);
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9430 tmp = prev->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9431 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9432 else
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9433 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9434 DWRoot = tmp->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9435 free(tmp);
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9436 tmp = DWRoot;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9437 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9438 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9439 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9440 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9441 prev = tmp;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9442 tmp = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9443 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9444 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9445 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9446 DW_FUNCTION_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9447 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9448
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9449 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9450 * Add a callback to a window event.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9451 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9452 * window: Window handle of signal to be called back.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9453 * signame: A string pointer identifying which signal to be hooked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9454 * sigfunc: The pointer to the function to be used as the callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9455 * data: User data to be passed to the handler function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9456 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9457 void API dw_signal_connect(HWND window, const char *signame, void *sigfunc, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9458 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9459 dw_signal_connect_data(window, signame, sigfunc, NULL, data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9460 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9461
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9462 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9463 * Add a callback to a window event with a closure callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9464 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9465 * window: Window handle of signal to be called back.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9466 * signame: A string pointer identifying which signal to be hooked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9467 * sigfunc: The pointer to the function to be used as the callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9468 * discfunc: The pointer to the function called when this handler is removed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9469 * data: User data to be passed to the handler function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9470 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9471 void API dw_signal_connect_data(HWND window, const char *signame, void *sigfunc, void *discfunc, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9472 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9473 ULONG message = 0, msgid = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9474
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9475 /* Handle special case of application delete signal */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9476 if(!window && signame && strcmp(signame, DW_SIGNAL_DELETE) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9478 window = DWApp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9479 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9480
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9481 if(window && signame && sigfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9482 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9483 if((message = _dw_findsigmessage(signame)) != 0)
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9484 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9485 _dw_new_signal(message, window, (int)msgid, sigfunc, discfunc, data);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9486 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9487 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9488 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9489
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9490 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9491 * Removes callbacks for a given window with given name.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9492 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9493 * window: Window handle of callback to be removed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9494 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9495 void API dw_signal_disconnect_by_name(HWND window, const char *signame)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9496 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9497 SignalHandler *prev = NULL, *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9498 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9499
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9500 if(!window || !signame || (message = _dw_findsigmessage(signame)) == 0)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9501 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9502
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9503 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9504 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9505 if(tmp->window == window && tmp->message == message)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9506 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9507 void (*discfunc)(HWND, void *) = tmp->discfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9508
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9509 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9510 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9511 discfunc(tmp->window, tmp->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9512 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9513
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9514 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9515 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9516 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9517 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9518 tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9519 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9520 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9521 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9522 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9523 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9524 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9525 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9526 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9527 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9528 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9529 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9530 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9531 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9532 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9533 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9534
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9535 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9536 * Removes all callbacks for a given window.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9537 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9538 * window: Window handle of callback to be removed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9539 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9540 void API dw_signal_disconnect_by_window(HWND window)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9541 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9542 SignalHandler *prev = NULL, *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9543
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9544 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9545 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9546 if(tmp->window == window)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9547 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9548 void (*discfunc)(HWND, void *) = tmp->discfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9549
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9550 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9551 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9552 discfunc(tmp->window, tmp->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9553 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9554
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9555 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9556 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9557 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9558 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9559 tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9560 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9561 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9562 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9563 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9564 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9565 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9566 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9567 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9568 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9569 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9570 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9571 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9572 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9573 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9574 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9575
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9576 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9577 * Removes all callbacks for a given window with specified data.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9578 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9579 * window: Window handle of callback to be removed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9580 * data: Pointer to the data to be compared against.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9581 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9582 void API dw_signal_disconnect_by_data(HWND window, void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9583 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9584 SignalHandler *prev = NULL, *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9585
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9586 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9587 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9588 if(tmp->window == window && tmp->data == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9589 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9590 void (*discfunc)(HWND, void *) = tmp->discfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9591
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9592 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9593 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9594 discfunc(tmp->window, tmp->data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9595 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9596
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9597 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9598 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9599 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9600 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9601 tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9602 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9603 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9604 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9605 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9606 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9607 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9608 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9609 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9610 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9611 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9612 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9613 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9614 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9615 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9616 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9617
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9618 void _dw_my_strlwr(char *buf)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9619 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9620 int z, len = (int)strlen(buf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9621
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9622 for(z=0;z<len;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9623 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9624 if(buf[z] >= 'A' && buf[z] <= 'Z')
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9625 buf[z] -= 'A' - 'a';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9626 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9627 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9628
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9629 /* Open a shared library and return a handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9630 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9631 * name: Base name of the shared library.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9632 * handle: Pointer to a module handle,
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9633 * will be filled in with the handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9634 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9635 int dw_module_load(const char *name, HMOD *handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9636 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9637 int len;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9638 char *newname;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9639 char errorbuf[1025];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9640
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9641
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9642 if(!handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9643 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9644
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9645 if((len = (int)strlen(name)) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9646 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9647
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9648 /* Lenth + "lib" + ".dylib" + NULL */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9649 newname = malloc(len + 10);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9650
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9651 if(!newname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9652 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9653
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9654 sprintf(newname, "lib%s.dylib", name);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9655 _dw_my_strlwr(newname);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9656
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9657 *handle = dlopen(newname, RTLD_NOW);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9658 if(*handle == NULL)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9659 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9660 strncpy(errorbuf, dlerror(), 1024);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9661 printf("%s\n", errorbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9662 sprintf(newname, "lib%s.dylib", name);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9663 *handle = dlopen(newname, RTLD_NOW);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9664 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9665
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9666 free(newname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9667
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9668 return (NULL == *handle) ? -1 : 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9669 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9670
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9671 /* Queries the address of a symbol within open handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9672 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9673 * handle: Module handle returned by dw_module_load()
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9674 * name: Name of the symbol you want the address of.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9675 * func: A pointer to a function pointer, to obtain
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9676 * the address.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9677 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9678 int dw_module_symbol(HMOD handle, const char *name, void**func)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9679 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9680 if(!func || !name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9681 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9682
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9683 if(strlen(name) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9684 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9685
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9686 *func = (void*)dlsym(handle, name);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9687 return (NULL == *func);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9688 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9689
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9690 /* Frees the shared library previously opened.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9691 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9692 * handle: Module handle returned by dw_module_load()
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9693 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9694 int dw_module_close(HMOD handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9695 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9696 if(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9697 return dlclose(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9698 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9699 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9700
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9701 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9702 * Returns the handle to an unnamed mutex semaphore.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9703 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9704 HMTX dw_mutex_new(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9705 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9706 HMTX mutex = malloc(sizeof(pthread_mutex_t));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9707
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9708 pthread_mutex_init(mutex, NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9709 return mutex;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9710 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9711
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9712 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9713 * Closes a semaphore created by dw_mutex_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9714 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9715 * mutex: The handle to the mutex returned by dw_mutex_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9716 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9717 void dw_mutex_close(HMTX mutex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9718 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9719 if(mutex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9720 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9721 pthread_mutex_destroy(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9722 free(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9723 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9724 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9725
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9726 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9727 * Tries to gain access to the semaphore, if it can't it blocks.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9728 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9729 * mutex: The handle to the mutex returned by dw_mutex_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9730 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9731 void dw_mutex_lock(HMTX mutex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9732 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9733 /* We need to handle locks from the main thread differently...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9734 * since we can't stop message processing... otherwise we
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9735 * will deadlock... so try to acquire the lock and continue
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9736 * processing messages in between tries.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9737 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9738 if(DWThread == pthread_self())
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9739 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9740 while(pthread_mutex_trylock(mutex) != 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9741 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9742 /* Process any pending events */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9743 while(_dw_main_iteration([NSDate dateWithTimeIntervalSinceNow:0.01]))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9744 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9745 /* Just loop */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9746 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9747 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9748 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9749 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9750 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9751 pthread_mutex_lock(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9752 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9753 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9754
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9755 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9756 * Tries to gain access to the semaphore.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9757 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9758 * mutex: The handle to the mutex returned by dw_mutex_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9759 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9760 * DW_ERROR_NONE on success, DW_ERROR_TIMEOUT if it is already locked.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9761 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9762 int API dw_mutex_trylock(HMTX mutex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9763 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9764 if(pthread_mutex_trylock(mutex) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9765 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9766 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9767 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9768
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9769 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9770 * Reliquishes the access to the semaphore.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9771 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9772 * mutex: The handle to the mutex returned by dw_mutex_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9773 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9774 void dw_mutex_unlock(HMTX mutex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9775 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9776 pthread_mutex_unlock(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9777 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9778
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9779 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9780 * Returns the handle to an unnamed event semaphore.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9781 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9782 HEV dw_event_new(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9783 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9784 HEV eve = (HEV)malloc(sizeof(struct _dw_unix_event));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9785
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9786 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9787 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9788
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9789 /* We need to be careful here, mutexes on Linux are
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9790 * FAST by default but are error checking on other
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9791 * systems such as FreeBSD and OS/2, perhaps others.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9792 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9793 pthread_mutex_init (&(eve->mutex), NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9794 pthread_mutex_lock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9795 pthread_cond_init (&(eve->event), NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9796
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9797 pthread_mutex_unlock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9798 eve->alive = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9799 eve->posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9800
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9801 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9802 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9803
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9804 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9805 * Resets a semaphore created by dw_event_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9806 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9807 * eve: The handle to the event returned by dw_event_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9808 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9809 int dw_event_reset (HEV eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9810 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9811 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9812 return DW_ERROR_NON_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9813
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9814 pthread_mutex_lock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9815 pthread_cond_broadcast (&(eve->event));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9816 pthread_cond_init (&(eve->event), NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9817 eve->posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9818 pthread_mutex_unlock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9819 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9820 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9821
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9822 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9823 * Posts a semaphore created by dw_event_new(). Causing all threads
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9824 * waiting on this event in dw_event_wait to continue.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9825 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9826 * eve: The handle to the event returned by dw_event_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9827 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9828 int dw_event_post (HEV eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9829 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9830 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9831 return FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9832
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9833 pthread_mutex_lock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9834 pthread_cond_broadcast (&(eve->event));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9835 eve->posted = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9836 pthread_mutex_unlock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9837 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9838 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9839
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9840 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9841 * Waits on a semaphore created by dw_event_new(), until the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9842 * event gets posted or until the timeout expires.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9843 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9844 * eve: The handle to the event returned by dw_event_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9845 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9846 int dw_event_wait(HEV eve, unsigned long timeout)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9847 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9848 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9849
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9850 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9851 return DW_ERROR_NON_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9852
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9853 pthread_mutex_lock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9854
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9855 if(eve->posted)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9856 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9857 pthread_mutex_unlock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9858 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9859 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9860
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9861 if(timeout != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9862 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9863 struct timeval now;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9864 struct timespec timeo;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9865
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9866 gettimeofday(&now, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9867 timeo.tv_sec = now.tv_sec + (timeout / 1000);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9868 timeo.tv_nsec = now.tv_usec * 1000;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9869 rc = pthread_cond_timedwait(&(eve->event), &(eve->mutex), &timeo);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9870 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9871 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9872 rc = pthread_cond_wait(&(eve->event), &(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9873 pthread_mutex_unlock (&(eve->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9874 if(!rc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9875 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9876 if(rc == ETIMEDOUT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9877 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9878 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9879 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9880
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9881 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9882 * Closes a semaphore created by dw_event_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9883 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9884 * eve: The handle to the event returned by dw_event_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9885 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9886 int dw_event_close(HEV *eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9887 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9888 if(!eve || !(*eve))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9889 return DW_ERROR_NON_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9890
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9891 pthread_mutex_lock (&((*eve)->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9892 pthread_cond_destroy (&((*eve)->event));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9893 pthread_mutex_unlock (&((*eve)->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9894 pthread_mutex_destroy (&((*eve)->mutex));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9895 free(*eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9896 *eve = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9897
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9898 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9899 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9900
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9901 struct _seminfo {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9902 int fd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9903 int waiting;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9904 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9905
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9906 static void _dw_handle_sem(int *tmpsock)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9907 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9908 fd_set rd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9909 struct _seminfo *array = (struct _seminfo *)malloc(sizeof(struct _seminfo));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9910 int listenfd = tmpsock[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9911 int bytesread, connectcount = 1, maxfd, z, posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9912 char command;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9913 sigset_t mask;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9914
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9915 sigfillset(&mask); /* Mask all allowed signals */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9916 pthread_sigmask(SIG_BLOCK, &mask, NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9917
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9918 /* problems */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9919 if(tmpsock[1] == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9920 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9921 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9922 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9923 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9924
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9925 array[0].fd = tmpsock[1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9926 array[0].waiting = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9927
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9928 /* Free the memory allocated in dw_named_event_new. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9929 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9930
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9931 while(1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9932 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9933 FD_ZERO(&rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9934 FD_SET(listenfd, &rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9935
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9936 maxfd = listenfd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9937
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9938 /* Added any connections to the named event semaphore */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9939 for(z=0;z<connectcount;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9940 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9941 if(array[z].fd > maxfd)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9942 maxfd = array[z].fd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9943
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9944 FD_SET(array[z].fd, &rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9945 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9946
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9947 if(select(maxfd+1, &rd, NULL, NULL, NULL) == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9948 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9949 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9950 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9951 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9952
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9953 if(FD_ISSET(listenfd, &rd))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9954 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9955 struct _seminfo *newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9956 int newfd = accept(listenfd, 0, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9957
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9958 if(newfd > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9959 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9960 /* Add new connections to the set */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9961 newarray = (struct _seminfo *)malloc(sizeof(struct _seminfo)*(connectcount+1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9962 memcpy(newarray, array, sizeof(struct _seminfo)*(connectcount));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9963
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9964 newarray[connectcount].fd = newfd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9965 newarray[connectcount].waiting = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9966
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9967 connectcount++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9968
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9969 /* Replace old array with new one */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9970 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9971 array = newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9972 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9973 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9974
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9975 /* Handle any events posted to the semaphore */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9976 for(z=0;z<connectcount;z++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9977 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9978 if(FD_ISSET(array[z].fd, &rd))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9979 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9980 if((bytesread = (int)read(array[z].fd, &command, 1)) < 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9981 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9982 struct _seminfo *newarray = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9983
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9984 /* Remove this connection from the set */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9985 if(connectcount > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9986 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9987 newarray = (struct _seminfo *)malloc(sizeof(struct _seminfo)*(connectcount-1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9988 if(!z)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9989 memcpy(newarray, &array[1], sizeof(struct _seminfo)*(connectcount-1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9990 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9991 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9992 memcpy(newarray, array, sizeof(struct _seminfo)*z);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9993 if(z!=(connectcount-1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9994 memcpy(&newarray[z], &array[z+1], sizeof(struct _seminfo)*(z-connectcount-1));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9995 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9996 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9997 connectcount--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9998
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9999 /* Replace old array with new one */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10000 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10001 array = newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10002 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10003 else if(bytesread == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10004 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10005 switch(command)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10006 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10007 case 0:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10008 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10009 /* Reset */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10010 posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10011 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10012 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10013 case 1:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10014 /* Post */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10015 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10016 int s;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10017 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10018
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10019 posted = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10020
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10021 for(s=0;s<connectcount;s++)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10022 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10023 /* The semaphore has been posted so
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10024 * we tell all the waiting threads to
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10025 * continue.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10026 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10027 if(array[s].waiting)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10028 write(array[s].fd, &tmp, 1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10029 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10030 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10031 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10032 case 2:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10033 /* Wait */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10034 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10035 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10036
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10037 array[z].waiting = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10038
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10039 /* If we are posted exit immeditately */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10040 if(posted)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10041 write(array[z].fd, &tmp, 1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10042 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10043 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10044 case 3:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10045 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10046 /* Done Waiting */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10047 array[z].waiting = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10048 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10049 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10050 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10051 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10052 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10053 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10054 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10055 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10056
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10057 /* Using domain sockets on unix for IPC */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10058 /* Create a named event semaphore which can be
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10059 * opened from other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10060 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10061 * eve: Pointer to an event handle to receive handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10062 * name: Name given to semaphore which can be opened
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10063 * by other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10064 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10065 HEV dw_named_event_new(const char *name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10066 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10067 struct sockaddr_un un;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10068 int ev, *tmpsock = (int *)malloc(sizeof(int)*2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10069 HEV eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10070 DWTID dwthread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10071
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10072 if(!tmpsock)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10073 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10074
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10075 eve = (HEV)malloc(sizeof(struct _dw_unix_event));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10076
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10077 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10078 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10079 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10080 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10081 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10082
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10083 tmpsock[0] = socket(AF_UNIX, SOCK_STREAM, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10084 ev = socket(AF_UNIX, SOCK_STREAM, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10085 memset(&un, 0, sizeof(un));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10086 un.sun_family=AF_UNIX;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10087 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10088 strcpy(un.sun_path, "/tmp/.dw/");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10089 strcat(un.sun_path, name);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10090
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10091 /* just to be safe, this should be changed
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10092 * to support multiple instances.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10093 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10094 remove(un.sun_path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10095
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10096 bind(tmpsock[0], (struct sockaddr *)&un, sizeof(un));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10097 listen(tmpsock[0], 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10098 connect(ev, (struct sockaddr *)&un, sizeof(un));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10099 tmpsock[1] = accept(tmpsock[0], 0, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10100
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10101 if(tmpsock[0] < 0 || tmpsock[1] < 0 || ev < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10102 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10103 if(tmpsock[0] > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10104 close(tmpsock[0]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10105 if(tmpsock[1] > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10106 close(tmpsock[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10107 if(ev > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10108 close(ev);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10109 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10110 free(eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10111 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10112 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10113
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10114 /* Create a thread to handle this event semaphore */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10115 pthread_create(&dwthread, NULL, (void *)_dw_handle_sem, (void *)tmpsock);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10116 eve->alive = ev;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10117 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10118 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10119
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10120 /* Open an already existing named event semaphore.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10121 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10122 * eve: Pointer to an event handle to receive handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10123 * name: Name given to semaphore which can be opened
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10124 * by other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10125 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10126 HEV dw_named_event_get(const char *name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10127 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10128 struct sockaddr_un un;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10129 HEV eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10130 int ev = socket(AF_UNIX, SOCK_STREAM, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10131 if(ev < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10132 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10133
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10134 eve = (HEV)malloc(sizeof(struct _dw_unix_event));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10135
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10136 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10137 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10138 close(ev);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10139 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10140 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10141
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10142 un.sun_family=AF_UNIX;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10143 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10144 strcpy(un.sun_path, "/tmp/.dw/");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10145 strcat(un.sun_path, name);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10146 connect(ev, (struct sockaddr *)&un, sizeof(un));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10147 eve->alive = ev;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10148 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10149 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10150
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10151 /* Resets the event semaphore so threads who call wait
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10152 * on this semaphore will block.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10153 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10154 * eve: Handle to the semaphore obtained by
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10155 * an open or create call.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10156 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10157 int dw_named_event_reset(HEV eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10158 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10159 /* signal reset */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10160 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10161
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10162 if(!eve || eve->alive < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10163 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10164
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10165 if(write(eve->alive, &tmp, 1) == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10166 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10167 return 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10168 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10169
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10170 /* Sets the posted state of an event semaphore, any threads
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10171 * waiting on the semaphore will no longer block.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10172 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10173 * eve: Handle to the semaphore obtained by
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10174 * an open or create call.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10175 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10176 int dw_named_event_post(HEV eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10177 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10178
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10179 /* signal post */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10180 char tmp = (char)1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10181
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10182 if(!eve || eve->alive < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10183 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10184
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10185 if(write(eve->alive, &tmp, 1) == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10186 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10187 return 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10188 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10189
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10190 /* Waits on the specified semaphore until it becomes
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10191 * posted, or returns immediately if it already is posted.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10192 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10193 * eve: Handle to the semaphore obtained by
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10194 * an open or create call.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10195 * timeout: Number of milliseconds before timing out
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10196 * or -1 if indefinite.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10197 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10198 int dw_named_event_wait(HEV eve, unsigned long timeout)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10199 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10200 fd_set rd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10201 struct timeval tv, *useme = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10202 int retval = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10203 char tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10204
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10205 if(!eve || eve->alive < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10206 return DW_ERROR_NON_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10207
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10208 /* Set the timout or infinite */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10209 if(timeout != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10210 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10211 tv.tv_sec = timeout / 1000;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10212 tv.tv_usec = (int)timeout % 1000;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10213
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10214 useme = &tv;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10215 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10216
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10217 FD_ZERO(&rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10218 FD_SET(eve->alive, &rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10219
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10220 /* Signal wait */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10221 tmp = (char)2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10222 write(eve->alive, &tmp, 1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10223
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10224 retval = select(eve->alive+1, &rd, NULL, NULL, useme);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10225
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10226 /* Signal done waiting. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10227 tmp = (char)3;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10228 write(eve->alive, &tmp, 1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10229
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10230 if(retval == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10231 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10232 else if(retval == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10233 return DW_ERROR_INTERRUPT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10234
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10235 /* Clear the entry from the pipe so
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10236 * we don't loop endlessly. :)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10237 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10238 read(eve->alive, &tmp, 1);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10239 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10240 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10241
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10242 /* Release this semaphore, if there are no more open
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10243 * handles on this semaphore the semaphore will be destroyed.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10244 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10245 * eve: Handle to the semaphore obtained by
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10246 * an open or create call.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10247 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10248 int dw_named_event_close(HEV eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10249 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10250 /* Finally close the domain socket,
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10251 * cleanup will continue in _dw_handle_sem.
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10252 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10253 if(eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10254 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10255 close(eve->alive);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10256 free(eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10257 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10258 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10259 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10260
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10261 /* Mac specific function to cause garbage collection */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10262 void _dw_pool_drain(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10263 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10264 NSAutoreleasePool *pool = pthread_getspecific(_dw_pool_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10265 [pool drain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10266 pool = [[NSAutoreleasePool alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10267 pthread_setspecific(_dw_pool_key, pool);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10268 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10269
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10270 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10271 * Generally an internal function called from a newly created
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10272 * thread to setup the Dynamic Windows environment for the thread.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10273 * However it is exported so language bindings can call it when
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10274 * they create threads that require access to Dynamic Windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10275 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10276 void API _dw_init_thread(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10277 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10278 /* If we aren't using garbage collection we need autorelease pools */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10279 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10280 pthread_setspecific(_dw_pool_key, pool);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10281 _dw_init_colors();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10282 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10283
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10284 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10285 * Generally an internal function called from a terminating
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10286 * thread to cleanup the Dynamic Windows environment for the thread.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10287 * However it is exported so language bindings can call it when
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10288 * they exit threads that require access to Dynamic Windows.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10289 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10290 void API _dw_deinit_thread(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10291 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10292 UIColor *color;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10293
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10294 /* Release the pool when we are done so we don't leak */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10295 color = pthread_getspecific(_dw_fg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10296 [color release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10297 color = pthread_getspecific(_dw_bg_color_key);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10298 [color release];
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10299 NSAutoreleasePool *pool = pthread_getspecific(_dw_pool_key);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10300 [pool drain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10301 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10302
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10303 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10304 * Setup thread independent pools.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10305 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10306 void _dwthreadstart(void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10307 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10308 void (*threadfunc)(void *) = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10309 void **tmp = (void **)data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10310
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10311 _dw_init_thread();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10312
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10313 threadfunc = (void (*)(void *))tmp[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10314
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10315 /* Start our thread function */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10316 threadfunc(tmp[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10317
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10318 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10319
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10320 _dw_deinit_thread();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10321 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10322
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10323 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10324 * Sets the default font used on text based widgets.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10325 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10326 * fontname: Font name in Dynamic Windows format.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10327 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10328 void API dw_font_set_default(const char *fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10329 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10330 UIFont *oldfont = DWDefaultFont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10331 DWDefaultFont = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10332 if(fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10333 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10334 DWDefaultFont = _dw_font_by_name(fontname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10335 [DWDefaultFont retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10336 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10337 [oldfont release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10338 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10339
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10340 /* Thread start stub to launch our main */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10341 void _dw_main_launch(void **data)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10342 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10343 int (*_dwmain)(int argc, char **argv) = (int (*)(int, char **))data[0];
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10344 int argc = DW_POINTER_TO_INT(data[1]);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10345 char **argv = (char **)data[2];
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10346
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10347 _dwmain(argc, argv);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10348 free(data);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10349 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10350
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10351 /* The iOS main thread... all this does is handle messages */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10352 void _dw_main_thread(int argc, char *argv[])
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10353 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10354 DWMainEvent = dw_event_new();
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10355 dw_event_reset(DWMainEvent);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10356 /* We wait for the dw_init() in the user's main function */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10357 dw_event_wait(DWMainEvent, DW_TIMEOUT_INFINITE);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10358 DWThread = dw_thread_id();
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10359 DWObj = [[DWObject alloc] init];
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10360 /* Create object for handling timers */
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10361 DWHandler = [[DWTimerHandler alloc] init];
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10362 UIApplicationMain(argc, argv, nil, NSStringFromClass([DWAppDel class]));
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10363 /* Shouldn't get here, but ... just in case */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10364 DWThread = (DWTID)-1;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10365 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10366
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10367 /* If DWApp is uninitialized, initialize it */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10368 void _dw_app_init(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10369 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10370 /* The UIApplication singleton won't be created until we call
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10371 * UIApplicationMain() which blocks indefinitely.. so we have
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10372 * a thread to just run UIApplicationMain() .. and wait until
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10373 * we get a non-nil sharedApplication result.
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10374 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10375 while(!DWApp)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10376 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10377 static int posted = FALSE;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10378
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10379 if(DWMainEvent && !posted)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10380 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10381 /* Post the DWMainEvent so the main thread
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10382 * will call UIApplicationMain() creating
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10383 * the UIApplication sharedApplication.
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10384 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10385 posted = TRUE;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10386 dw_event_post(DWMainEvent);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10387 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10388 pthread_yield_np();
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
10389 DWApp = [UIApplication sharedApplication];
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10390 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10391 dw_event_reset(DWMainEvent);
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
10392 [DWObj performSelectorOnMainThread:@selector(delayedInit:) withObject:nil waitUntilDone:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10393 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10394
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10395 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10396 * Initializes the Dynamic Windows engine.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10397 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10398 * newthread: True if this is the only thread.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10399 * False if there is already a message loop running.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10400 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10401 int API dw_init(int newthread, int argc, char *argv[])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10402 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10403 char *lang = getenv("LANG");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10404
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10405 /* Correct the startup path if run from a bundle */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10406 if(argc > 0 && argv[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10407 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10408 char *pathcopy = strdup(argv[0]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10409 char *app = strstr(pathcopy, ".app/");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10410 char *binname = strrchr(pathcopy, '/');
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10411
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10412 if(binname && (binname++) && !_dw_app_id[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10413 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10414 /* If we have a binary name, use that for the Application ID instead. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10415 snprintf(_dw_app_id, _DW_APP_ID_SIZE, "%s.%s", DW_APP_DOMAIN_DEFAULT, binname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10416 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10417 if(app)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10418 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10419 char pathbuf[PATH_MAX+1] = { 0 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10420 size_t len = (size_t)(app - pathcopy);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10421
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10422 if(len > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10423 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10424 strncpy(_dw_bundle_path, pathcopy, len + 4);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10425 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10426 *app = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10427
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10428 getcwd(pathbuf, PATH_MAX);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10429
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10430 /* If run from a bundle the path seems to be / */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10431 if(strcmp(pathbuf, "/") == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10432 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10433 char *pos = strrchr(pathcopy, '/');
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10434
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10435 if(pos)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10436 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10437 strncpy(pathbuf, pathcopy, (size_t)(pos - pathcopy));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10438 chdir(pathbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10439 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10440 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10441 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10442 if(pathcopy)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10443 free(pathcopy);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10444 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10445
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10446 /* Just in case we can't obtain a path */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10447 if(!_dw_bundle_path[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10448 getcwd(_dw_bundle_path, PATH_MAX);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10449
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10450 /* Get the operating system version */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10451 NSString *version = [[NSProcessInfo processInfo] operatingSystemVersionString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10452 const char *versionstr = [version UTF8String];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10453 sscanf(versionstr, "Version %d.%d.%d", &DWOSMajor, &DWOSMinor, &DWOSBuild);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10454 /* Set the locale... if it is UTF-8 pass it
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10455 * directly, otherwise specify UTF-8 explicitly.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10456 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10457 setlocale(LC_ALL, lang && strstr(lang, ".UTF-8") ? lang : "UTF-8");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10458 /* Create the application object */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10459 _dw_app_init();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10460 pthread_key_create(&_dw_pool_key, NULL);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10461 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10462 pthread_setspecific(_dw_pool_key, pool);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10463 pthread_key_create(&_dw_fg_color_key, NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10464 pthread_key_create(&_dw_bg_color_key, NULL);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10465 _dw_init_colors();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10466 DWDefaultFont = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10467 if (@available(iOS 10.0, *))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10468 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10469 if([[NSBundle mainBundle] bundleIdentifier] != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10470 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10471 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10472 if(center)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10473 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10474 [center requestAuthorizationWithOptions:UNAuthorizationOptionAlert|UNAuthorizationOptionSound
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10475 completionHandler:^(BOOL granted, NSError * _Nullable error) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10476 if (granted)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10478 center.delegate = [[DWUserNotificationCenterDelegate alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10479 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10480 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10481 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10482 NSLog(@"WARNING: Unable to get notification permission. %@", error.localizedDescription);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10483 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10484 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10485 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10486 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10487 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10488 _DWDirtyDrawables = [[NSMutableArray alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10489 /* Use NSThread to start a dummy thread to initialize the threading subsystem */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10490 NSThread *thread = [[ NSThread alloc] initWithTarget:DWObj selector:@selector(uselessThread:) object:nil];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10491 [thread start];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10492 [thread release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10493 if(!_dw_app_id[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10494 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10495 /* Generate an Application ID based on the PID if all else fails. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10496 snprintf(_dw_app_id, _DW_APP_ID_SIZE, "%s.pid.%d", DW_APP_DOMAIN_DEFAULT, getpid());
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10497 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10498 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10499 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10500
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10501 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10502 * Allocates a shared memory region with a name.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10503 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10504 * handle: A pointer to receive a SHM identifier.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10505 * dest: A pointer to a pointer to receive the memory address.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10506 * size: Size in bytes of the shared memory region to allocate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10507 * name: A string pointer to a unique memory name.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10508 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10509 HSHM dw_named_memory_new(void **dest, int size, const char *name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10510 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10511 char namebuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10512 struct _dw_unix_shm *handle = malloc(sizeof(struct _dw_unix_shm));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10513
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10514 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10515 snprintf(namebuf, 1024, "/tmp/.dw/%s", name);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10516
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10517 if((handle->fd = open(namebuf, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR)) < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10518 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10519 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10520 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10521 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10522
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10523 ftruncate(handle->fd, size);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10524
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10525 /* attach the shared memory segment to our process's address space. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10526 *dest = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, handle->fd, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10527
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10528 if(*dest == MAP_FAILED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10529 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10530 close(handle->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10531 *dest = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10532 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10533 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10534 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10535
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10536 handle->size = size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10537 handle->sid = getsid(0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10538 handle->path = strdup(namebuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10539
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10540 return handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10541 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10542
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10543 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10544 * Aquires shared memory region with a name.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10545 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10546 * dest: A pointer to a pointer to receive the memory address.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10547 * size: Size in bytes of the shared memory region to requested.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10548 * name: A string pointer to a unique memory name.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10549 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10550 HSHM dw_named_memory_get(void **dest, int size, const char *name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10551 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10552 char namebuf[1025];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10553 struct _dw_unix_shm *handle = malloc(sizeof(struct _dw_unix_shm));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10554
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10555 mkdir("/tmp/.dw", S_IWGRP|S_IWOTH);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10556 snprintf(namebuf, 1024, "/tmp/.dw/%s", name);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10557
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10558 if((handle->fd = open(namebuf, O_RDWR)) < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10559 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10560 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10561 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10562 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10563
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10564 /* attach the shared memory segment to our process's address space. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10565 *dest = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, handle->fd, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10566
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10567 if(*dest == MAP_FAILED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10568 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10569 close(handle->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10570 *dest = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10571 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10572 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10573 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10574
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10575 handle->size = size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10576 handle->sid = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10577 handle->path = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10578
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10579 return handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10580 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10581
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10582 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10583 * Frees a shared memory region previously allocated.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10584 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10585 * handle: Handle obtained from DB_named_memory_allocate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10586 * ptr: The memory address aquired with DB_named_memory_allocate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10587 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10588 int dw_named_memory_free(HSHM handle, void *ptr)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10589 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10590 struct _dw_unix_shm *h = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10591 int rc = munmap(ptr, h->size);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10592
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10593 close(h->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10594 if(h->path)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10595 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10596 /* Only remove the actual file if we are the
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10597 * creator of the file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10598 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10599 if(h->sid != -1 && h->sid == getsid(0))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10600 remove(h->path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10601 free(h->path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10602 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10603 return rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10604 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10605
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10606 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10607 * Creates a new thread with a starting point of func.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10608 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10609 * func: Function which will be run in the new thread.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10610 * data: Parameter(s) passed to the function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10611 * stack: Stack size of new thread (OS/2 and Windows only).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10612 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10613 DWTID dw_thread_new(void *func, void *data, int stack)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10614 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10615 DWTID thread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10616 void **tmp = malloc(sizeof(void *) * 2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10617 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10618
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10619 tmp[0] = func;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10620 tmp[1] = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10621
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10622 rc = pthread_create(&thread, NULL, (void *)_dwthreadstart, (void *)tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10623 if(rc == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10624 return thread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10625 return (DWTID)-1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10626 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10627
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10628 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10629 * Ends execution of current thread immediately.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10630 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10631 void dw_thread_end(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10632 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10633 pthread_exit(NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10634 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10635
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10636 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10637 * Returns the current thread's ID.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10638 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10639 DWTID dw_thread_id(void)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10640 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10641 return (DWTID)pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10642 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10643
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10644 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10645 * Execute and external program in a seperate session.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10646 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10647 * program: Program name with optional path.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10648 * type: Either DW_EXEC_CON or DW_EXEC_GUI.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10649 * params: An array of pointers to string arguements.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10650 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10651 * DW_ERROR_UNKNOWN (-1) on error.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10652 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10653 int dw_exec(const char *program, int type, char **params)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10654 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10655 int ret = DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10656
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10657 #if 0 /* TODO: Figure out how to do this on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10658 if(type == DW_EXEC_GUI)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10659 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10660 NSString *nsprogram = [NSString stringWithUTF8String:program];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10661 NSWorkspace *ws = [NSWorkspace sharedWorkspace];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10662
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10663 if(params && params[0] && params[1])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10664 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10665 NSURL *url = _dw_url_from_program(nsprogram, ws);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10666 NSMutableArray *array = [[NSMutableArray alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10667 __block DWDialog *dialog = dw_dialog_new(NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10668 int z = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10669
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10670 while(params[z])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10671 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10672 NSString *thisfile = [NSString stringWithUTF8String:params[z]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10673 NSURL *nsfile = [NSURL fileURLWithPath:thisfile];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10675 [array addObject:nsfile];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10676 z++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10677 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10678
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10679 [ws openURLs:array withApplicationAtURL:url
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10680 configuration:[NSWorkspaceOpenConfiguration configuration]
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10681 completionHandler:^(NSRunningApplication *app, NSError *error) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10682 int pid = DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10683
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10684 if(error)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10685 NSLog(@"openURLs: %@", [error localizedDescription]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10686 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10687 pid = [app processIdentifier];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10688 dw_dialog_dismiss(dialog, DW_INT_TO_POINTER(pid));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10689 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10690 ret = DW_POINTER_TO_INT(dw_dialog_wait(dialog));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10691 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10692 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10693 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10694 NSURL *url = _dw_url_from_program(nsprogram, ws);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10695 __block DWDialog *dialog = dw_dialog_new(NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10696
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10697 [ws openApplicationAtURL:url
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10698 configuration:[NSWorkspaceOpenConfiguration configuration]
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10699 completionHandler:^(NSRunningApplication *app, NSError *error) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10700 int pid = DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10701
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10702 if(error)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10703 NSLog(@"openApplicationAtURL: %@", [error localizedDescription]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10704 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10705 pid = [app processIdentifier];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10706 dw_dialog_dismiss(dialog, DW_INT_TO_POINTER(pid));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10707 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10708 ret = DW_POINTER_TO_INT(dw_dialog_wait(dialog));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10709 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10710 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10711 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10712 return ret;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10713 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10714
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10715 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10716 * Loads a web browser pointed at the given URL.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10717 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10718 * url: Uniform resource locator.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10719 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10720 int dw_browse(const char *url)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10721 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10722 NSURL *myurl = [NSURL URLWithString:[NSString stringWithUTF8String:url]];
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10723 [DWApp openURL:myurl options:@{}
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10724 completionHandler:^(BOOL success) {}];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10725 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10726 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10727
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10728 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10729 * Creates a new print object.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10730 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10731 * jobname: Name of the print job to show in the queue.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10732 * flags: Flags to initially configure the print object.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10733 * pages: Number of pages to print.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10734 * drawfunc: The pointer to the function to be used as the callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10735 * drawdata: User data to be passed to the handler function.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10736 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10737 * A handle to the print object or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10738 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10739 HPRINT API dw_print_new(const char *jobname, unsigned long flags, unsigned int pages, void *drawfunc, void *drawdata)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10740 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10741 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10742 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10743
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10744 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10745 * Runs the print job, causing the draw page callbacks to fire.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10746 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10747 * print: Handle to the print object returned by dw_print_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10748 * flags: Flags to run the print job.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10749 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10750 * DW_ERROR_UNKNOWN on error or DW_ERROR_NONE on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10751 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10752 int API dw_print_run(HPRINT print, unsigned long flags)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10753 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10754 return DW_ERROR_UNKNOWN;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10755 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10756
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10757 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10758 * Cancels the print job, typically called from a draw page callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10759 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10760 * print: Handle to the print object returned by dw_print_new().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10761 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10762 void API dw_print_cancel(HPRINT print)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10763 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10764 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10765
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10766 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10767 * Converts a UTF-8 encoded string into a wide string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10768 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10769 * utf8string: UTF-8 encoded source string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10770 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10771 * Wide string that needs to be freed with dw_free()
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10772 * or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10773 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10774 wchar_t * API dw_utf8_to_wchar(const char *utf8string)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10775 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10776 size_t buflen = strlen(utf8string) + 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10777 wchar_t *temp = malloc(buflen * sizeof(wchar_t));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10778 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10779 mbstowcs(temp, utf8string, buflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10780 return temp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10781 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10782
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10783 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10784 * Converts a wide string into a UTF-8 encoded string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10785 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10786 * wstring: Wide source string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10787 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10788 * UTF-8 encoded string that needs to be freed with dw_free()
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10789 * or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10790 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10791 char * API dw_wchar_to_utf8(const wchar_t *wstring)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10792 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10793 size_t bufflen = 8 * wcslen(wstring) + 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10794 char *temp = malloc(bufflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10795 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10796 wcstombs(temp, wstring, bufflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10797 return temp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10798 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10799
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10800 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10801 * Gets the state of the requested library feature.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10802 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10803 * feature: The requested feature for example DW_FEATURE_DARK_MODE
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10804 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10805 * DW_FEATURE_UNSUPPORTED if the library or OS does not support the feature.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10806 * DW_FEATURE_DISABLED if the feature is supported but disabled.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10807 * DW_FEATURE_ENABLED if the feature is supported and enabled.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10808 * Other value greater than 1, same as enabled but with extra info.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10809 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10810 int API dw_feature_get(DWFEATURE feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10811 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10812 switch(feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10813 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10814 case DW_FEATURE_NOTIFICATION:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10815 case DW_FEATURE_MLE_AUTO_COMPLETE:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10816 case DW_FEATURE_HTML:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10817 case DW_FEATURE_HTML_RESULT:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10818 case DW_FEATURE_CONTAINER_STRIPE:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10819 case DW_FEATURE_MLE_WORD_WRAP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10820 case DW_FEATURE_UTF8_UNICODE:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10821 return DW_FEATURE_ENABLED;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10822 case DW_FEATURE_DARK_MODE:
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10823 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10824 if(DWObj)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10825 {
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10826 NSMutableArray *array = [[NSMutableArray alloc] init];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10827 int retval = DW_FEATURE_UNSUPPORTED;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10828 NSNumber *number;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10829
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10830 [DWObj safeCall:@selector(getUserInterfaceStyle:) withObject:array];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10831 number = [array lastObject];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10832 if(number)
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10833 retval = [number intValue];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10834 return retval;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10835 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10836 return _dw_dark_mode_state;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10837 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10838 default:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10839 return DW_FEATURE_UNSUPPORTED;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10840 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10841 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10842
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10843 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10844 * Sets the state of the requested library feature.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10845 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10846 * feature: The requested feature for example DW_FEATURE_DARK_MODE
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10847 * state: DW_FEATURE_DISABLED, DW_FEATURE_ENABLED or any value greater than 1.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10848 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10849 * DW_FEATURE_UNSUPPORTED if the library or OS does not support the feature.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10850 * DW_ERROR_NONE if the feature is supported and successfully configured.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10851 * DW_ERROR_GENERAL if the feature is supported but could not be configured.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10852 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10853 * These settings are typically used during dw_init() so issue before
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10854 * setting up the library with dw_init().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10855 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10856 int API dw_feature_set(DWFEATURE feature, int state)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10857 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10858 switch(feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10859 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10860 /* These features are supported but not configurable */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10861 case DW_FEATURE_NOTIFICATION:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10862 case DW_FEATURE_MLE_AUTO_COMPLETE:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10863 case DW_FEATURE_HTML:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10864 case DW_FEATURE_HTML_RESULT:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10865 case DW_FEATURE_CONTAINER_STRIPE:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10866 case DW_FEATURE_MLE_WORD_WRAP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10867 case DW_FEATURE_UTF8_UNICODE:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10868 return DW_ERROR_GENERAL;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10869 case DW_FEATURE_DARK_MODE:
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10870 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10871 /* Make sure DWObj is initialized */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10872 if(DWObj)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10873 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10874 /* Disabled forces the non-dark aqua theme */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10875 if(state == DW_FEATURE_DISABLED)
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10876 [DWObj safeCall:@selector(setUserInterfaceStyle:) withObject:[NSNumber numberWithInt:UIUserInterfaceStyleLight]];
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10877 /* Enabled lets the OS decide the mode */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10878 else if(state == DW_FEATURE_ENABLED || state == DW_DARK_MODE_FULL)
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10879 [DWObj safeCall:@selector(setUserInterfaceStyle:) withObject:[NSNumber numberWithInt:UIUserInterfaceStyleUnspecified]];
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10880 /* 2 forces dark mode aqua appearance */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10881 else if(state == DW_DARK_MODE_FORCED)
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10882 [DWObj safeCall:@selector(setUserInterfaceStyle:) withObject:[NSNumber numberWithInt:UIUserInterfaceStyleDark]];
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10883 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10884 else /* Save the requested state for dw_init() */
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10885 _dw_dark_mode_state = state;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10886 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10887 default:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10888 return DW_FEATURE_UNSUPPORTED;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10889 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10890 }