annotate ios/dw.m @ 2599:32728f6f7ccd

iOS: Add UINavigationBar and DWView to the rootViewController's view. Instead of adding them directly to the DWWindow, so we don't need to hide the UITransitionView, so remove that code as well.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 10 Jul 2021 23:57:25 +0000
parents 4a5364fe65b7
children 0bb974e70435
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
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
272 void _dw_display_responder_chain(id window)
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
273 {
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
274 NSLog(@"=== Starting responder chain dump ===\n");
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
275 do {
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
276 NSLog(@"%@\n", [window description]);
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
277 } while((window = [window nextResponder]));
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
278 NSLog(@"=== Responder chain dump complete ===\n");
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
279 }
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
280
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
281 /* 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
282 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
283 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
284 static id lastwindow = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
285 id redraw = lastwindow;
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 if(skip && window == nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
288 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
289
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
290 lastwindow = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
291 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
292 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
293 dw_window_redraw(redraw);
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
296
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
297 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
298 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
299 SignalHandler *tmp = DWRoot;
2372
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 /* 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
302 while(tmp)
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 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
305 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
306 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
307 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
308 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
309 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
310 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
311 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
312
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
313 typedef struct
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
314 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
315 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
316 char name[30];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
317
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
318 } DWSignalList;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
319
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
320 /* List of signals */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
321 #define SIGNALMAX 19
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
322
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
323 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
324 { 1, DW_SIGNAL_CONFIGURE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
325 { 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
326 { 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
327 { 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
328 { 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
329 { 6, DW_SIGNAL_DELETE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
330 { 7, DW_SIGNAL_EXPOSE },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
331 { 8, DW_SIGNAL_CLICKED },
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
332 { 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
333 { 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
334 { 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
335 { 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
336 { 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
337 { 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
338 { 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
339 { 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
340 { 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
341 { 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
342 { 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
343 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
344
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
345 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
346 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
347 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
348 /* 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
349
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
350 if(handler)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
351 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
352 switch(message)
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 /* Timer event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
355 case 0:
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 (* 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
358
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
359 if(!timerfunc(handler->data))
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
360 dw_timer_disconnect(handler->window);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
361 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
362 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
363 /* Configure/Resize event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
364 case 1:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
365 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
366 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
367 CGSize size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
368
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
369 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
370 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
371 UIWindow *window = object;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
372 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
373 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
374 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
375 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
376 UIView *view = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
377 size = [view frame].size;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
380 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
381 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
382 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
383 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
384 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
385 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
386 case 2:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
387 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
388 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
389 int special = 0;
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
390 NSString *nchar = @"";
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
391 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
392 UIKey *key = event;
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
393
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
394 nchar = [key charactersIgnoringModifiers];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
395 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
396 } else {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
397 // 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
398 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
399 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
400 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
401
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
402 /* Handle a valid key */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
403 if([nchar length] == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
404 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
405 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
406 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
407 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
408 ch = tmp[0];
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 utf8 = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
411 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
412
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
413 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
414 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
415 /* 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
416 case 3:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
417 case 4:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
418 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
419 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
420 int button = 1;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
421 CGPoint p = {0};
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
422
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
423 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
424 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
425 UITouch *touch = [[event allTouches] anyObject];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
426
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
427 p = [touch locationInView:[touch view]];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
428
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
429 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
430 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
431 if([event buttonMask] & UIEventButtonMaskSecondary)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
432 button = 2;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
433 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
436 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
437 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
438 /* Motion notify event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
439 case 5:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
440 {
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
441 #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
442 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
443
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
444 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
445 #endif
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
446 return -1;
2372
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 /* Window close event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
449 case 6:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
450 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
451 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
452 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
453 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
454 /* Window expose/draw event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
455 case 7:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
456 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
457 DWExpose exp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
458 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
459 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
460
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
461 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
462 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
463 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
464 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
465 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
466 return result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
467 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
468 /* 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
469 case 8:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
470 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
471 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
472
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
473 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
474 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
475 /* Container class selection event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
476 case 9:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
478 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
479 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
480
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
481 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
482 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
483 /* Container context menu event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
484 case 10:
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 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
487 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
488 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
489 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
490 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
491 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
492
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
493 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
494 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
495 /* 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
496 case 11:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
497 case 14:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
498 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
499 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
500 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
501
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
502 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
503 }
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
504 /* 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
505 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
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 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
508 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
509 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
510 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
511
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 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
513 {
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
514 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
515
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
516 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
517 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
518 }
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
519
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
520 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
521 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
522 /* Set Focus event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
523 case 13:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
524 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
525 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
526
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
527 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
528 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
529 /* Notebook page change event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
530 case 15:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
531 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
532 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
533 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
534
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
535 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
536 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
537 /* Tree expand event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
538 case 16:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
539 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
540 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
541
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
542 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
543 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
544 /* Column click event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
545 case 17:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
546 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
547 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
548 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
549
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
550 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
551 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
552 /* HTML result event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
553 case 18:
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 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
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 *result = params[0];
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 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
560 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
561 /* HTML changed event */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
562 case 19:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
563 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
564 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
565 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
566 NSString *uri = params[1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
567
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
568 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
569 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
570 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
571 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
572 return -1;
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 /* 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
576 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
577 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
578 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
579 if(ret != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
580 _dw_redraw(nil, FALSE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
581 return ret;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
582 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
583
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
584 /* 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
585 @interface DWTimerHandler : NSObject { }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
586 -(void)runTimer:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
587 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
588
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
589 @implementation DWTimerHandler
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
590 -(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
591 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
592
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
593 @interface DWAppDel : UIResponder <UIApplicationDelegate> { }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
594 -(void)applicationWillTerminate:(UIApplication *)application;
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 @end
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
597
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
598 @implementation DWAppDel
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
599 -(void)applicationWillTerminate:(UIApplication *)application
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
600 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
601 /* 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
602 _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
603 }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
604 -(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
605 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
606 return true;
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
607 }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
608 @end
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
609
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
610 static UIApplication *DWApp = nil;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
611 static UIFont *DWDefaultFont;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
612 static DWTimerHandler *DWHandler;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
613 static NSMutableArray *_DWDirtyDrawables;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
614 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
615 static HEV DWMainEvent;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
616
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
617 /* 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
618 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
619 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
620 id src;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
621 id dest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
622 int xdest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
623 int ydest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
624 int width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
625 int height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
626 int xsrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
627 int ysrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
628 int srcwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
629 int srcheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
630 } DWBitBlt;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
631
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
632 /* 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
633 @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
634 {
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
635 /* 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
636 * 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
637 * 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
638 * 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
639 */
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
640 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
641 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
642 -(void)uselessThread:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
643 -(void)menuHandler:(id)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
644 -(void)doBitBlt:(id)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
645 -(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
646 -(UIWindow *)hiddenWindow;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
647 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
648
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
649 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
650 @interface DWMenu : NSObject
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
651 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
652 UIMenu *menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
653 NSMutableArray *children;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
654 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
655 unsigned long tag;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
656 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
657 -(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
658 -(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
659 -(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
660 -(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
661 -(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
662 -(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
663 -(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
664 -(void)dealloc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
665 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
666
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
667 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
668 @interface DWMenuItem : UICommand
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
669 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
670 BOOL check, enabled;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
671 unsigned long tag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
672 DWMenu *submenu, *menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
673 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
674 -(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
675 -(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
676 -(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
677 -(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
678 -(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
679 -(DWMenu *)submenu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
680 -(DWMenu *)menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
681 -(BOOL)check;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
682 -(BOOL)enabled;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
683 -(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
684 -(void)dealloc;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
685 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
686
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
687 /* 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
688 * 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
689 * 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
690 * 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
691 * 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
692 * going to work. -Brian
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
693 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
694
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
695 /* 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
696 @interface DWBox : UIView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
697 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
698 Box *box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
699 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
700 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
701 -(id)init;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
702 -(void)dealloc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
703 -(Box *)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
704 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
705 -(void)setUserdata:(void *)input;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
706 -(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
707 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
708
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
709 @implementation DWBox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
710 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
711 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
712 self = [super init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
713
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
714 if (self)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
715 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
716 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
717 box->type = DW_VERT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
718 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
719 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
720 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
721 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
722 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
723 -(void)dealloc
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
724 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
725 UserData *root = userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
726 if(box->items)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
727 free(box->items);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
728 free(box);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
729 _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
730 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
731 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
732 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
733 -(Box *)box { return box; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
734 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
735 -(void)setUserdata:(void *)input { userdata = input; }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
736 -(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
737 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
738
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
739 @interface DWWindow : UIWindow
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
740 {
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
741 DWMenu *windowmenu, *popupmenu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
742 int redraw;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
743 int shown;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
744 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
745 -(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
746 -(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
747 -(int)redraw;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
748 -(void)setRedraw:(int)val;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
749 -(int)shown;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
750 -(void)setShown:(int)val;
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
751 -(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
752 -(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
753 -(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
754 -(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
755 -(DWMenu *)popupMenu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
756 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
757
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
758 @implementation DWWindow
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
759 -(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
760 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
761 int rcode = -1;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
762 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
763 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
764 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
765 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
766 if ( rcode != TRUE )
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
767 [super sendEvent:theEvent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
768 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
769 -(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
770 -(int)redraw { return redraw; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
771 -(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
772 -(int)shown { return shown; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
773 -(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
774 -(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
775 -(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
776 -(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
777 -(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
778 -(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
779 -(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
780 {
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
781 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
782 [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
783 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
784 [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
785 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
786 [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
787 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
788 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
789
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
790 @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
791 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
792 UIImage *image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
793 CGContextRef cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
794 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
795 -(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
796 -(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
797 -(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
798 -(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
799 -(UIImage *)image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
800 -(CGContextRef)cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
801 -(void)dealloc;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
802 @end
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
803
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
804 /* 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
805 @interface DWRender : UIView
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
806 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
807 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
808 UIFont *font;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
809 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
810 DWImage *cachedImage;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
811 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
812 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
813 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
814 -(void)setFont:(UIFont *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
815 -(UIFont *)font;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
816 -(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
817 -(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
818 -(DWImage *)cachedImage;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
819 -(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
820 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
821
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
822 @implementation DWRender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
823 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
824 -(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
825 -(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
826 -(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
827 -(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
828 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
829 if(cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
830 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
831 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
832 UIImage *newimage;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
833 UIGraphicsBeginImageContext(self.frame.size);
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
834 [[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
835 newimage = UIGraphicsGetImageFromCurrentImageContext();
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
836 UIGraphicsEndImageContext();
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
837 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
838 [cachedImage retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
839 [oldimage release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
840 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
841 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
842 -(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
843 -(DWImage *)cachedImage {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
844 if(!cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
845 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
846 UIImage *newimage;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
847 UIGraphicsBeginImageContext(self.frame.size);
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
848 [[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
849 newimage = UIGraphicsGetImageFromCurrentImageContext();
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
850 UIGraphicsEndImageContext();
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
851 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
852 [cachedImage retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
853 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
854 /* 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
855 if(![_DWDirtyDrawables containsObject:self])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
856 [_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
857 return cachedImage;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
858 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
859 -(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
860 _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
861 if(cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
862 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
863 [[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
864 [_DWDirtyDrawables removeObject:self];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
865 [self setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
866 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
867 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
868 -(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
869 -(void)dealloc {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
870 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
871 _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
872 [font release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
873 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
874 [cachedImage release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
875 [_DWDirtyDrawables removeObject:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
876 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
877 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
878 -(BOOL)acceptsFirstResponder { return YES; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
879 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
880
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
881 @interface DWFontPickerDelegate : UIResponder <UIFontPickerViewControllerDelegate>
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
882 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
883 DWDialog *dialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
884 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
885 -(void)fontPickerViewControllerDidPickFont:(UIFontPickerViewController *)viewController;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
886 -(void)fontPickerViewControllerDidCancel:(UIFontPickerViewController *)viewController;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
887 -(void)setDialog:(DWDialog *)newdialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
888 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
889
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
890 @implementation DWFontPickerDelegate
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
891 -(void)fontPickerViewControllerDidPickFont:(UIFontPickerViewController *)viewController
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
892 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
893 if(viewController.selectedFontDescriptor)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
894 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
895 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
896 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
897 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
898 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
899 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
900 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
901 -(void)fontPickerViewControllerDidCancel:(UIFontPickerViewController *)viewController
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
902 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
903 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
904 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
905 -(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
906 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
907
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
908 @interface DWColorPickerDelegate : UIResponder <UIColorPickerViewControllerDelegate>
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
909 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
910 DWDialog *dialog;
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 -(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
913 -(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
914 -(void)setDialog:(DWDialog *)newdialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
915 @end
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 @implementation DWColorPickerDelegate
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
918 -(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
919 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
920 if([viewController selectedColor])
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
921 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
922 CGFloat red, green, blue;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
923 [[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
924 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
925 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
926 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
927 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
928 [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
929 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
930 -(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
931 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
932 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
933 [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
934 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
935 -(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
936 @end
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
937
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
938 @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
939 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
940 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
941 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
942 -(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
943 -(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
944 -(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
945 @end
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
946
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
947 @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
948 -(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
949 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
950 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
951 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
952
2593
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
953 if(url)
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
954 {
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
955 const char *tmp = [url fileSystemRepresentation];
2445
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
956
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
957 if(tmp)
2593
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
958 file = strdup(tmp);
2445
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
959 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
960 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
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 -(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
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 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
965 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
966 -(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
967 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
968
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
969 @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
970 -(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
971 {
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
972 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
973 /* 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
974 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
975 }
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
976 -(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
977 {
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
978 /* 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
979 * 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
980 * 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
981 */
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
982 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
983 [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
984 [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
985 [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
986 /* 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
987 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
988 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
989 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
990 -(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
991 -(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
992 -(void)menuHandler:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
993 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
994 _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
995 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
996 -(void)callBack:(NSPointerArray *)params
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
997 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
998 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
999 if(mycallback)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1000 mycallback(params);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1001 }
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1002 -(void)colorPicker:(NSMutableArray *)params
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1003 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1004 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
1005 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1006 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
1007 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
1008 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
1009
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1010 /* 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
1011 [picker setSupportsAlpha:NO];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1012 /* 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
1013 [hiddenWindow setHidden:NO];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1014 [hiddenWindow makeKeyAndVisible];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1015 [delegate setDialog:dialog];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1016 [picker setDelegate:delegate];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1017 /* 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
1018 [[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
1019 [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
1020 /* 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
1021 [hiddenWindow resignKeyWindow];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1022 [hiddenWindow setHidden:YES];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1023 [picker release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1024 [delegate release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1025 } else {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1026 // Fallback on earlier versions
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1027 };
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1028 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1029 -(void)fontPicker:(NSPointerArray *)params
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1030 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1031 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
1032 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
1033 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
1034 UIFont *font;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1035
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1036 /* 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
1037 [hiddenWindow setHidden:NO];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1038 [hiddenWindow makeKeyAndVisible];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1039 [delegate setDialog:dialog];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1040 [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
1041 /* 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
1042 [[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
1043 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
1044 /* 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
1045 [hiddenWindow resignKeyWindow];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1046 [hiddenWindow setHidden:YES];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1047
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1048 if(font)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1049 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1050 NSString *fontname = [font fontName];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1051 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
1052 [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
1053 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1054 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1055 [params addPointer:NULL];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1056 [picker release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1057 [delegate release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1058 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1059 -(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
1060 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1061 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
1062 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
1063 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
1064 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
1065 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
1066 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
1067 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
1068 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
1069 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
1070
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1071 /* 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
1072 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
1073 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
1074 /* 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
1075 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
1076 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
1077 else
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1078 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
1079 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
1080 [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
1081 [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
1082 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
1083 [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
1084 /* 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
1085 [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
1086 [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
1087 [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
1088 [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
1089 /* 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
1090 [[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
1091 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
1092 /* 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
1093 [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
1094 [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
1095 [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
1096 [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
1097 [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
1098 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1099 -(void)messageBox:(NSMutableArray *)params
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1100 {
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1101 __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
1102 NSInteger iResponse;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1103 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
1104 message:[params objectAtIndex:1]
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1105 preferredStyle:[[params objectAtIndex:2] integerValue]];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1106 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
1107 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
1108 [alert addAction:action];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1109 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
1110 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1111 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
1112 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
1113 [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
1114 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1115 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
1116 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1117 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
1118 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
1119 [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
1120 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1121
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1122 /* 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
1123 [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
1124 [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
1125 [[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
1126 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
1127 /* 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
1128 [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
1129 [hiddenWindow setHidden:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1130 [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
1131 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1132 -(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
1133 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1134 if([self respondsToSelector:sel])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1135 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1136 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1137
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1138 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
1139 [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
1140 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1141 [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
1142 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1143 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1144 -(void)doBitBlt:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1145 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1146 NSValue *bi = (NSValue *)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1147 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
1148 id bltdest = bltinfo->dest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1149 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
1150 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
1151
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1152 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1153 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
1154
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1155 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
1156 {
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1157 DWImage *rep = bltsrc;
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1158 UIImage *image = [rep image];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1159 CGBlendMode op = kCGBlendModeNormal;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1160
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1161 if(bltinfo->srcwidth != -1)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1162 {
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1163 [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
1164 /*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
1165 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
1166 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1167 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1168 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1169 [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
1170 /*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
1171 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
1172 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1173 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1174 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1175 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1176 free(bltinfo);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1177 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1178 -(void)doFlush:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1179 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1180 NSEnumerator *enumerator = [_DWDirtyDrawables objectEnumerator];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1181 DWRender *rend;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1182
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1183 while(rend = [enumerator nextObject])
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1184 [rend setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1185 [_DWDirtyDrawables removeAllObjects];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1186 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1187 -(void)doWindowFunc:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1188 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1189 NSValue *v = (NSValue *)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1190 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
1191 void (* windowfunc)(void *);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1192
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1193 if(params)
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 windowfunc = params[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1196 if(windowfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1197 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1198 windowfunc(params[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1199 }
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 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1202 -(void)getUserInterfaceStyle:(id)param
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1203 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1204 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
1205 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
1206 int retval;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1207
2459
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1208 switch(overridestyle)
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1209 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1210 case UIUserInterfaceStyleLight:
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1211 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
1212 break;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1213 case UIUserInterfaceStyleDark:
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1214 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
1215 break;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1216 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
1217 {
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1218 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
1219
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1220 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
1221 {
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1222 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
1223 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
1224 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1225 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
1226 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
1227 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1228 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
1229 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
1230 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1231 }
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1232 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1233 }
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1234 [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
1235 }
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1236 -(void)setUserInterfaceStyle:(id)param
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 NSNumber *number = param;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1239 UIUserInterfaceStyle style = [number intValue];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1240
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1241 [hiddenWindow setOverrideUserInterfaceStyle:style];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1242 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1243 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1244
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1245 DWObject *DWObj;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1246
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1247 /* 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
1248 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
1249 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1250 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
1251 return YES;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1252 return NO;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1253 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1254
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1255 @interface DWWebView : WKWebView <WKNavigationDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1256 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1257 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1258 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1259 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1260 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1261 -(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
1262 -(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
1263 -(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
1264 -(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
1265 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1266
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1267 @implementation DWWebView : WKWebView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1268 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1269 -(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
1270 -(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
1271 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1272 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
1273 _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
1274 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1275 -(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
1276 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1277 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
1278 _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
1279 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1280 -(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
1281 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1282 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
1283 _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
1284 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1285 -(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
1286 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1287 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
1288 _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
1289 }
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1290 -(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
1291 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1292
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1293 /* 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
1294 @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
1295 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1296 CGSize oldsize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1297 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1298 -(BOOL)windowShouldClose:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1299 -(void)windowDidBecomeMain:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1300 -(void)menuHandler:(id)sender;
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
1301 -(UIResponder *)nextResponder;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1302 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1303
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1304 @implementation DWView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1305 -(BOOL)windowShouldClose:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1306 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1307 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
1308 return NO;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1309 return YES;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1310 }
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1311 -(void)willMoveToSuperview:(UIView *)newSuperview
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1312 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1313 if(newSuperview)
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1314 [[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
1315 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1316 -(void)dealloc
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1317 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1318 [[NSNotificationCenter defaultCenter] removeObserver:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1319 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
1320 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1321 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1322 -(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
1323 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1324 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
1325 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1326 _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
1327 _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
1328 oldsize.width = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1329 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
1330 _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
1331 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1332 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1333 -(void)showWindow
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1334 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1335 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
1336
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1337 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
1338 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1339 _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
1340 _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
1341 }
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1344 -(void)windowDidBecomeMain:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1345 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1346 _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
1347 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1348 -(void)menuHandler:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1349 {
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
1350 [DWObj menuHandler:sender];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1351 }
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
1352 -(UIResponder *)nextResponder { return [[self window] rootViewController]; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1353 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1354
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1355 @interface DWViewController : UIViewController
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1356 -(void)viewWillLayoutSubviews;
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
1357 -(UIResponder *)nextResponder;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1358 @end
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1359
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1360
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1361 @implementation DWViewController : UIViewController {}
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1362 -(void)viewWillLayoutSubviews
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1363 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1364 DWWindow *window = (DWWindow *)[[self view] window];
2599
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
1365 NSArray *array = [[self view] 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
1366 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
1367 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
1368 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
1369 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
1370
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
1371 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
1372 {
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
1373 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
1374 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
1375 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
1376 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
1377 }
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
1378 /* 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
1379 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
1380 {
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
1381 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
1382
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
1383 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
1384 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
1385 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
1386 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
1387 [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
1388
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
1389 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
1390 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
1391 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
1392
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 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
1394 {
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
1395 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
1396 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
1397 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
1398 }
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 } 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
1400 // 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
1401 }
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 }
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
1403 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
1404 /* 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
1405 * 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
1406 */
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
1407 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
1408 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
1409 [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
1410 [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
1411 }
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
1412 -(UIResponder *)nextResponder { return [[self viewIfLoaded] window]; }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1413 @end
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1414
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1415 #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
1416 #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
1417 #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
1418
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1419 /* 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
1420 @interface DWButton : UIButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1421 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1422 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1423 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
1424 int type, state;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1425 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1426 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1427 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1428 -(void)buttonClicked:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1429 -(void)setParent:(DWBox *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1430 -(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
1431 -(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
1432 -(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
1433 -(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
1434 -(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
1435 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1436
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1437 @implementation DWButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1438 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1439 -(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
1440 -(void)buttonClicked:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1441 {
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1442 /* 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
1443 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
1444 [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
1445 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
1446 [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
1447
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1448 _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
1449
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1450 /* 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
1451 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
1452 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1453 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
1454 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
1455 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
1456
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1457 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
1458 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1459 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
1460 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1461 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
1462
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1463 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
1464 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1465 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
1466
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1467 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
1468 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1469 [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
1470 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1471 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1472 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1473 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1474 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1475 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1476 -(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
1477 -(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
1478 -(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
1479 -(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
1480 -(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
1481 {
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1482 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
1483
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1484 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
1485 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1486 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
1487 {
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(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
1490 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
1491 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
1492 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
1493 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1494 break;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1495 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
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(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
1498 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
1499 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
1500 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
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 break;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1503 }
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1504 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
1505 {
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1506 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
1507 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
1508 [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
1509 [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
1510 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1511 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1512 -(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
1513 -(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
1514 -(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
1515 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1516
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1517 /* 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
1518 @interface DWPercent : UIProgressView
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1519 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1520 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1521 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1522 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1523 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1524 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1525
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1526 @implementation DWPercent
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1527 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1528 -(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
1529 -(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
1530 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1531
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1532 /* 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
1533 @implementation DWMenuItem
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1534 -(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
1535 -(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
1536 -(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
1537 -(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
1538 -(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
1539 -(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
1540 -(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
1541 -(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
1542 -(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
1543 -(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
1544 -(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
1545 @end
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1546 /*
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1547 * 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
1548 * 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
1549 * 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
1550 */
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1551 @implementation DWMenu
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1552 -(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
1553 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1554 self = [super init];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1555 if(self)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1556 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1557 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
1558 tag = newtag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1559 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1560 return self;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1561 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1562 -(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
1563 -(UIMenu *)menu
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1564 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1565 /* 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
1566 UIMenu *oldmenu = menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1567 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
1568
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1569 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
1570 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1571 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
1572 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1573 DWMenuItem *menuitem = child;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1574 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
1575
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1576 if(submenu)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1577 [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
1578 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1579 [menuchildren addObject:child];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1580 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1581 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1582 if(title)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1583 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
1584 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1585 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1586 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
1587 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
1588 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1589 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
1590 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1591 if(oldmenu)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1592 [oldmenu release];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1593 return 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 -(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
1596 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1597 [children addObject:item];
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 -(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
1600 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1601 [children removeObject:item];
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 -(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
1604 -(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
1605 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1606 if(tag > 0)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1607 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1608 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
1609 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1610 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
1611 return child;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1612 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1613 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1614 return nil;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1615 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1616 -(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
1617 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1618
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1619 @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
1620 -(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
1621 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1622 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
1623 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1624 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1625 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1626 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
1627 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
1628 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
1629 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
1630 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
1631 CGContextRelease(cgcontext);
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1632 [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
1633 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1634 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1635 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1636 -(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
1637 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1638 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
1639 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1640 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1641 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
1642 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1643 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1644 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1645 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1646 -(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
1647 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1648 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
1649 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1650 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1651 image = newimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1652 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1653 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1654 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1655 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1656 -(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
1657 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1658 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
1659 image = input;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1660 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1661 [oldimage release];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1662 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1663 -(UIImage *)image
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1664 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1665 /* 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
1666 if(cgcontext)
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 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
1669 CGImageRef cgimage;
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 /* 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
1672 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
1673 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
1674 CGContextRelease(cgcontext);
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1675 cgcontext = nil;
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1676 [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
1677 [oldimage release];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1678 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1679 return image;
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 -(CGContextRef)cgcontext
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1682 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1683 /* 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
1684 * 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
1685 */
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1686 if(!cgcontext)
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 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
1689 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
1690
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1691 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
1692 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
1693 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
1694 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
1695 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1696 return 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 -(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
1699 @end
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1700
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1701 /* 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
1702 @interface DWScrollBox : UIScrollView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1703 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1704 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1705 id box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1706 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1707 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1708 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1709 -(void)setBox:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1710 -(id)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1711 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1712
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1713 @implementation DWScrollBox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1714 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1715 -(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
1716 -(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
1717 -(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
1718 -(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
1719 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1720
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1721 @interface DWEntryFieldFormatter : NSFormatter
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1722 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1723 int maxLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1724 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1725 - (void)setMaximumLength:(int)len;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1726 - (int)maximumLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1727 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1728
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1729 /* 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
1730 * 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
1731 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1732 @implementation DWEntryFieldFormatter
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1733 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1734 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1735 self = [super init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1736 maxLength = INT_MAX;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1737 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1738 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1739 -(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
1740 -(int)maximumLength { return maxLength; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1741 -(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
1742 -(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
1743 -(BOOL)isPartialStringValid:(NSString **)partialStringPtr
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1744 proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1745 originalString:(NSString *)origString
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1746 originalSelectedRange:(NSRange)origSelRange
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1747 errorDescription:(NSString **)error
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1748 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1749 if([*partialStringPtr length] > maxLength)
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 return NO;
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 return YES;
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 -(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
1756 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1757
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1758 /* 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
1759 @interface DWEntryField : UITextField
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1760 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1761 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1762 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1763 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1764 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1765 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1766 -(void)setClickDefault:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1767 @end
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 @implementation DWEntryField
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1770 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1771 -(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
1772 -(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
1773 -(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
1774 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1775
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1776 /* 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
1777 @interface DWText : UILabel
2372
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 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1780 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1781 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1782 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1783 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1784 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1785
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1786 @implementation DWText
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1787 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1788 -(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
1789 -(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
1790 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1791
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1792 /* 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
1793 @interface DWNotebookPage : DWBox
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1794 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1795 int pageid;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1796 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1797 -(int)pageid;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1798 -(void)setPageid:(int)input;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1799 @end
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1800
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1801 /* 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
1802 @interface DWNotebook : UIView
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1803 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1804 UISegmentedControl *tabs;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1805 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1806 int pageid;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1807 NSMutableArray<DWNotebookPage *> *views;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1808 DWNotebookPage *visible;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1809 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1810 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1811 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1812 -(int)pageid;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1813 -(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
1814 -(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
1815 -(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
1816 -(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
1817 -(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
1818 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1819
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1820 @implementation DWNotebook
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1821 -(id)init {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1822 self = [super init];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1823 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
1824 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
1825 [self addSubview:tabs];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1826 return self;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1827 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1828 -(void)setFrame:(CGRect)frame {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1829 [super setFrame:frame];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1830 frame.size.height = 40;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1831 [tabs setFrame:frame];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1832 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1833 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1834 -(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
1835 -(int)pageid { return pageid; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1836 -(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
1837 -(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
1838 -(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
1839 -(NSMutableArray<DWNotebookPage *> *)views { return views; };
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
1840 -(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
1841 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1842 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
1843
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
1844 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
1845 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1846 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
1847
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1848 /* 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
1849 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
1850 [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
1851
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1852 /* 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
1853 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
1854 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1855 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
1856 /* 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
1857 * 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
1858 */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1859 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
1860 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
1861 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
1862 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
1863 [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
1864 [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
1865 visible = page;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1866 _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
1867 _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
1868 }
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
1869 _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
1870 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1871 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1872 -(void)dealloc {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1873 UserData *root = userdata;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1874 _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
1875 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
1876 [tabs release];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1877 [views release];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1878 [super dealloc];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
1879 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1880 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1881
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1882 @implementation DWNotebookPage
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1883 -(int)pageid { return pageid; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1884 -(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
1885 -(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
1886 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1887
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1888 /* 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
1889 @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
1890 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1891 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1892 float percent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1893 NSInteger Tag;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1894 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1895 -(void)splitViewDidResizeSubviews:(NSNotification *)aNotification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1896 -(void)setTag:(NSInteger)tag;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1897 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1898 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1899 -(float)percent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1900 -(void)setPercent:(float)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1901 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1902
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1903 @implementation DWSplitBar
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1904 -(void)splitViewDidResizeSubviews:(NSNotification *)aNotification
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1905 {
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
1906 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
1907 id object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1908
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1909 for(object in views)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1910 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1911 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
1912 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1913 DWBox *view = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1914 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
1915 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
1916 _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
1917 _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
1918 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1919 }
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)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
1922 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1923 -(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
1924 -(float)percent { return percent; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1925 -(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
1926 -(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
1927 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1928
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1929 /* 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
1930 @interface DWSlider : UISlider
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1931 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1932 void *userdata;
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1933 BOOL vertical;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1934 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1935 -(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
1936 -(BOOL)vertical;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1937 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1938 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1939 -(void)sliderChanged:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1940 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1941
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1942 @implementation DWSlider
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1943 -(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
1944 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1945 if(vert)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1946 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1947 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
1948 self.transform = trans;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1949 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1950 vertical = vert;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1951 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
1952 -(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
1953 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1954 -(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
1955 -(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
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 MLE type */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1960 @interface DWMLE : UITextView
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;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1963 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1964 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1965 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1966 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1967
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1968 @implementation DWMLE
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1969 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1970 -(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
1971 -(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
1972 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1973
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
1974 /* 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
1975 * 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
1976 */
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
1977 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
1978 {
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
1979 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
1980 [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
1981
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1982 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
1983 [[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
1984 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
1985 [[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
1986 return browsercell;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1987 }
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 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
1990 @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
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 NSMutableArray *tvcols;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1994 NSMutableArray *data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1995 NSMutableArray *types;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1996 NSPointerArray *titles;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1997 NSPointerArray *rowdatas;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1998 UIColor *fgcolor, *oddcolor, *evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1999 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
2000 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
2001 int iLastAddPoint, iLastQueryPoint;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2002 int filesystem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2003 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2004 -(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
2005 -(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
2006 -(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
2007 -(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
2008 -(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
2009 -(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
2010 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2011 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2012 -(void)setFilesystem:(int)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2013 -(int)filesystem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2014 -(int)addRow:(NSArray *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2015 -(int)addRows:(int)number;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2016 -(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
2017 -(void)removeRow:(int)row;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2018 -(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
2019 -(void *)getRowTitle:(int)row;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2020 -(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
2021 -(int)cellType:(int)col;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2022 -(int)lastAddPoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2023 -(int)lastQueryPoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2024 -(void)setLastQueryPoint:(int)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2025 -(void)clear;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2026 -(void)setup;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2027 -(CGSize)getsize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2028 -(void)setForegroundColor:(UIColor *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2029 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2030
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2031 @implementation DWContainer
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2032 -(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
2033 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2034 /* 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
2035 if(tvcols && data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2036 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2037 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
2038 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
2039 if(cols && total)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2040 return total / cols;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2041 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2042 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2043 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2044 -(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
2045 {
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2046 /* 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
2047 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
2048 id celldata = [data objectAtIndex:index];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2049
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2050 /* 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
2051 if([celldata isMemberOfClass:[UITableViewCell class]])
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2052 {
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2053 UITableViewCell *result = celldata;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2054
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2055 /* 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
2056 * 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
2057 */
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2058 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
2059 [[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
2060
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2061 /* Return the result */
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2062 return result;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2063 }
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2064 return nil;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2065 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2066 -(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
2067 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2068 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
2069 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2070 if(evencolor)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2071 [cell setBackgroundColor:evencolor];
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2072 }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2073 else
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2074 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2075 if(oddcolor)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2076 [cell setBackgroundColor:oddcolor];
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2077 }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2078 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2079 -(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
2080 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2081 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
2082 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
2083 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
2084
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2085 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
2086 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
2087 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
2088 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
2089
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
2090 _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
2091
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2092 if(window)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2093 {
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
2094 __block UIMenu *popupmenu = [[window popupMenu] menu];
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
2095 _dw_display_responder_chain(tableView);
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2096 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
2097 previewProvider:nil
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2098 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
2099 [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
2100 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2101 return config;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2102 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2103 -(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
2104 -(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
2105 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2106 -(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
2107 -(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
2108 -(int)filesystem { return filesystem; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2109 -(void)refreshColors
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2110 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2111 UIColor *oldodd = oddcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2112 UIColor *oldeven = evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2113 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
2114 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
2115 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
2116 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
2117
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2118 /* 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
2119 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
2120 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
2121 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2122 oddcolor = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2123 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
2124 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
2125 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2126 evencolor = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2127 [oldodd release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2128 [oldeven release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2129 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2130 -(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
2131 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2132 /* 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
2133 dw_oddcolor = oddcol;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2134 dw_evencolor = evencol;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2135 [self refreshColors];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2136 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2137 -(void)checkDark
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2138 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2139 /* 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
2140 _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
2141 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
2142 _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
2143 else
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
2144 _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
2145 /* 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
2146 if(titles)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2147 [self refreshColors];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2148 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2149 -(void)viewDidChangeEffectiveAppearance { [self checkDark]; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2150 -(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
2151 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2152 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2153 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2154 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
2155 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
2156 if(index < iLastAddPoint)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2157 {
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2158 iLastAddPoint++;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2159 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2160 [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
2161 [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
2162 [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
2163 [set release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2164 return (int)[titles count];
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 return 0;
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 -(int)addRow:(NSArray *)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2169 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2170 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2171 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2172 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
2173 [data addObjectsFromArray:input];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2174 [titles addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2175 [rowdatas addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2176 return (int)[titles count];
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 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2179 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2180 -(int)addRows:(int)number
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2181 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2182 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2183 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2184 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
2185 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2186
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2187 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
2188
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2189 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
2190 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2191 [data addObject:[NSNull null]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2192 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2193 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
2194 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2195 [titles addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2196 [rowdatas addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2197 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2198 return (int)[titles count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2199 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2200 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2201 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2202 -(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
2203 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2204 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2205 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2206 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
2207 if(index < [data count])
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 if(!input)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2210 input = [NSNull null];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2211 [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
2212 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2213 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2214 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2215 -(void)removeRow:(int)row
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2216 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2217 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2218 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2219 int z, start, end;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2220 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
2221 void *oldtitle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2222
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2223 start = (count * row);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2224 end = start + count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2225
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2226 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
2227 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2228 [data removeObjectAtIndex:start];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2229 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2230 oldtitle = [titles pointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2231 [titles removePointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2232 [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
2233 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
2234 {
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2235 iLastAddPoint--;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2236 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2237 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2238 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2239 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2240 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2241 -(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
2242 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2243 if(titles && input)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2244 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2245 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
2246 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
2247 [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
2248 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2249 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2250 }
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 -(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
2253 -(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
2254 -(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
2255 -(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
2256 -(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
2257 -(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
2258 -(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
2259 -(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
2260 -(void)clear
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2261 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2262 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2263 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2264 [data removeAllObjects];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2265 while([titles count])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2266 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2267 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
2268 [titles removePointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2269 [rowdatas removePointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2270 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2271 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2272 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2273 }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2274 iLastAddPoint = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2275 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2276 -(void)setup
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2277 {
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
2278 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
2279 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
2280 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
2281 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
2282 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
2283 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
2284 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
2285 [self checkDark];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2286 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2287 -(CGSize)getsize
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2288 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2289 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
2290
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2291 if(tvcols)
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 int colcount = (int)[tvcols count];
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
2294 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
2295 int width = 0;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2296
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2297 if(rowcount > 0)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2298 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2299 int x;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2300
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2301 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
2302 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2303 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
2304 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
2305
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2306 if([cell imageView])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2307 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2308 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
2309 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
2310 }
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2311 if([cell textLabel])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2312 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2313 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
2314 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
2315 if(textheight > thisheight)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2316 thisheight = textheight;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2317 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2318
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2319 cheight += thisheight;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2320
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2321 if(thiswidth > width)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2322 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2323 width = thiswidth;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2324 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2325 }
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2326 /* 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
2327 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
2328 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2329 width = 16;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2330 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2331 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2332 if(width)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2333 cwidth += width;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2334 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2335 cwidth += 16;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2336 cheight += 16;
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2337 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
2338 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2339 -(void)setForegroundColor:(UIColor *)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2340 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2341 UIColor *oldfgcolor = fgcolor;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2342
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2343 fgcolor = input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2344 [fgcolor retain];
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2345 [oldfgcolor release];
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 -(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
2348 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2349 void *params[2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2350
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2351 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
2352 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
2353
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2354 /* 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
2355 if([self allowsMultipleSelection])
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2356 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2357 /* 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
2358 _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
2359 /* 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
2360 _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
2361 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2362 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
2363 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2364 /* 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
2365 _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
2366 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2367 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2368 -(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
2369 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2370 if([self allowsMultipleSelection])
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2371 [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
2372 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2373 -(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
2374 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2375
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2376 /* 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
2377 @interface DWCalendar : UIDatePicker
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2378 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2379 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2380 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2381 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2382 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2383 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2384
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2385 @implementation DWCalendar
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2386 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2387 -(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
2388 -(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
2389 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2390
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2391 /* 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
2392 /* 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
2393 @interface DWStepper : UIStepper
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2394 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2395 id textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2396 id parent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2397 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2398 -(void)setTextfield:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2399 -(id)textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2400 -(void)setParent:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2401 -(id)parent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2402 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2403
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2404 @implementation DWStepper
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2405 -(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
2406 -(id)textfield { return textfield; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2407 -(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
2408 -(id)parent { return parent; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2409 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2410
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2411 /* 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
2412 @interface DWSpinButton : UIView <UITextFieldDelegate>
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 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2415 UITextField *textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2416 DWStepper *stepper;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2417 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2418 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2419 -(id)init;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2420 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2421 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2422 -(UITextField *)textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2423 -(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
2424 -(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
2425 -(void)setClickDefault:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2426 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2427
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2428 @implementation DWSpinButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2429 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2430 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2431 self = [super init];
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 if(self)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2434 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2435 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
2436 [self addSubview:textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2437 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
2438 [self addSubview:stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2439 [stepper setParent:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2440 [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
2441 [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
2442 [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
2443 [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
2444 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2445 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2446 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2447 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2448 -(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
2449 -(UITextField *)textfield { return textfield; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2450 -(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
2451 -(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
2452 {
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2453 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
2454 [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
2455 [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
2456 _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
2457 }
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2458 -(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
2459 {
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
2460 [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
2461 _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
2462 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2463 -(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
2464 -(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
2465 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2466
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2467 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
2468 @interface DWUserNotificationCenterDelegate : NSObject <UNUserNotificationCenterDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2469 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2470
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2471 @implementation DWUserNotificationCenterDelegate
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2472 /* 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
2473 -(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
2474 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2475 completionHandler(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2476 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2477 /* 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
2478 -(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
2479 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2480 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
2481 unsigned long long handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2482 HWND notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2483
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2484 /* 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
2485 [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
2486 [objScanner scanUnsignedLongLong:&handle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2487 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
2488
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2489 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
2490 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2491 /* 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
2492 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
2493 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2494 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
2495 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2496 /* 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
2497 _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
2498 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
2499 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2500 completionHandler();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2501 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2502 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2503
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2504 @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
2505 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2506 UIPickerView* pickerView;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2507 NSMutableArray* dataArray;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2508 UIBarStyle toolbarStyle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2509 int selectedIndex;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2510 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2511 -(void)setToolbarStyle:(UIBarStyle)style;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2512 -(void)append:(NSString *)item;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2513 -(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
2514 -(void)clear;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2515 -(int)count;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2516 -(NSString *)getTextAtIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2517 -(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
2518 -(void)deleteAtIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2519 -(int)selectedIndex;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2520 @end
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2521
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2522 @implementation DWComboBox
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2523 -(id)init
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2524 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2525 self = [super init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2526 if(self)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2527 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2528 [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
2529
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2530 /* Set UI defaults */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2531 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
2532 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
2533
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2534 /* Setup the arrow image */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2535 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
2536 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
2537 [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
2538 [self setRightView:imageButton];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2539 [self setRightViewMode:UITextFieldViewModeAlways];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2540 [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
2541 selectedIndex = -1;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2542 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2543 return self;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2544 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2545 -(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
2546 -(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
2547 -(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
2548 -(void)clear { [dataArray removeAllObjects]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2549 -(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
2550 -(NSString *)getTextAtIndex:(int)index
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2551 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2552 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
2553 return [dataArray objectAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2554 return nil;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2555 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2556 -(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
2557 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2558 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
2559 [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
2560 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2561 -(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
2562 -(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
2563 -(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
2564 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2565 selectedIndex = (int)row;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2566 [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
2567 [self sendActionsForControlEvents:UIControlEventValueChanged];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2568 _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
2569 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2570 -(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
2571 -(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
2572 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2573 return [dataArray objectAtIndex:row];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2574 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2575 -(void)doneClicked:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2576 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2577 /* Hides the pickerView */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2578 [self resignFirstResponder];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2579
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2580 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
2581 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2582 selectedIndex = -1;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2583 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2584 [self sendActionsForControlEvents:UIControlEventValueChanged];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2585 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2586 -(void)cancelClicked:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2587 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2588 /* 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
2589 [self resignFirstResponder];
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2590 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2591 -(void)showPicker:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2592 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2593 pickerView = [[UIPickerView alloc] init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2594 [pickerView setDataSource:self];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2595 [pickerView setDelegate:self];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2596
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2597 /* 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
2598 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
2599 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2600 [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
2601 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2602 else
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 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
2605 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2606 [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
2607 }
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
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2610 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
2611 [toolbar setBarStyle:toolbarStyle];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2612 [toolbar sizeToFit];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2613
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2614 /* Space between buttons */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2615 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
2616 target:nil
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2617 action:nil];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2618
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2619 UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2620 initWithTitle:@"Done"
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2621 style:UIBarButtonItemStyleDone
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2622 target:self
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2623 action:@selector(doneClicked:)];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2624
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2625 UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2626 initWithTitle:@"Cancel"
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2627 style:UIBarButtonItemStylePlain
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2628 target:self
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2629 action:@selector(cancelClicked:)];
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 [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
2632
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2633 /* Custom input view */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2634 [self setInputView:pickerView];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2635 [self setInputAccessoryView:toolbar];
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 -(int)selectedIndex { return selectedIndex; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2638 @end
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
2639
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2640 /* 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
2641 * 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
2642 * 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
2643 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2644 @interface DWMDI : DWBox {}
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2645 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2646
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2647 @implementation DWMDI
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2648 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2649
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2650 /* 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
2651 */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2652 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
2653 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2654 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
2655
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2656 new->message = message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2657 new->window = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2658 new->id = msgid;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2659 new->signalfunction = signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2660 new->discfunction = discfunc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2661 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2662 new->next = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2663
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2664 if (!DWRoot)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2665 DWRoot = new;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2666 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2667 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2668 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
2669 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2670 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2671 if(tmp->message == message &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2672 tmp->window == window &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2673 tmp->id == msgid &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2674 tmp->signalfunction == signalfunction)
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 tmp->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2677 free(new);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2678 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2679 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2680 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2681 tmp = tmp->next;
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 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2684 prev->next = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2685 else
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2686 DWRoot = new;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2687 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2688 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2689
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2690 /* 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
2691 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
2692 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2693 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2694
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2695 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
2696 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2697 if(strcasecmp(signame, DWSignalTranslate[z].name) == 0)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2698 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
2699 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2700 return 0L;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2701 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2702
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
2703 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
2704
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2705 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
2706 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2707 int z;
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 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
2710 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2711 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
2712
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2713 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
2714 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2715 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
2716
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2717 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2718 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2719 _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
2720 }
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 else
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 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
2725 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2726 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
2727 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
2728 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
2729
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2730 /* Eliminate duplicate configure requests */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2731 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
2732 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2733 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
2734 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2735 [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
2736 _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
2737 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2738 }
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 /* 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
2741 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
2742 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2743 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
2744 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
2745
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
2746 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
2747 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2748 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
2749
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2750 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
2751 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2752 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
2753 _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
2754 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2755 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2756 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2757 /* 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
2758 * 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
2759 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2760 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
2761 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2762 DWScrollBox *scrollbox = (DWScrollBox *)handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2763 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2764 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
2765 Box *thisbox = [contentbox box];
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 /* 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
2768 _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
2769 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2770 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2771 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2772 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2773
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2774 /* 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
2775 * 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
2776 */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2777 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
2778 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2779 /* Current item position */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2780 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
2781 /* 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
2782 * 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
2783 * 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
2784 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2785 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
2786 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
2787
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2788 /* Reset the box sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2789 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
2790
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2791 /* 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
2792 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
2793 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2794 int itempad, itemwidth, itemheight;
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 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
2797 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2798 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
2799 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
2800
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2801 if(tmp)
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 /* 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
2804 if(pass == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2805 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2806 (*depth)++;
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 /* 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
2809 _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
2810
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2811 /* 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
2812 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
2813 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
2814
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2815 /* 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
2816 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
2817 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
2818 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
2819 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
2820
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2821 (*depth)--;
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 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2826 /* 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
2827 * 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
2828 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2829 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
2830 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
2831 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
2832
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2833 /* 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
2834 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
2835 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2836 if(itemwidth > uxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2837 uxmax = itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2838
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2839 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
2840 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2841 if(itemwidth > upxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2842 upxmax = itemwidth;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2845 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2846 if(itempad > upxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2847 upxmax = itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2848 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2849 thisbox->minheight += itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2850 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
2851 thisbox->usedpady += itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2852 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2853 thisbox->usedpady += itempad;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2856 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2857 if(itemheight > uymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2858 uymax = itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2859 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
2860 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2861 if(itemheight > upymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2862 upymax = itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2863 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2864 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2865 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2866 if(itempad > upymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2867 upymax = itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2868 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2869 thisbox->minwidth += itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2870 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
2871 thisbox->usedpadx += itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2872 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2873 thisbox->usedpadx += itempad;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2876
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2877 /* 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
2878 thisbox->minwidth += uxmax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2879 thisbox->minheight += uymax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2880 thisbox->usedpadx += upxmax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2881 thisbox->usedpady += upymax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2882
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2883 /* 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
2884 if(pass > 1)
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 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
2887 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2888 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
2889 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
2890 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
2891 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
2892
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2893 /* Calculate the new sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2894 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
2895 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2896 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
2897 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2898 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
2899
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2900 if(expandablex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2901 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
2902 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2903 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2904 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
2905 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2906 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
2907 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2908 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
2909 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2910 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
2911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2912 if(expandabley)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2913 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
2914 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2915 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2916 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
2917 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2918
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2919 /* 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
2920 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
2921 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2922 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
2923 id handle = thisbox->items[z].hwnd;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2924 CGRect rect;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2925
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2926 rect.origin.x = currentx + pad;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2927 rect.origin.y = currenty + pad;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2928 rect.size.width = width;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2929 rect.size.height = height;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2930 [handle setFrame:rect];
2372
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 /* 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
2933 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
2934 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2935 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
2936 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
2937
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2938 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2939 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2940 (*depth)++;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2941 _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
2942 (*depth)--;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2945
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2946 /* 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
2947 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
2948 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2949 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
2950 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
2951
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2952 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
2953 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2954 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
2955 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2956 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
2957
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2958 /* 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
2959 [[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
2960 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
2961 [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
2962 [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
2963 }
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2964 }
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2965
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
2966 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
2967 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2968 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
2969
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2970 /* 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
2971 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
2972 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2973 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
2974 /* 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
2975 * 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
2976 */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2977 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
2978 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
2979 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
2980 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
2981 [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
2982 _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
2983 _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
2984 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2985 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2986 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2987 /* 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
2988 * 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
2989 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2990 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
2991 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2992 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2993 DWScrollBox *scrollbox = (DWScrollBox *)handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2994 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2995 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
2996 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
2997 /* 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
2998 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
2999
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3000 /* 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
3001 _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
3002
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
3003 /* 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
3004 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
3005 {
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
3006 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
3007 }
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
3008 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
3009 {
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
3010 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
3011 }
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
3012 [scrollbox setContentSize:frame.size];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3013 [contentbox setFrame:frame];
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 /* 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
3016 _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
3017 _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
3018 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3019 /* 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
3020 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
3021 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3022 DWSpinButton *spinbutton = (DWSpinButton *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3023 UITextField *textfield = [spinbutton textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3024 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
3025 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
3026 [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
3027 [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
3028 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3029 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
3030 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3031 DWSplitBar *split = (DWSplitBar *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3032 float percent = [split percent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3033
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3034 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
3035 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3036 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
3037 [split setPercent:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3038 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3039 [split splitViewDidResizeSubviews:nil];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3040 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3041
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3042 /* 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
3043 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
3044 currentx += width + (pad * 2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3045 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
3046 currenty += height + (pad * 2);
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3049 }
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
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3052 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
3053 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3054 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
3055 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3056 if(thisbox)
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 int depth = 0;
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 /* 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
3061 _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
3062
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3063 /* 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
3064 _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
3065 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3066 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3067 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3068
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 * 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
3071 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3072 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
3073 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3074 /* 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
3075 * 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
3076 * 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
3077 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3078 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
3079 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3080
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3081 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3082 * 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
3083 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3084 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
3085 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3086 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
3087 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3090 * 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
3091 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3092 * 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
3093 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3094 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
3095 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3096 DWTID curr = pthread_self();
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 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
3099 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3100 DWTID orig = DWThread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3101 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
3102
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3103 if(orig == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3104 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3105 DWThread = curr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3106 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3107 /* Process any pending events */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3108 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
3109 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3110 /* Just loop */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3111 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3112 if(orig == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3113 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3114 DWThread = orig;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3115 }
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 else
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 usleep(milliseconds * 1000);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3120 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3121 }
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 /* 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
3124 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
3125 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
3126 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
3127 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3130 * 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
3131 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3132 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
3133 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3134 DWTID curr = pthread_self();
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 if(DWThread == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3137 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3138 DWThread = curr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3139 _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
3140 DWThread = (DWTID)-1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3141 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3142 else if(DWThread == curr)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3143 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3144 _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
3145 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3146 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3149 * 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
3150 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3151 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
3152 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3153 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3154
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3155 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3156 * 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
3157 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3158 * 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
3159 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3160 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
3161 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3162 dw_shutdown();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3163 exit(exitcode);
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
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 * 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
3168 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3169 * 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
3170 * 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
3171 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3172 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
3173 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3174 free(ptr);
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 * 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
3179 * 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
3180 * OS/2 and Windows).
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 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
3183 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3184 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
3185
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3186 if(!_user_dir[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3187 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3188 char *home = getenv("HOME");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3189
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3190 if(home)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3191 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
3192 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3193 strcpy(_user_dir, "/");
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 return _user_dir;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3196 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3197
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3198 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3199 * 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
3200 * private application data directory.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3201 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3202 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
3203 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3204 return _dw_bundle_path;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3208 * 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
3209 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3210 * 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
3211 * 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
3212 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3213 * 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
3214 * 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
3215 * 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
3216 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3217 * 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
3218 * 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
3219 * 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
3220 * 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
3221 * 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
3222 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3223 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
3224 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3225 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
3226 return DW_ERROR_NONE;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3229 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3230 * 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
3231 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3232 * 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
3233 * ...: 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
3234 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3235 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
3236 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3237 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3238 char outbuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3239
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3240 va_start(args, format);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3241 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
3242 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3243
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3244 NSLog(@"%s", outbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3245 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3246
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3247 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3248 * 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
3249 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3250 * 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
3251 * 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
3252 * 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
3253 * ...: 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
3254 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3255 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
3256 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3257 NSInteger iResponse;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3258 NSString *button1 = @"OK";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3259 NSString *button2 = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3260 NSString *button3 = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3261 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
3262 NSString *mtext;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3263 UIAlertControllerStyle mstyle = UIAlertControllerStyleAlert;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3264 NSArray *params;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3265 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3266
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3267 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
3268 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3269 button2 = @"Cancel";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3270 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3271 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
3272 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3273 button1 = @"Yes";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3274 button2 = @"No";
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 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
3277 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3278 button1 = @"Yes";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3279 button2 = @"No";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3280 button3 = @"Cancel";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3281 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3282
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3283 va_start(args, format);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3284 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
3285 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3286
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
3287 #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
3288 * 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
3289 */
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3290 if(flags & DW_MB_INFORMATION)
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3291 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
3292 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3293
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3294 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
3295 [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
3296 iResponse = [[params lastObject] integerValue];
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 switch(iResponse)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3299 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3300 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
3301 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
3302 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3303 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
3304 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3305 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
3306 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
3307 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
3308 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3309 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
3310 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3311 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
3312 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
3313 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
3314 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3315 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3316 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3317
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3318 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3319 * 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
3320 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3321 * 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
3322 * 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
3323 * ext: Default file extention.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3324 * 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
3325 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3326 * 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
3327 * 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
3328 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3329 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3330 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
3331 {
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3332 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
3333 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
3334
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3335 [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
3336 [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
3337 [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
3338 [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
3339 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
3340 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
3341
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
3342 return file;
2372
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
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 * 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
3347 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3348 * None.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3349 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3350 * 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
3351 * be converted to text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3352 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3353 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
3354 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3355 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3356 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
3357 if(str != nil)
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3358 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
3359 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3360 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3361
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3362 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3363 * 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
3364 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3365 * Text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3366 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3367 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
3368 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3369 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3370
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
3371 [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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3376 * 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
3377 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3378 * 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
3379 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3380 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
3381 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3382 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
3383
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3384 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3385 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3386 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
3387 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
3388 tmp->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3389 tmp->done = FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3390 tmp->result = NULL;
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 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3393 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3394
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 * 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
3397 * 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
3398 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3399 * 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
3400 * 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
3401 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3402 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
3403 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3404 dialog->result = result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3405 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
3406 dialog->done = TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3407 return 0;
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
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 * 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
3412 * 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
3413 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3414 * 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
3415 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3416 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
3417 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3418 void *tmp = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3419
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3420 if(dialog)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3421 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3422 while(!dialog->done)
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 _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
3425 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3426 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
3427 tmp = dialog->result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3428 free(dialog);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3429 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3430 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3431 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3434 * 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
3435 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3436 * 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
3437 * 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
3438 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3439 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
3440 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
3441 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
3442 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
3443 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3444 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
3445 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
3446 Box *newbox = [view box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3447 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
3448 newbox->pad = pad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3449 newbox->type = type;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3450 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
3451 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3454 * 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
3455 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3456 * 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
3457 * 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
3458 * 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
3459 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3460 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
3461 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3462 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
3463 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3464
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3465 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3466 * 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
3467 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3468 * 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
3469 * 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
3470 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3471 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
3472 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
3473 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
3474 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
3475 {
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
3476 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
3477 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
3478 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
3479 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
3480 [scrollbox setBox:box];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3481 [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
3482 [scrollbox setScrollEnabled:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3483 [tmpbox autorelease];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
3484 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
3485 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3486
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3487 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3488 * 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
3489 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3490 * 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
3491 * 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
3492 */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3493 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
3494 DW_FUNCTION_ADD_PARAM2(handle, orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3495 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
3496 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
3497 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3498 DWScrollBox *scrollbox = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3499 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3500 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
3501 CGSize contentsize = [scrollbox contentSize];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3502 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
3503 int range = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3504 int val = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3505 if(orient == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3506 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3507 range = [view bounds].size.height - contentsize.height;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3508 val = contentoffset.y;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3509 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3510 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3511 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3512 range = [view bounds].size.width - contentsize.width;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3513 val = contentoffset.x;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3514 }
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3515 if(val > range)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3516 {
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3517 val = range;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3518 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3519 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
3520 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3521
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3522 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3523 * 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
3524 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3525 * 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
3526 * 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
3527 */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3528 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
3529 DW_FUNCTION_ADD_PARAM2(handle, orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3530 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
3531 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
3532 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3533 DWScrollBox *scrollbox = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3534 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3535 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
3536 int range = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3537 if(orient == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3538 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3539 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
3540 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3541 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3542 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3543 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
3544 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3545 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
3546 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3547
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3548 /* 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
3549 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
3550 {
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3551 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
3552 {
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3553 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
3554 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
3555 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3556 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
3557 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3558 DWSpinButton *spinbutton = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3559 object = [spinbutton textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3560 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3561 #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
3562 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
3563 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3564 NSBox *box = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3565 id content = [box contentView];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3566
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
3567 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
3568 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3569 object = content;
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 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3572 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3573 return object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3574 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3575
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3576 /* 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
3577 * 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
3578 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3579 * Render/Unspecified: 1x1
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3580 * 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
3581 * 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
3582 * Spinbutton: 50x(maxfontheight)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3583 * 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
3584 * 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
3585 * 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
3586 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3587 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
3588 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3589 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
3590 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
3591 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
3592
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3593 /* 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
3594 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
3595 {
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3596 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
3597
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3598 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
3599 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3600 /* 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
3601 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
3602 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
3603 /* 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
3604 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
3605 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3606 /* 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
3607 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
3608
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
3609 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
3610 {
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3611 /* 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
3612 * 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
3613 */
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3614 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
3615 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
3616 else
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3617 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
3618 extraheight += 4;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3619 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3620 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3621 /* 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
3622 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
3623 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3624 UIFont *font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3625
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3626 if([object isEditable])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3627 {
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3628 /* 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
3629 if([handle isMemberOfClass:[DWSpinButton class]])
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3630 thiswidth = 50;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3631 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3632 thiswidth = 150;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3633 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3634 nsstr = [object text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3635
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3636 if(font)
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3637 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
3638
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3639 /* Spinbuttons need some extra */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3640 if([handle isMemberOfClass:[DWSpinButton class]])
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3641 {
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3642 DWSpinButton *spinbutton = handle;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3643 CGSize size = [[spinbutton stepper] intrinsicContentSize];
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3644
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3645 /* Add the stepper width as extra... */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3646 extrawidth = size.width;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3647 /* 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
3648 if(size.height > thisheight)
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3649 thisheight = size.height;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
3650 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3651 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3652 /* 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
3653 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
3654 [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
3655 {
2541
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3656 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
3657 {
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3658 thiswidth = 25;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3659 thisheight = 100;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3660 }
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3661 else
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3662 {
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3663 thiswidth = 100;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3664 thisheight = 25;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
3665 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3666 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3667 /* 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
3668 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
3669 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3670 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
3671
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3672 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3673 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
3674 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
3675 thiswidth = (int)size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3676 thisheight = (int)size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3677 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3678 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3679 /* 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
3680 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
3681 {
2588
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3682 DWCalendar *calendar = object;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3683 CGSize size = [calendar intrinsicContentSize];
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3684
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3685 /* If we can't detect the size... */
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3686 if(size.width < 1 || size.height < 1)
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3687 {
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3688 if(DWOSMajor >= 14)
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3689 {
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3690 /* Bigger new style in ios 14 */
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3691 thiswidth = 200;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3692 thisheight = 200;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3693 }
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3694 else
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3695 {
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3696 /* Smaller spinner style in iOS 13 and earlier */
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3697 thiswidth = 200;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3698 thisheight = 100;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3699 }
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3700 }
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3701 else
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3702 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3703 thiswidth = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3704 thisheight = size.height;
2588
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
3705 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3706 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3707 /* 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
3708 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
3709 [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
3710 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
3711 CGSize size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3712
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3713 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
3714 size = [object contentSize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3715 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3716 size = [object getsize];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3717
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3718 thiswidth = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3719 thisheight = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3720
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3721 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
3722 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
3723 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
3724 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
3725 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
3726 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
3727 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
3728 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
3729 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3730 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
3731 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3732 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
3733 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
3734 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3735 #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
3736 /* 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
3737 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
3738 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
3739 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3740
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3741 /* 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
3742 * 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
3743 */
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
3744 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
3745 {
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3746 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
3747
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
3748 /* 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
3749 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
3750
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
3751 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
3752 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
3753 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
3754 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
3755 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3756
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3757 /* Set the requested sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3758 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3759 *width = thiswidth + extrawidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3760 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3761 *height = thisheight + extraheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3762 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3763
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3764 /* 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
3765 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
3766 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3767 id object = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3768 DWBox *view = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3769 DWBox *this = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3770 Box *thisbox;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3771 int z, x = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3772 Item *tmpitem, *thisitem;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3775 * 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
3776 * 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
3777 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3778 if(box == item)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3779 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3780 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
3781 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3782 }
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 /* Query the objects */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3785 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
3786 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3787 UIWindow *window = box;
2599
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
3788 NSArray *subviews = [[[window rootViewController] view] subviews];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3789 view = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3790 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
3791 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
3792 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3793 DWScrollBox *scrollbox = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3794 view = [scrollbox box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3795 }
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 thisbox = [view box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3798 thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3799 object = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3800
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3801 /* 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
3802 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3803 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3804 if(index < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3805 index = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3806 if(index > thisbox->count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3807 index = thisbox->count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3808
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3809 /* Duplicate the existing data */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3810 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
3811
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3812 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
3813 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3814 if(z == index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3815 x++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3816 tmpitem[x] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3817 x++;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3820 /* Sanity checks */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3821 if(vsize && !height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3822 height = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3823 if(hsize && !width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3824 width = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3825
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3826 /* 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
3827 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
3828 tmpitem[index].type = TYPEBOX;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3829 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3830 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
3831 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
3832 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
3833 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
3834 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
3835
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3836 tmpitem[index].type = TYPEITEM;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3837 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3838
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3839 tmpitem[index].hwnd = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3840 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
3841 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
3842 tmpitem[index].pad = pad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3843 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
3844 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
3845
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3846 /* 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
3847 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
3848 _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
3849
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3850 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3851
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3852 /* Update the item count */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3853 thisbox->count++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3854
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3855 /* 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
3856 [view addSubview:this];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3857 /* 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
3858 * 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
3859 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3860 [this autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3861 /* 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
3862 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
3863 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3864 DWButton *button = (DWButton *)this;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3865
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3866 /* 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
3867 * 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
3868 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3869 [button setParent:view];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3870 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3871 /* 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
3872 _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
3873
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3874 /* Free the old data */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3875 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3876 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3877 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3880 * 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
3881 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3882 * 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
3883 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3884 * 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
3885 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3886 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
3887 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
3888 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
3889 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
3890 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3891 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3892 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3893 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3894 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
3895
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3896 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
3897 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3898 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
3899
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3900 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
3901 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3902 id window = [object window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3903 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3904 int z, index = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3905 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
3906
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3907 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3908 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3909
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3910 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
3911 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3912 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
3913 index = z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3914 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3915
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3916 if(index == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3917 retval = DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3918 else
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 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3921 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3922
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3923 if(thisbox->count > 1)
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 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
3926
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3927 /* 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
3928 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
3929 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3930 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3931 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3932 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
3933 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3934 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
3935 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3938 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3939 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3940 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3941 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3942 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3943 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3944 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3945 /* 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
3946 _dw_redraw(window, TRUE);
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3949 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3950 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3951 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
3952 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3953
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3954 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3955 * 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
3956 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3957 * 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
3958 * 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
3959 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3960 * 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
3961 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3962 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
3963 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
3964 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
3965 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
3966 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3967 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3968 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3969 DWBox *parent = (DWBox *)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3970 id object = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3971
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
3972 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
3973 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3974 id window = [parent window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3975 Box *thisbox = [parent box];
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 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
3978 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3979 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3980 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
3981
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3982 object = thisitem[index].hwnd;
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 if(object)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3985 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3986 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3987 [object removeFromSuperview];
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3990 if(thisbox->count > 1)
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 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
3993
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3994 /* 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
3995 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
3996 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3997 tmpitem[z] = thisitem[z];
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 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
4000 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4001 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
4002 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4005 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4006 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4007 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4008 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4009 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4010 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4011 thisbox->count = 0;
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 /* 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
4014 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4015 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4016 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4017 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4018 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
4019 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4020
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4021 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4022 * 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
4023 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4024 * 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
4025 * 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
4026 * 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
4027 * 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
4028 * 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
4029 * 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
4030 * 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
4031 * 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
4032 */
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
4033 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
4034 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
4035 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
4036 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
4037 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4038 _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
4039 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
4040 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4041
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4042 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4043 * 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
4044 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4045 * 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
4046 * 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
4047 * 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
4048 * 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
4049 * 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
4050 * 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
4051 * 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
4052 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4053 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
4054 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
4055 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
4056 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
4057 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4058 /* 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
4059 * 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
4060 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4061 _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
4062 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
4063 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4064
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4065 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4066 * 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
4067 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4068 * 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
4069 * 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
4070 * 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
4071 * 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
4072 * 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
4073 * 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
4074 * 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
4075 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4076 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
4077 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
4078 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
4079 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
4080 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4081 _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
4082 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
4083 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4084
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4085 /* Internal function to create a basic button, used by all button types */
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4086 HWND _dw_internal_button_new(const char *text, ULONG cid, UIButtonType type)
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4087 {
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4088 DWButton *button = [[DWButton buttonWithType:type] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4089 if(text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4090 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4091 [button setTitle:[NSString stringWithUTF8String:text] forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4092 }
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4093 [button addTarget:button
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4094 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
4095 forControlEvents:UIControlEventTouchUpInside];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4096 [button setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4097 if(DWDefaultFont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4098 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4099 [[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
4100 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4101 return button;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4102 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4103
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4104 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4105 * 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
4106 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4107 * 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
4108 * 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
4109 */
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
4110 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
4111 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
4112 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
4113 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
4114 {
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4115 DWButton *button = _dw_internal_button_new(text, cid, UIButtonTypeSystem);
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4116 [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
4117 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
4118 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4119
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4120 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4121 * 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
4122 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4123 * 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
4124 * 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
4125 */
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
4126 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
4127 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
4128 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
4129 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
4130 {
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
4131 DWEntryField *entry = [[[DWEntryField alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4132 [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
4133 [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
4134 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
4135 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4136
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4137 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4138 * 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
4139 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4140 * 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
4141 * 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
4142 */
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
4143 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
4144 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
4145 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
4146 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
4147 {
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
4148 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
4149 [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
4150 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
4151 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4152
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4153 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4154 * 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
4155 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4156 * 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
4157 * 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
4158 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4159 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
4160 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
4161 #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
4162 DWEntryField *entry = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4163 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
4164
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4165 [formatter setMaximumLength:(int)limit];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4166 [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
4167 #endif
2372
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4170 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4171 * 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
4172 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4173 * 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
4174 * 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
4175 */
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
4176 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
4177 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
4178 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
4179 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
4180 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4181 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4182 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
4183 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
4184 UIImage *image = [[UIImage alloc] initWithContentsOfFile:filepath];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4185 DWButton *button = _dw_internal_button_new("", cid, UIButtonTypeCustom);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4186 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4187 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4188 [button setImage:image forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4189 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4190 [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
4191 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
4192 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4193
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4194 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4195 * 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
4196 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4197 * 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
4198 * 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
4199 * 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
4200 * 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
4201 * (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
4202 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
4203 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
4204 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
4205 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
4206 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
4207 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4208 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
4209
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4210 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
4211 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
4212
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4213 if(!image && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4214 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4215 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
4216 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
4217 }
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4218 DWButton *button = _dw_internal_button_new("", cid, UIButtonTypeCustom);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4219 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4220 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4221 [button setImage:image forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4222 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4223 [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
4224 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
4225 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4226
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4227 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4228 * 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
4229 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4230 * 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
4231 * 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
4232 * 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
4233 * (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
4234 * len: length of str
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4235 */
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
4236 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
4237 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
4238 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
4239 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
4240 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4241 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
4242 UIImage *image = [[UIImage alloc] initWithData:thisdata];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4243 DWButton *button = _dw_internal_button_new("", cid, UIButtonTypeCustom);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4244 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4245 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4246 [button setImage:image forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4247 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4248 [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
4249 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
4250 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4251
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4252 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4253 * 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
4254 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4255 * 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
4256 * 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
4257 */
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
4258 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
4259 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
4260 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
4261 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
4262 {
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
4263 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
4264 UIStepper *stepper = [spinbutton stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4265 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
4266 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
4267
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4268 [stepper setStepValue:1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4269 [stepper setTag:cid];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4270 [stepper setMinimumValue:-65536];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4271 [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
4272 [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
4273 [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
4274 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
4275 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4276
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4277 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4278 * Sets the spinbutton value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4279 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4280 * 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
4281 * 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
4282 */
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
4283 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
4284 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
4285 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
4286 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
4287 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4288 DWSpinButton *spinbutton = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4289 UIStepper *stepper = [spinbutton stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4290 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
4291 [stepper setValue:(float)position];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4292 [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
4293 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
4294 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4296 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4297 * Sets the spinbutton limits.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4298 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4299 * 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
4300 * upper: Upper limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4301 * lower: Lower limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4302 */
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_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
4304 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
4305 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
4306 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
4307 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4308 DWSpinButton *spinbutton = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4309 UIStepper *stepper = [spinbutton stepper];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4310 [stepper setMinimumValue:(double)lower];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4311 [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
4312 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
4313 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4314
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4315 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4316 * 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
4317 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4318 * 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
4319 */
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
4320 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
4321 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
4322 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
4323 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
4324 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4325 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
4326 long retval;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4327 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
4328 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
4329 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
4330 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4331
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4332 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4333 * 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
4334 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4335 * 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
4336 * 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
4337 */
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 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
4339 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
4340 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
4341 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
4342 {
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4343 DWButton *button = _dw_internal_button_new(text, cid, UIButtonTypeSystem);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4344 [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
4345 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
4346 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4347
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4348 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4349 * 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
4350 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4351 * 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
4352 * 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
4353 * 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
4354 */
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4355 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
4356 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
4357 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
4358 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
4359 {
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
4360 DWSlider *slider = [[[DWSlider alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4361 [slider setMaximumValue:(double)increments];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4362 [slider setMinimumValue:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4363 [slider setContinuous:YES];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
4364 [slider addTarget:slider
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
4365 action:@selector(sliderChanged:)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
4366 forControlEvents:UIControlEventValueChanged];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4367 [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
4368 [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
4369 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
4370 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4371
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4372 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4373 * 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
4374 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4375 * 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
4376 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4377 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
4378 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4379 DWSlider *slider = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4380 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
4381 return (int)val;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4384 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4385 * Sets the slider position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4386 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4387 * 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
4388 * 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
4389 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4390 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
4391 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4392 DWSlider *slider = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4393 [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
4394 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4395
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4396 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4397 * 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
4398 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4399 * 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
4400 * 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
4401 * 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
4402 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4403 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
4404 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4405 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
4406 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4407
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4408 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4409 * 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
4410 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4411 * 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
4412 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4413 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
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_get_pos(handle);
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 * Sets the scrollbar position.
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 set.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4422 * 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
4423 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4424 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
4425 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4426 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4430 * Sets the scrollbar range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4431 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4432 * 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
4433 * range: Maximum range value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4434 * 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
4435 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4436 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
4437 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4438 DWSlider *slider = handle;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
4439 [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
4440 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4441
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4442 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4443 * 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
4444 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4445 * 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
4446 */
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
4447 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
4448 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
4449 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
4450 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
4451 {
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
4452 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
4453 [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
4454 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
4455 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4456
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4457 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4458 * 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
4459 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4460 * 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
4461 * 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
4462 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4463 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
4464 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
4465 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
4466 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
4467 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4468 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4469 DWPercent *percent = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4470
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4471 /* Handle indeterminate */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4472 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
4473 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4474 [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
4475 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4476 else
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 /* Handle normal */
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4479 [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
4480 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4481 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4482 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4483
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4484 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4485 * 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
4486 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4487 * 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
4488 * 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
4489 */
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
4490 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
4491 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
4492 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
4493 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
4494 {
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4495 DWButton *button = _dw_internal_button_new(text, cid, UIButtonTypeSystem);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4496 [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
4497 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
4498 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4499
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4500 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4501 * 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
4502 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4503 * 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
4504 */
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4505 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
4506 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
4507 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
4508 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
4509 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4510 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
4511 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
4512
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4513 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
4514 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
4515 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
4516 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4517
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4518 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4519 * 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
4520 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4521 * 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
4522 * 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
4523 */
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 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
4525 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
4526 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
4527 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
4528 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4529 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
4530 [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
4531 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
4532 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4533
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4534 /* 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
4535 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
4536 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4537 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
4538
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4539 [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
4540 [cont setDataSource:cont];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4541 [cont setDelegate:cont];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4542 [cont setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4543 [cont autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4544 [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
4545 return cont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4546 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4547
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 * 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
4550 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4551 * 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
4552 * 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
4553 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4554 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
4555 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
4556 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
4557 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
4558 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4559 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4560 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
4561 [cont setup];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4562 [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
4563 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
4564 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4565
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4566 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4567 * 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
4568 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4569 * 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
4570 * 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
4571 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4572 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
4573 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
4574 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
4575 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
4576 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4577 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4578 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4579
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4580 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
4581 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4582 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4583
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4584 [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
4585 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4586 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
4587 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4588 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4589 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
4590 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
4591
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4592 [cont addRow:newrow];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4593 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4594 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4595 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4596 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4599 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4600 * 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
4601 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4602 * 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
4603 * 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
4604 * 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
4605 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4606 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
4607 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
4608 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
4609 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
4610 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4611 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4612 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4613
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4614 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
4615 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4616 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4617
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4618 [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
4619 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4620 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
4621 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4622 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4623 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
4624 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
4625
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4626 [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
4627 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4628 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4629 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4630 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4633 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4634 * 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
4635 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4636 * 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
4637 * 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
4638 * 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
4639 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4640 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
4641 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
4642 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
4643 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
4644 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4645 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4646 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4647
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4648 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
4649 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4650 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4651 int z;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4652
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4653 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
4654 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4655 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
4656
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4657 [combo append:nstr];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4658 }
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 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
4661 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4662 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4663 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4664
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4665 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
4666 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4667 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
4668 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
4669
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4670 [cont addRow:newrow];
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 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4673 [cont setNeedsDisplay];
2372
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 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4678 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4679 * 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
4680 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4681 * 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
4682 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4683 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
4684 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
4685 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
4686 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
4687 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4688 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4689 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4690
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4691 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
4692 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4693 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4694
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4695 [combo clear];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4696 }
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4697 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
4698 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4699 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4700
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4701 [cont clear];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4702 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4703 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4704 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4705 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4706 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4707
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 * 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
4710 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4711 * 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
4712 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4713 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
4714 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
4715 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
4716 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
4717 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4718 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4719 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4720 int result = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4721
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4722 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
4723 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4724 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4725
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4726 result = [combo count];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4727 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4728 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
4729 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4730 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
4731 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
4732 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4733 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
4734 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4735
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4736 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4737 * 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
4738 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4739 * 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
4740 * 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
4741 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4742 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
4743 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
4744 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
4745 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
4746 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4747 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4748 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4749
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4750 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
4751 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4752 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4753 NSIndexPath *myIP = [NSIndexPath indexPathForRow:top inSection:0];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4754
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4755 [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
4756 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4757 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4758 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4759
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4760 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4761 * 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
4762 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4763 * 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
4764 * 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
4765 * 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
4766 * 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
4767 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4768 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
4769 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
4770 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
4771 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
4772 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4773 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4774 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4775
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4776 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
4777 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4778 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4779 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
4780
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4781 if(nstr)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4782 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
4783 else
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4784 *buffer = '\0';
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4785 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4786 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
4787 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4788 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
4789 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
4790
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4791 if(index > count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4792 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4793 *buffer = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4794 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4795 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4796 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4797 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
4798 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
4799
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4800 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
4801 }
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 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4806 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4807 * 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
4808 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4809 * 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
4810 * 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
4811 * 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
4812 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4813 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
4814 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
4815 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
4816 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
4817 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4818 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4819 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4820
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4821 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
4822 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4823 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4824
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4825 [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
4826 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4827 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
4828 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4829 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
4830 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
4831
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4832 if(index <= count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4833 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4834 NSString *nstr = [NSString stringWithUTF8String:buffer];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4835 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
4836
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
4837 [[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
4838 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4839 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4840 }
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 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4845 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4846 * 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
4847 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4848 * 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
4849 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4850 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
4851 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
4852 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
4853 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
4854 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4855 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4856 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4857 int result = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4858
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4859 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
4860 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4861 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4862
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4863 result = [combo selectedIndex];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4864 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4865 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
4866 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4867 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4868 NSIndexPath *ip = [cont indexPathForSelectedRow];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4869
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4870 if(ip)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4871 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
4872 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4873 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
4874 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4875
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 * 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
4878 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4879 * 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
4880 * 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
4881 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4882 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
4883 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
4884 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
4885 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
4886 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4887 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4888 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4889 int retval = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4890
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4891 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
4892 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4893 DWContainer *cont = handle;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4894 NSArray *selected = [cont indexPathsForSelectedRows];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4895 NSIndexPath *ip = [selected objectAtIndex:(where == -1 ? 0 :where)];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4896
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4897 if(ip)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4898 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
4899 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4900 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
4901 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4904 * 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
4905 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4906 * 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
4907 * index: Item index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4908 * 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
4909 */
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4910 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
4911 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
4912 DW_FUNCTION_NO_RETURN(dw_listbox_select)
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4913 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
4914 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4915 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4916 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4917
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
4918 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
4919 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4920 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4921 NSIndexPath *ip = [NSIndexPath indexPathForRow:index inSection:0];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4922
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4923 [cont selectRowAtIndexPath:ip
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4924 animated:NO
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4925 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4926 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4927 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4928 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4931 * 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
4932 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4933 * 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
4934 * index: Item index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4935 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4936 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
4937 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
4938 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
4939 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
4940 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4941 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4942 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4943
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4944 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
4945 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4946 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4947
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4948 [combo deleteAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4949 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4950 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
4951 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4952 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4953
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4954 [cont removeRow:index];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4955 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4956 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4957 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4958 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4959 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4960
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 * 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
4963 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4964 * 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
4965 * 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
4966 */
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4967 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
4968 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
4969 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
4970 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
4971 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4972 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
4973 if(text)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4974 [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
4975 [combo setTag:cid];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
4976 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
4977 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4978
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4979 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4980 * 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
4981 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4982 * 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
4983 */
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
4984 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
4985 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
4986 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
4987 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
4988 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4989 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
4990 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
4991 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
4992 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
4993 [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
4994 [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
4995 DWMLE *mle = [[[DWMLE alloc] initWithFrame:frame textContainer:tc] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4996 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
4997
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4998 size.width = size.height;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4999 [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
5000 [mle setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5001 [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
5002 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
5003 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5004
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5005 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5006 * 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
5007 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5008 * 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
5009 * 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
5010 * 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
5011 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5012 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
5013 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
5014 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
5015 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
5016 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5017 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5018 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5019 unsigned int retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5020 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5021 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
5022 UIColor *fgcolor = [mle textColor];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5023 UIFont *font = [mle font];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5024 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
5025 [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
5026 if(font)
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5027 [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
5028 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
5029 NSUInteger length = [ts length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5030 if(startpoint < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5031 startpoint = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5032 if(startpoint > length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5033 startpoint = (int)length;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5034 [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
5035 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
5036 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
5037 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5038
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5039 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5040 * 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
5041 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5042 * 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
5043 * 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
5044 * 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
5045 * 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
5046 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5047 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
5048 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
5049 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
5050 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
5051 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5052 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5053 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5054 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5055 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5056 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
5057 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
5058 buffer[length] = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5059 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5060 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5063 * 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
5064 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5065 * 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
5066 * 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
5067 * 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
5068 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5069 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
5070 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
5071 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
5072 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
5073 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5074 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5075 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5076 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5077 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5078 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
5079
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5080 if(bytes)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5081 *bytes = stringLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5082 if(lines)
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 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
5085 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
5086
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5087 *lines = numberOfLines;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5088 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5089 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5090 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5091
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5092 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5093 * 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
5094 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5095 * 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
5096 * 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
5097 * 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
5098 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5099 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
5100 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
5101 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
5102 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
5103 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5104 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5105 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5106 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5107 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5108 NSUInteger mslength = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5109 if(startpoint < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5110 startpoint = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5111 if(startpoint > mslength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5112 startpoint = (int)mslength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5113 if(startpoint + length > mslength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5114 length = (int)mslength - startpoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5115 [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
5116 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5117 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5118
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5119 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5120 * 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
5121 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5122 * 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
5123 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5124 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
5125 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
5126 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
5127 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
5128 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5129 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5130 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5131 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5132 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5133 NSUInteger length = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5134 [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
5135 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5136 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5137
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 * 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
5140 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5141 * 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
5142 * 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
5143 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5144 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
5145 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
5146 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
5147 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
5148 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5149 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5150 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5151 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5152 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5153 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
5154
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5155 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
5156 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
5157
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5158 if(line == numberOfLines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5159 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5160 [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
5161 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5162 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5163 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5166 * 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
5167 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5168 * 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
5169 * 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
5170 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5171 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
5172 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5173 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5174 if(state)
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 [mle setEditable:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5177 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5178 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5179 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5180 [mle setEditable:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5181 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5184 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5185 * 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
5186 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5187 * 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
5188 * 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
5189 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5190 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
5191 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5192 /* 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5196 * 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
5197 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5198 * 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
5199 * 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
5200 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5201 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
5202 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5203 /* 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5207 * 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
5208 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5209 * 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
5210 * 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
5211 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5212 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
5213 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
5214 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
5215 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
5216 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5217 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5218 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5219 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5220 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5221 NSUInteger length = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5222 if(point < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5223 point = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5224 if(point > length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5225 point = (int)length;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5226 [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
5227 [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
5228 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5229 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5230
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5231 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5232 * 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
5233 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5234 * 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
5235 * 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
5236 * 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
5237 * flags: Search specific flags.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5238 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5239 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
5240 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
5241 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
5242 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
5243 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5244 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5245 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5246 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5247 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5248 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
5249 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
5250 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
5251 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
5252 int retval = -1;
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 if(ms)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5255 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
5256 if(range.location == NSNotFound)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5257 retval = (int)range.location;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5258 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
5259 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5260
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5261 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5262 * 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
5263 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5264 * 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
5265 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5266 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
5267 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5268 /* 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
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 * 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
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 thaw.
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_thaw(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 * 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
5283 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5284 * 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
5285 * 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
5286 */
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5287 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
5288 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
5289 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
5290 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
5291 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5292 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
5293 [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
5294 [textfield setTag:cid];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5295 if(DWDefaultFont)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5296 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5297 [textfield setFont:DWDefaultFont];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5298 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5299 [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
5300 [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
5301 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
5302 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5303
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5304 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5305 * 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
5306 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5307 * 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
5308 * 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
5309 */
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
5310 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
5311 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
5312 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
5313 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
5314 {
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
5315 DWText *textfield = [[[DWText alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5316 [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
5317 [textfield setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5318 if(DWDefaultFont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5319 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5320 [textfield setFont:DWDefaultFont];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5321 }
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
5322 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
5323 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5324
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5325 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5326 * 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
5327 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5328 * 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
5329 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5330 * 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
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_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
5333 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
5334 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
5335 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
5336 {
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
5337 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
5338 [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
5339 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
5340 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5341
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5342 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5343 * 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
5344 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5345 * 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
5346 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5347 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
5348 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
5349 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
5350 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
5351 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5352 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5353 DWRender *render = (DWRender *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5354
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5355 [render setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5356 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5357 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5358
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5359 /* 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
5360 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5361 * red: red value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5362 * green: green value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5363 * blue: blue value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5364 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5365 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
5366 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5367 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
5368 UIColor *newcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5369 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5370
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5371 _dw_foreground = _dw_get_color(value);
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5372
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5373 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
5374 DW_GREEN_VALUE(_dw_foreground)/255.0 blue:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5375 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
5376 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
5377 [oldcolor release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5378 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5379 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5380
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5381 /* 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
5382 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5383 * red: red value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5384 * green: green value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5385 * blue: blue value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5386 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5387 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
5388 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5389 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
5390 UIColor *newcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5391 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5392
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5393 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
5394 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5395 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
5396 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5397 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5398 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5399 _dw_background = _dw_get_color(value);
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5400
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5401 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
5402 DW_GREEN_VALUE(_dw_background)/255.0 blue:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
5403 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
5404 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
5405 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5406 [oldcolor release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5407 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5408 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5409
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5410 /* 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
5411 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5412 * value: current color
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5413 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5414 * 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
5415 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5416 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
5417 {
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5418 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
5419 unsigned long newcolor = value;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5420
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5421 [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
5422 if([params count] > 1)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5423 newcolor = [[params lastObject] unsignedLongValue];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5424
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
5425 return newcolor;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5426 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5427
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5428 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
5429 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5430 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
5431
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5432 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
5433 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5434 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
5435
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5436 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
5437 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5438 if(context)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5439 CGContextSetAllowsAntialiasing(context, antialiased);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5440 return context;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5441 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5442
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5443 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
5444 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5445 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
5446 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
5447 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
5448 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
5449 return nil;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5450 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5451
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5452 /* 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
5453 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5454 * 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
5455 * 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
5456 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5457 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5458 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5459 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
5460 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
5461 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
5462 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
5463 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5464 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
5465 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
5466 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
5467
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5468 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5469 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
5470
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5471 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5472 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5473 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
5474 [aPath setLineWidth: 0.5];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5475 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
5476 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5477
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5478 [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
5479 [aPath stroke];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5480 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5481 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5482 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5483 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5484 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5485
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5486 /* 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
5487 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5488 * 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
5489 * 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
5490 * x1: First X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5491 * y1: First Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5492 * x2: Second X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5493 * y2: Second Y coordinate.
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 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
5496 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
5497 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
5498 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
5499 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5500 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
5501 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
5502 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
5503
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5504 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5505 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
5506
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5507 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5508 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5509 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
5510 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
5511 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5512
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5513 [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
5514 [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
5515 [aPath stroke];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5516 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5517 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5518 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5519 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5520 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5521
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5522 /* 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
5523 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5524 * 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
5525 * 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
5526 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5527 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5528 * 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
5529 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5530 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
5531 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
5532 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
5533 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
5534 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5535 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5536 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
5537 DWImage *bi = nil;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5538 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5539 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
5540 id image = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5541
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5542 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5543 {
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
5544 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
5545 font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5546 render = pixmap->handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5547 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
5548 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5549 font = [render font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5550 }
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 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
5553 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5554 render = image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5555 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
5556 bi = [render cachedImage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5557 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5558 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5559 {
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5560 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
5561
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5562 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5563 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
5564
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5565 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
5566 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
5567 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
5568 if(bgcolor)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5569 [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
5570 if(font)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5571 [dict setValue:font forKey:NSFontAttributeName];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5572 [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
5573 [dict release];
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5574 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5575 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5576 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5577 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5578 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5579
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5580 /* 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
5581 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5582 * 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
5583 * 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
5584 * 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
5585 * 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
5586 * 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
5587 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5588 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
5589 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5590 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5591 NSString *nstr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5592 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5593 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5594
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5595 nstr = [NSString stringWithUTF8String:text];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5596
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5597 /* 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
5598 if(pixmap)
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 object = pixmap->handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5601 font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5602 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5603 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
5604 /* 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
5605 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
5606 || [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
5607 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5608 font = [object font];
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 /* 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
5611 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5612 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5613 [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
5614 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5615 /* 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
5616 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
5617 [dict release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5618 /* 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
5619 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5620 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5621 *width = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5622 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5623 if(height)
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 *height = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5626 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5627 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5628 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5629
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5630 /* 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
5631 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5632 * 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
5633 * 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
5634 * 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
5635 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5636 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5637 * width: Width of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5638 * height: Height of rectangle.
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 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
5641 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
5642 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
5643 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
5644 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5645 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
5646 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
5647 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
5648
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5649 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5650 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
5651
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5652 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5653 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5654 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
5655 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
5656 int z;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
5657
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5658 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5659
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5660 [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
5661 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
5662 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5663 [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
5664 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5665 [aPath closePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5666 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
5667 [aPath fill];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5668 else
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5669 [aPath stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5670 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5671 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5672 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5673 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5676 /* 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
5677 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5678 * 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
5679 * 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
5680 * 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
5681 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5682 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5683 * width: Width of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5684 * height: Height of rectangle.
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 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
5687 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
5688 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
5689 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
5690 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5691 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
5692 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
5693 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
5694
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5695 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5696 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
5697
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5698 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5699 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5700 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
5701 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
5702
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5703 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5704
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5705 if(flags & DW_DRAW_FILL)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5706 [bp fill];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5707 else
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5708 [bp stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5709 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5710 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5711 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5712 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5713 }
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 /* 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
5716 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5717 * 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
5718 * 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
5719 * 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
5720 * 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
5721 * 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
5722 * 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
5723 * 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
5724 * 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
5725 * 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
5726 * 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
5727 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5728 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
5729 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
5730 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
5731 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
5732 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5733 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
5734 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
5735 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
5736
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5737 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5738 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
5739
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5740 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5741 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5742 UIBezierPath* aPath;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5743 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
5744 [color set];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5745
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5746 /* 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
5747 if(flags & DW_DRAW_FULL)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5748 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
5749 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5750 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5751 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
5752 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
5753 double dx = xorigin - x1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5754 double dy = yorigin - y1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5755 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
5756
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5757 /* Prepare to draw */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5758 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
5759 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
5760 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5761 /* 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
5762 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
5763 [aPath fill];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5764 else
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5765 [aPath stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5766 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5767 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
5768 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5769 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5772 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5773 * 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
5774 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5775 * 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
5776 * resource file.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5777 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5778 * 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
5779 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5780 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
5781 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5782 /* 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
5783 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5784 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5785
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5786 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5787 * 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
5788 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5789 * 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
5790 * 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
5791 * 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
5792 * 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
5793 * 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
5794 * 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
5795 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5796 * 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
5797 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5798 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
5799 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5800 /* 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
5801 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5802 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5803
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5804 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5805 * 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
5806 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5807 * 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
5808 * 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
5809 * 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
5810 * 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
5811 * 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
5812 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5813 * 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
5814 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5815 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
5816 {
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5817 /* 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
5818 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5819 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5820
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5821 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5822 * 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
5823 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5824 * 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
5825 * 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
5826 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5827 * 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
5828 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5829 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
5830 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5831 /* 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
5832 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5833 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5834
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5835 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5836 * 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
5837 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5838 * 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
5839 * 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
5840 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5841 * 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
5842 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5843 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
5844 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5845 /* 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
5846 return 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5847 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5848
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5849 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5850 * 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
5851 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5852 * 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
5853 * 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
5854 * 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
5855 * 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
5856 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5857 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
5858 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5859 /* 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
5860
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5861 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5862
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5863 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5864 * 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
5865 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5866 * 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
5867 * 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
5868 * 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
5869 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5870 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
5871 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5872 /* 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
5873
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5874 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5875
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5876 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5877 * 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
5878 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5879 * 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
5880 * 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
5881 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5882 * 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
5883 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5884 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
5885 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5886 /* 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
5887 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5888 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5889
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5890 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5891 * 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
5892 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5893 * 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
5894 * 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
5895 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5896 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
5897 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5898 /* 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5902 * 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
5903 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5904 * 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
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_clear(HWND handle)
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 * 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
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 tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5915 * 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
5916 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5917 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
5918 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5919 /* 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5923 * 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
5924 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5925 * 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
5926 * 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
5927 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5928 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
5929 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5930 /* 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5934 * 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
5935 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5936 * 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
5937 * 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
5938 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5939 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
5940 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5941 /* 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5945 * 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
5946 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5947 * 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
5948 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5949 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5950 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
5951 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
5952 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
5953 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
5954 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5955 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5956 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
5957 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
5958 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5961 * 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
5962 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5963 * 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
5964 * 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
5965 * 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
5966 * 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
5967 * 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
5968 * (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
5969 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5970 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
5971 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
5972 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
5973 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
5974 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5975 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5976 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
5977 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5978
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5979 [cont setup];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5980
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5981 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
5982 {
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5983 /* 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
5984 * 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
5985 */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5986 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
5987
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
5988 [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
5989 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5990 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
5991 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5992
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5993 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5994 * 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
5995 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5996 * 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
5997 * 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
5998 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5999 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
6000 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6001 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
6002
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6003 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
6004 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6005
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6006 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6007 * 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
6008 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6009 * 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
6010 * 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
6011 * 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
6012 * 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
6013 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6014 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
6015 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6016 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
6017 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
6018 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
6019 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6020
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6021 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
6022
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6023 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
6024
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6025 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
6026 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
6027
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6028 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
6029 [cont setFilesystem:YES];
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 if(coltitle)
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 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
6034 free(coltitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6035 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6036 free(newtitles);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6037 free(newflags);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6038 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6039 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6042 * 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
6043 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6044 * 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
6045 * 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
6046 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6047 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
6048 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
6049 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
6050 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
6051 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6052 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6053 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6054 [cont addRows:rowcount];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6055 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
6056 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6057
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6058 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6059 * 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
6060 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6061 * 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
6062 * 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
6063 * 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
6064 * 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
6065 * 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
6066 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6067 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
6068 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
6069 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
6070 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
6071 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6072 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6073 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6074 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
6075 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
6076 int lastadd = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6077
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6078 /* 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
6079 if(pointer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6080 lastadd = [cont lastAddPoint];
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 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6083 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6084 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
6085 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6086 icon = *((UIImage **)data);
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 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
6089 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6090 char *str = *((char **)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6091 text = [ NSString stringWithUTF8String:str ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6092 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6093 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6094 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6095 char textbuffer[101] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6096
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6097 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
6098 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6099 ULONG tmp = *((ULONG *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6100
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6101 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
6102 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6103 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
6104 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6105 struct tm curtm;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6106 CDATE cdate = *((CDATE *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6107
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6108 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
6109 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
6110 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
6111 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
6112
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6113 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
6114 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6115 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
6116 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6117 struct tm curtm;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6118 CTIME ctime = *((CTIME *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6119
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6120 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
6121 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
6122 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
6123 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
6124
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6125 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
6126 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6127 if(textbuffer[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6128 text = [ NSString stringWithUTF8String:textbuffer ];
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6131
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6132 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
6133
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6134 /* 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
6135 if([object isMemberOfClass:[UITableViewCell class]])
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6136 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6137 UITableViewCell *cell = object;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6138
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6139 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
6140 [[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
6141 else
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
6142 [[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
6143 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6144 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
6145 [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
6146 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6147 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6148 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6149
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6150 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6151 * 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
6152 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6153 * 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
6154 * 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
6155 * 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
6156 * 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
6157 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6158 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
6159 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6160 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
6161 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6162
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6163 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6164 * 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
6165 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6166 * 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
6167 * 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
6168 * 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
6169 * 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
6170 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6171 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
6172 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6173 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
6174 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6175
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6176 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6177 * 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
6178 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6179 * 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
6180 * 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
6181 * 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
6182 * 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
6183 * 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
6184 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6185 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
6186 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6187 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
6188 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6189
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6190 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6191 * 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
6192 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6193 * 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
6194 * 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
6195 * 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
6196 * 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
6197 * 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
6198 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6199 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
6200 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
6201 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
6202 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
6203 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6204 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6205 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6206 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
6207 int lastadd = 0;
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 /* 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
6210 if(pointer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6211 lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6212
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6213 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
6214
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6215 /* 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
6216 if([object isMemberOfClass:[UITableViewCell class]])
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6217 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6218 UITableViewCell *cell = object;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6219
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6220 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
6221 [[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
6222 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
6223 [[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
6224 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6225 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
6226 [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
6227 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6228 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6229 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6230
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6231 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6232 * 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
6233 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6234 * 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
6235 * 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
6236 * 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
6237 * 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
6238 * 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
6239 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6240 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
6241 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6242 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
6243 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6244
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6245 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6246 * 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
6247 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6248 * 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
6249 * column: Zero based column.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6250 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6251 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
6252 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
6253 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
6254 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
6255 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6256 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6257 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6258 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6259 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
6260 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
6261 rc = DW_CFA_BITMAPORICON;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6262 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
6263 rc = DW_CFA_STRING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6264 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
6265 rc = DW_CFA_ULONG;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6266 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
6267 rc = DW_CFA_DATE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6268 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
6269 rc = DW_CFA_TIME;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6270 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6271 rc = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6272 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
6273 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6274
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6275 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6276 * 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
6277 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6278 * 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
6279 * column: Zero based column.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6280 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6281 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
6282 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6283 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6287 * 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
6288 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6289 * 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
6290 * 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
6291 * 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
6292 * 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
6293 * 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
6294 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6295 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
6296 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
6297 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
6298 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
6299 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6300 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6301 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6302 [cont setRowBgOdd:oddcolor
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6303 andEven:evencolor];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6304 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6305 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6306
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6307 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6308 * 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
6309 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6310 * 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
6311 * 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
6312 * 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
6313 */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6314 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
6315 {
2372
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6319 * 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
6320 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6321 * 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
6322 * 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
6323 * 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
6324 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6325 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
6326 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
6327 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
6328 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
6329 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6330 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6331 DWContainer *cont = pointer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6332 int lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6333 [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
6334 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6335 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6336
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6337
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6338 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6339 * 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
6340 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6341 * 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
6342 * 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
6343 * data: Data pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6344 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6345 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
6346 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
6347 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
6348 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
6349 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6350 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6351 DWContainer *cont = pointer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6352 int lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6353 [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
6354 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6355 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6356
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6357
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6358 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6359 * 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
6360 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6361 * 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
6362 * 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
6363 * 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
6364 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6365 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
6366 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
6367 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
6368 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
6369 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6370 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6371 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6372 [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
6373 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6376 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6377 * 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
6378 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6379 * 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
6380 * 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
6381 * data: Data pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6382 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6383 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
6384 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
6385 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
6386 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
6387 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6388 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6389 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6390 [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
6391 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6394 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6395 * 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
6396 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6397 * 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
6398 * 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
6399 * 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
6400 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6401 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
6402 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
6403 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
6404 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
6405 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6406 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6407 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6408 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6409 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6412 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6413 * 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
6414 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6415 * 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
6416 * 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
6417 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6418 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
6419 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
6420 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
6421 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
6422 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6423 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6424 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6425 [cont clear];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6426 if(redraw)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6427 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6428 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6429 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6430
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6431 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6432 * 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
6433 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6434 * 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
6435 * 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
6436 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6437 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
6438 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
6439 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
6440 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
6441 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6442 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6443 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6444 int x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6445
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6446 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
6447 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6448 [cont removeRow:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6449 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6450 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6451 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6452 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6453
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6454 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6455 * 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
6456 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6457 * 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
6458 * 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
6459 * 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
6460 * 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
6461 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
6462 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
6463 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
6464 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
6465 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
6466 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6467 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6468 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6469 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
6470 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
6471
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6472 /* Safety check */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6473 if(rowcount < 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6474 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6475 return;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6478 switch(direction)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6479 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6480 case DW_SCROLL_TOP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6481 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6482 offset.y = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6483 break;
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 case DW_SCROLL_BOTTOM:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6486 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6487 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
6488 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6489 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
6490 /* 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
6491 case DW_SCROLL_UP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6492 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6493 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
6494 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6495 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6496 case DW_SCROLL_DOWN:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6497 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
6498 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
6499 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6500 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6501 }
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6502 if(offset.y < 0)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6503 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
6504 [cont setContentOffset:offset];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6505 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6506 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6507
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6508 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6509 * 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
6510 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6511 * 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
6512 * 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
6513 * 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
6514 * 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
6515 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6516 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
6517 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
6518 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
6519 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
6520 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6521 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6522 DWContainer *cont = handle;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6523 NSArray *selected = [cont indexPathsForSelectedRows];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
6524 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
6525 void *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6526
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6527 if(result)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6528 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6529 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
6530 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
6531 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6532 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6533 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
6534 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6535 retval = strdup(temp);
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 [cont setLastQueryPoint:1];
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 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
6540 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6541
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6542 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6543 * 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
6544 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6545 * 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
6546 * 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
6547 * 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
6548 * 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
6549 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6550 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
6551 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
6552 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
6553 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
6554 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6555 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6556 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6557 int lastQueryPoint = [cont lastQueryPoint];
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6558 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
6559 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
6560 void *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6561
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6562 if(result)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6563 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6564 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
6565 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
6566 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6567 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
6568 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
6569 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6570 retval = strdup(temp);
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 [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
6573 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6574 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
6575 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6576
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6577 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6578 * 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
6579 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6580 * 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
6581 * 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
6582 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6583 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
6584 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
6585 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
6586 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
6587 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6588 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6589 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6590 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6591 char *thistext;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6592 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
6593
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6594 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
6595 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6596 thistext = [cont getRowTitle:x];
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 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
6599 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6600 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
6601
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6602 [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
6603 animated:NO
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6604 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6605 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6606 break;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6609 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6610 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6611 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6612
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6613 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6614 * 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
6615 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6616 * 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
6617 * 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
6618 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6619 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
6620 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
6621 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
6622 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
6623 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6624 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6625 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6626 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6627 void *thisdata;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6628 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
6629
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6630 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
6631 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6632 thisdata = [cont getRowData:x];
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 if(thisdata == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6635 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6636 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
6637
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6638 [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
6639 animated:NO
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6640 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6641 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6642 break;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6645 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6646 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6647 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6648
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6649 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6650 * 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
6651 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6652 * 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
6653 * 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
6654 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6655 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
6656 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
6657 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
6658 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
6659 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6660 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6661 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6662 char *thistext;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6663 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
6664
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6665 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
6666 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6667 thistext = [cont getRowTitle:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6668
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6669 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
6670 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6671 [cont removeRow:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6672 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6673 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6674 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6675 }
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 DW_FUNCTION_RETURN_NOTHING;
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
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 * 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
6682 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6683 * 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
6684 * data: Data specified.
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 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
6687 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
6688 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
6689 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
6690 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6691 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6692 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6693 void *thisdata;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
6694 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
6695
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6696 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
6697 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6698 thisdata = [cont getRowData:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6699
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6700 if(thisdata == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6701 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6702 [cont removeRow:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6703 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6704 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6705 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6706 }
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 DW_FUNCTION_RETURN_NOTHING;
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
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 * 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
6713 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6714 * 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
6715 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6716 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
6717 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6718 /* 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
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 * 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
6723 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6724 * 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
6725 * 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
6726 * 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
6727 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6728 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6733 * 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
6734 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6735 * 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
6736 * 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
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_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
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 /* 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
6743 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
6744 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6745 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6746 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
6747 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
6748 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
6749 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6750 if(size.width > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6751 size.width = 24;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6752 if(size.height > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6753 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
6754 #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
6755 [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
6756 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6757 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6758 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6761 /* 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
6762 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
6763 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6764 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6765 NSString *respath = [bundle resourcePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6766 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
6767 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
6768 return image;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6772 * 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
6773 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6774 * 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
6775 * 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
6776 * 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
6777 * to an embedded XPM.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6778 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6779 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
6780 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6781 UIImage *image = _dw_icon_load(resid);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6782 _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
6783 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6784 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6785
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6786 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6787 * 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
6788 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6789 * 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
6790 * 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
6791 * (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
6792 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6793 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
6794 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6795 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
6796
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6797 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
6798 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
6799 if(!image && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6800 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6801 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
6802 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
6803 }
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6804 _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
6805 return image;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6808 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6809 * 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
6810 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6811 * 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
6812 * 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
6813 * (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
6814 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6815 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
6816 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6817 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
6818 UIImage *image = [[UIImage alloc] initWithData:thisdata];
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6819 _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
6820 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6821 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6822
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6823 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6824 * 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
6825 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6826 * 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
6827 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6828 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
6829 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6830 UIImage *image = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6831 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6832 [image release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6833 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6834 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6835
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6836 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6837 * 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
6838 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6839 * 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
6840 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6841 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
6842 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6843 /* 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
6844 * 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
6845 * 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
6846 * similar behavior.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6847 */
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
6848 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
6849 [mdi setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6850 return mdi;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6851 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6854 * 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
6855 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6856 * 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
6857 * 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
6858 * 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
6859 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6860 * 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
6861 */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6862 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
6863 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
6864 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
6865 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
6866 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6867 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6868 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
6869 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
6870 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
6871 [split setDelegate:split];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6872 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
6873 [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
6874 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
6875 [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
6876 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6877 [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
6878 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6879 [tmpbox autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6880 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
6881 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
6882 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
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:UISplitViewControllerColumnSecondary];
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];
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
6890 [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
6891 #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
6892 [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
6893 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6894 /* 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
6895 [split setPercent:50.0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6896 [split setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6897 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
6898 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6899
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6900 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6901 * 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
6902 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6903 * 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
6904 * 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
6905 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6906 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
6907 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
6908 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
6909 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
6910 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6911 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6912 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
6913 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
6914 float pos;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6915 /* 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
6916 #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
6917 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
6918 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
6919 else
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6920 #endif
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6921 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
6922 if(pos > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6923 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6924 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
6925 [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
6926 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6927 /* 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
6928 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6929 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6930 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6931 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6932 /* 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
6933 * 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
6934 * 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
6935 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6936 [split setPercent:percent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6937 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6938 DW_FUNCTION_RETURN_NOTHING;
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
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 * 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
6943 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6944 * 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
6945 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6946 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
6947 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6948 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
6949 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
6950
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6951 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
6952 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
6953 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
6954 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
6955 } else {
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
6956 /* TODO: If possible*/
2372
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 return retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6959 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6960
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6961 /* 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
6962 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
6963 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6964 UIFont *font = DWDefaultFont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6965
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6966 if(fontname)
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 char *name = strchr(fontname, '.');
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 if(name && (name++))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6971 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6972 UIFontDescriptorSymbolicTraits traits = 0;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6973 UIFontDescriptor* fd;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6974 int size = atoi(fontname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6975 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
6976 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
6977 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
6978 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
6979
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6980 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
6981 strncpy(newname, name, len);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6982
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6983 if(Bold)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6984 traits |= UIFontDescriptorTraitBold;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6985 if(Italic)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6986 traits |= UIFontDescriptorTraitItalic;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6987
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6988 fd = [UIFontDescriptor
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6989 fontDescriptorWithFontAttributes:@{UIFontDescriptorFamilyAttribute:[NSString stringWithUTF8String:newname],
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6990 UIFontDescriptorTraitsAttribute: @{UIFontSymbolicTrait:[NSNumber numberWithInteger:traits]}}];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6991 NSArray* matches = [fd matchingFontDescriptorsWithMandatoryKeys:
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6992 [NSSet setWithObjects:UIFontDescriptorFamilyAttribute, UIFontDescriptorTraitsAttribute, nil]];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6993 if(matches.count != 0)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6994 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
6995 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6996 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6997 return font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6998 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6999
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7000 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7001 * 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
7002 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7003 * 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
7004 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7005 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
7006 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
7007 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
7008 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
7009 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7010 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
7011 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
7012 [bitmap setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7013 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
7014 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7015
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7016 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7017 * 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
7018 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7019 * 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
7020 * 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
7021 * 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
7022 * 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
7023 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7024 * 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
7025 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7026 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
7027 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7028 HPIXMAP pixmap = NULL;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7029
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7030 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
7031 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7032 pixmap->width = width;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7033 pixmap->height = height;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7034 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
7035 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
7036 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7037 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7038 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7039
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7040 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7041 * 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
7042 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7043 * 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
7044 * 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
7045 * 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
7046 * (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
7047 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7048 * 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
7049 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7050 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
7051 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7052 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7053 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7054 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
7055
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7056 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
7057 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7058 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7059 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7060 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7061 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
7062 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
7063 if(!tmpimage && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7064 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7065 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
7066 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
7067 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7068 if(!tmpimage)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7069 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7070 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7071 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7072 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7073 pixmap->width = [tmpimage size].width;
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7074 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
7075 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
7076 pixmap->handle = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7077 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7078 return pixmap;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7081 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7082 * 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
7083 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7084 * 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
7085 * 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
7086 * (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
7087 * le: length of data
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7088 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7089 * 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
7090 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7091 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
7092 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7093 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7094 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7095
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7096 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
7097 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7098 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7099 return NULL;
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 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
7102 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
7103 if(!tmpimage)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7104 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7105 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7106 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7107 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7108 pixmap->width = [tmpimage size].width;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7109 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
7110 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
7111 pixmap->handle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7112 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7113 return pixmap;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7116 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7117 * 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
7118 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7119 * 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
7120 * dw_pixmap_new..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7121 * color: transparent color
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7122 * 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
7123 * is handled automatically
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 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
7126 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7127 /* Don't do anything */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7128 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7129
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7130 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7131 * 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
7132 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7133 * 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
7134 * 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
7135 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7136 * 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
7137 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7138 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
7139 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7140 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7141 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7142
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7143 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
7144 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7145 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7146 return NULL;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7149 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7150 NSString *respath = [bundle resourcePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7151 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
7152 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
7153
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7154 if(tmpimage)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7155 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7156 pixmap->width = [tmpimage size].width;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7157 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
7158 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
7159 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
7160 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
7161 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7162 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7163 free(pixmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7164 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7165 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7166 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7167
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7168 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7169 * 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
7170 * 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
7171 * 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
7172 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7173 * 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
7174 * 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
7175 * 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
7176 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7177 * 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
7178 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7179 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
7180 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7181 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7182 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7183 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
7184
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7185 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7186 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7187 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7188 UIFont *oldfont = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7189 [font retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7190 pixmap->font = font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7191 if(oldfont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7192 [oldfont release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7193 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7194 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7195 }
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 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7198 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7199
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7200 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7201 * Destroys an allocated pixmap.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7202 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7203 * 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
7204 * dw_pixmap_new..
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 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
7207 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7208 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7209 {
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
7210 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
7211 UIFont *font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7212 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7213 [image release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7214 [font release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7215 free(pixmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7216 DW_LOCAL_POOL_OUT;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7219
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7220 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7221 * 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
7222 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7223 * dest: Destination window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7224 * 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
7225 * 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
7226 * 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
7227 * 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
7228 * 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
7229 * src: Source window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7230 * 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
7231 * 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
7232 * 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
7233 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7234 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
7235 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7236 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
7237 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7238
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7239 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7240 * 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
7241 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7242 * dest: Destination window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7243 * 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
7244 * 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
7245 * 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
7246 * 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
7247 * 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
7248 * src: Source window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7249 * 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
7250 * 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
7251 * 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
7252 * 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
7253 * 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
7254 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7255 * 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
7256 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7257 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
7258 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7259 DWBitBlt *bltinfo;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7260 NSValue* bi;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7261 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7262
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7263 /* Sanity checks */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7264 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
7265 ((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
7266 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7267 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7268 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7269 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7270
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7271 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
7272 bi = [NSValue valueWithPointer:bltinfo];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7273
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7274 /* Fill in the information */
2436
ab36fbb50fe5 iOS: Fixes to get cachedImage functionality working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2435
diff changeset
7275 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
7276 bltinfo->src = src;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7277 bltinfo->xdest = xdest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7278 bltinfo->ydest = ydest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7279 bltinfo->width = width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7280 bltinfo->height = height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7281 bltinfo->xsrc = xsrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7282 bltinfo->ysrc = ysrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7283 bltinfo->srcwidth = srcwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7284 bltinfo->srcheight = srcheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7285
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7286 if(srcp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7287 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7288 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
7289 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7290 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7291 [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
7292 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7293 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7294 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7297 * 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
7298 * 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
7299 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7300 * 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
7301 * 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
7302 */
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
7303 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
7304 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
7305 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
7306 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
7307 {
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
7308 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
7309 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
7310 [calendar setPreferredDatePickerStyle:UIDatePickerStyleInline];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7311 } else {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7312 // 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
7313 // 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
7314 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7315 [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
7316 [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
7317 [calendar 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
7318 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
7319 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7320
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7321 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7322 * 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
7323 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7324 * 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
7325 * year...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7326 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7327 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
7328 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
7329 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
7330 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
7331 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7332 DWCalendar *calendar = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7333 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
7334 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
7335
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7336 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
7337
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7338 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
7339 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
7340
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7341 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
7342 [calendar setDate:date];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7343 [date release];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7344 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
7345 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7346
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7347 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7348 * 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
7349 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7350 * 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
7351 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7352 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
7353 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
7354 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
7355 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
7356 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7357 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
7358 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
7359 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
7360 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
7361 *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
7362 *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
7363 *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
7364 [mycalendar release];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
7365 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
7366 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7367
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7368 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7369 * 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
7370 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7371 * 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
7372 * 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
7373 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7374 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
7375 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
7376 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
7377 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
7378 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7379 DWWebView *html = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7380 switch(action)
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 case DW_HTML_GOBACK:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7383 [html goBack];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7384 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7385 case DW_HTML_GOFORWARD:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7386 [html goForward];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7387 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7388 case DW_HTML_GOHOME:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7389 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
7390 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7391 case DW_HTML_SEARCH:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7392 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7393 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
7394 [html reload];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7395 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7396 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
7397 [html stopLoading];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7398 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7399 case DW_HTML_PRINT:
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 }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7402 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
7403 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7404
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7405 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7406 * 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
7407 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7408 * 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
7409 * 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
7410 * be rendered.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7411 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7412 * 0 on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7413 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7414 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
7415 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
7416 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
7417 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
7418 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7419 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
7420 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
7421 [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
7422 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
7423 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7424
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7425 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7426 * 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
7427 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7428 * 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
7429 * 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
7430 * 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
7431 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7432 * 0 on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7433 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
7434 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
7435 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
7436 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
7437 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
7438 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7439 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
7440 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
7441 [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
7442 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
7443 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7444
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7445 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7446 * 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
7447 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7448 * 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
7449 * 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
7450 * 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
7451 * 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
7452 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7453 * 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
7454 */
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_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
7456 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
7457 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
7458 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
7459 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7460 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
7461 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
7462 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7463
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7464 [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
7465 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7466 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
7467 _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
7468 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7469 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
7470 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
7471 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7474 * 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
7475 * 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
7476 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7477 * 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
7478 * 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
7479 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7480 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
7481 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
7482 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
7483 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
7484 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7485 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
7486 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
7487 web.navigationDelegate = web;
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
7488 [web setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7489 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
7490 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7491
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 * 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
7494 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7495 * 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
7496 * 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
7497 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7498 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
7499 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7500 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7501 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7502 *x = 0;
2372
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 if(y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7505 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7506 *y = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7507 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7508 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7509
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 * 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
7512 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7513 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7514 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7515 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7516 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
7517 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7518 /* 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
7519 }
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 * 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
7523 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7524 * 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
7525 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7526 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7527 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
7528 {
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7529 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
7530 return menu;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7531 }
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 * 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
7535 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7536 * 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
7537 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7538 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
7539 {
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
7540 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
7541 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
7542
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
7543 [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
7544 return menu;
2372
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7548 * 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
7549 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7550 * 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
7551 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7552 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
7553 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7554 DWMenu *thismenu = *menu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7555 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7556 [thismenu release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7557 DW_LOCAL_POOL_OUT;
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 * 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
7562 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7563 * 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
7564 * 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
7565 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7566 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7567 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7568 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
7569 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7570 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
7571 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
7572 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
7573 [thismenu autorelease];
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
7574 [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
7575 *menu = nil;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7576 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7577
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7578 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
7579 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7580 int z, cur=0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7581 char accel = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7582
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7583 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
7584 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7585 if(src[z] != '~')
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7586 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7587 dest[cur] = src[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7588 cur++;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7591 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7592 accel = src[z+1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7593 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7594 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7595 dest[cur] = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7596 return accel;
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
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 * 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
7601 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7602 * 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
7603 * 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
7604 * 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
7605 * 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
7606 * 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
7607 * 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
7608 * 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
7609 * 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
7610 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7611 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
7612 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7613 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
7614 DWMenuItem *item = nil;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7615 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
7616 [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
7617 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7618 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7619 char accel[2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7620 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
7621 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
7622
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7623 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
7624 accel[1] = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7625
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7626 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
7627 free(newtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7628
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7629 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
7630 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
7631 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
7632 [item setTag:itemid];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7633 [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
7634
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7635 if(check)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7636 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7637 [item setCheck:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7638 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
7639 [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
7640 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7641 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
7642 [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
7643
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7644 if(submenux)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7645 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7646 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
7647
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7648 [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
7649 [item setSubmenu:submenu];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
7650 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7651 return item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7652 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7653 return item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7654 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7655
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7656 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7657 * 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
7658 * 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
7659 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7660 * 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
7661 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7662 * 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
7663 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7664 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
7665 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7666 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
7667 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
7668
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7669 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7670 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7671 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
7672 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7673 else
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7674 [menuitem setState:UIMenuElementStateOff];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7675 }
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
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 * 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
7680 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7681 * 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
7682 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7683 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7684 * 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
7685 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7686 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
7687 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7688 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
7689 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
7690
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7691 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7692 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7693 [menu removeItem:menuitem];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7694 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7695 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7696 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7697 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7700 * 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
7701 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7702 * 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
7703 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7704 * 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
7705 * 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
7706 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7707 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
7708 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7709 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
7710 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
7711
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7712 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7713 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7714 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
7715 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7716 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7717 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7718 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
7719 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7720 [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
7721 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7722 #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
7723 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
7724 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7725 [menuitem setEnabled:YES];
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 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
7728 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7729 [menuitem setEnabled:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7730 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7731 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7732 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7733 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7734
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7735 /* Gets the notebook page from associated ID */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7736 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
7737 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7738 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
7739 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
7740 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7741 if([notepage pageid] == pageid)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7742 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7743 return notepage;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7744 }
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 return nil;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7749 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7750 * 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
7751 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7752 * 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
7753 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7754 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
7755 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
7756 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
7757 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
7758 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
7759 {
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
7760 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
7761 [[notebook tabs] addTarget:notebook
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7762 action:@selector(pageChanged:)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7763 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
7764 [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
7765 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
7766 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7767
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7768 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7769 * 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
7770 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7771 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7772 * 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
7773 * 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
7774 */
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
7775 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
7776 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
7777 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
7778 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
7779 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7780 DWNotebook *notebook = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7781 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
7782 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
7783 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
7784 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
7785
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7786 [notepage setPageid:(int)page];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7787 if(front)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7788 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7789 [[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
7790 [views addObject:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7791 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7792 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7793 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7794 [[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
7795 [views addObject:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7796 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7797 [notebook addSubview:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7798 [notepage autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7799 [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
7800
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7801 if([views count] != 1)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7802 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7803 /* Otherwise hide the page */
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7804 [notepage setHidden:YES];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7805 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7806
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
7807 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
7808 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
7809 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7810
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7811 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7812 * 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
7813 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7814 * 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
7815 * 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
7816 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7817 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
7818 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
7819 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
7820 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
7821 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7822 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7823 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
7824 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7825
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7826 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7827 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7828 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
7829 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
7830
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7831 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
7832 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7833 [[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
7834 [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
7835 [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
7836 [notepage release];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7837 }
2372
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 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
7840 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
7841 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7842
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7843 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7844 * 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
7845 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7846 * 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
7847 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7848 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
7849 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
7850 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
7851 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
7852 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7853 DWNotebook *notebook = handle;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7854 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
7855 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
7856
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
7857 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
7858 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7859 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
7860 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
7861
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
7862 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
7863 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7864 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
7865 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7866
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7867 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7868 * 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
7869 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7870 * 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
7871 * 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
7872 */
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7873 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
7874 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
7875 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
7876 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
7877 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7878 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7879 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
7880
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7881 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7882 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7883 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
7884 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
7885
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
7886 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
7887 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
7888 [[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
7889 }
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7890 }
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7891 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
7892 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7895 * 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
7896 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7897 * handle: Notebook handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7898 * 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
7899 * 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
7900 */
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
7901 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
7902 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
7903 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
7904 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
7905 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7906 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
7907
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7908 [[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
7909 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
7910 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7912 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7913 * 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
7914 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7915 * handle: Notebook handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7916 * 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
7917 * 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
7918 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7919 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
7920 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7921 /* 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
7922 }
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 * 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
7926 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7927 * 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
7928 * 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
7929 * 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
7930 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7931 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
7932 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
7933 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
7934 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
7935 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7936 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
7937 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
7938
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7939 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7940 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7941 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
7942 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
7943 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
7944 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7945
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7946 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7947 * 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
7948 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7949 * 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
7950 * title: The Window title.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7951 * 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
7952 */
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
7953 DW_FUNCTION_DEFINITION(dw_window_new, HWND, DW_UNUSED(HWND hwndOwner), const char *title, ULONG flStyle)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7954 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
7955 DW_FUNCTION_RETURN(dw_window_new, HWND)
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
7956 DW_FUNCTION_RESTORE_PARAM3(DW_UNUSED(hwndOwner), HWND, title, char *, flStyle, ULONG)
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 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
7959 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
7960 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
7961 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
7962 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
7963
2599
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7964 /* Copy the overrideUserInterfaceStyle property from the hiddenWindow */
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7965 if(style != UIUserInterfaceStyleUnspecified)
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7966 [window setOverrideUserInterfaceStyle:style];
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
7967 [window setWindowLevel:UIWindowLevelNormal];
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
7968 [window setRootViewController:[[DWViewController alloc] init]];
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
7969 [window setBackgroundColor:[UIColor systemBackgroundColor]];
2599
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7970 [[[window rootViewController] view] addSubview:view];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7971
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
7972 /* Handle style flags... There is no visible frame...
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
7973 * On iOS 13 and higher if a titlebar is requested create a navigation bar.
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
7974 */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7975 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
7976 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
7977 [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
7978 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
7979 {
2570
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
7980 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
7981 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
7982 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
7983
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 [navbar setItems:@[navItem]];
2599
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7985 [[[window rootViewController] view] addSubview:navbar];
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7986 }
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
7987 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7988 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
7989 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7990
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7991 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7992 * 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
7993 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7994 * 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
7995 * 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
7996 * 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
7997 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7998 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
7999 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8000 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
8001 NSValue *v;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8002 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8003 v = [NSValue valueWithPointer:params];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8004 params[0] = function;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8005 params[1] = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8006 [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
8007 free(params);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8008 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8009 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8012 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8013 * 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
8014 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8015 * 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
8016 * 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
8017 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8018 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
8019 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8020 /* 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
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 * Makes the window visible.
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: 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
8027 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8028 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
8029 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
8030 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
8031 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
8032 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8033 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
8034 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
8035
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8036 if([ object isMemberOfClass:[DWWindow class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8037 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8038 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
8039 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
8040
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8041 /* 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
8042 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
8043 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8044 /* Determine the contents size */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8045 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
8046 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8047 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
8048 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8049 [window makeKeyAndVisible];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8050 [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
8051 }
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8052 else
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8053 [window setHidden:NO];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8054 }
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8055 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
8056 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8059 * Makes the window invisible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8060 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8061 * 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
8062 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8063 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
8064 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
8065 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
8066 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
8067 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8068 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
8069 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
8070
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8071 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
8072 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8073 UIWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8074
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8075 [window setHidden:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8076 }
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8077 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
8078 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8079
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8080 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8081 * 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
8082 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8083 * 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
8084 * 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
8085 * 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
8086 */
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
8087 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
8088 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
8089 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
8090 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
8091 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8092 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
8093 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
8094 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
8095 UIColor *fg = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8096 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
8097 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
8098
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8099 /* 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
8100 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
8101 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8102 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
8103 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8104 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
8105 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8106 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
8107 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8108
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8109 /* 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
8110 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
8111 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8112 object = [object textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8113 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8114 /* 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
8115 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
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 [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
8118 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8119 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
8120 {
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
8121 [[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
8122 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8123 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
8124 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8125 [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
8126 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8127 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
8128 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8129 DWBox *box = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8130
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8131 [box setBackgroundColor:bg];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8132 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8133 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
8134 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8135 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8136
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8137 [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
8138 [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
8139 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8140 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
8141 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8142 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
8143 [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
8144 [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
8145 }
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
8146 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
8147 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8148
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8149 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8150 * 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
8151 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8152 * 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
8153 * 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
8154 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8155 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
8156 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8157 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8158 }
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 * 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
8162 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8163 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8164 * 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
8165 * 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
8166 */
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
8167 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
8168 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
8169 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
8170 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
8171 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8172 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
8173
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8174 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
8175 {
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
8176 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
8177
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
8178 [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
8179 #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
8180 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
8181 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8182 [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
8183 }
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
8184 #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
8185 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
8186 {
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 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
8188 [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
8189 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
8190 [label setLineBreakMode:NSLineBreakByTruncatingTail];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8191 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8192 }
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8193 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
8194 {
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8195 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
8196 [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
8197 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8198 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
8199 {
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8200 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
8201
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8202 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
8203 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8204 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
8205 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8206 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
8207 [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
8208 }
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8209 #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
8210 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
8211 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8212 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
8213 [menuitem setEnabled:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8214 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
8215 [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
8216 }
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8217 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8218 }
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
8219 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
8220 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8221
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8222 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8223 * 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
8224 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8225 * 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
8226 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8227 * 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
8228 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8229 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
8230 DW_FUNCTION_ADD_PARAM1(handle)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8231 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
8232 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
8233 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8234 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8235
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8236 [object becomeFirstResponder];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8237 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
8238 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8239
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8240 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8241 * 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
8242 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8243 * 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
8244 * 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
8245 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8246 * 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
8247 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8248 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
8249 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
8250 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
8251 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
8252 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8253 DWWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8254 id object = defaultitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8255
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8256 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
8257 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8258 [object becomeFirstResponder];
2372
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_RETURN_NOTHING;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8261 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8262
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8263 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8264 * 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
8265 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8266 * 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
8267 * 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
8268 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8269 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
8270 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8271 /* 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
8272 }
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 * 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
8276 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8277 * 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
8278 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8279 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
8280 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8281 /* 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
8282 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8283
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 * Releases previous mouse capture.
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 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
8288 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8289 /* 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
8290 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8291
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 * 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
8294 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8295 * 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
8296 * 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
8297 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8298 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
8299 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8300 /* 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
8301 }
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 /* 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
8304 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8305 * currfont: current font
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8306 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8307 * 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
8308 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8309 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
8310 {
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8311 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
8312 char *font = NULL;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8313
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8314 [params addPointer:(void *)currfont];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8315 [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
8316 if([params count] > 1)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8317 font = [params pointerAtIndex:1];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8318
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8319 return font;
2372
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8322 /* 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
8323 * 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
8324 */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8325 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
8326 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8327 /* 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
8328 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
8329 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8330 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
8331
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8332 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
8333 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8334 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8335 Item *thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8336 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8337
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8338 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
8339 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8340 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
8341 return &thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8342 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8343 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8344 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8345 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8346 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8347
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8348 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8349 * 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
8350 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8351 * 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
8352 * 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
8353 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8354 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
8355 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8356 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
8357 (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
8358
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8359 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8360 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8361 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
8362 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
8363 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8364 DWMLE *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8365
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8366 [mle setFont:font];
2372
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 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
8369 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8370 [object setFont:font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8371 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8372 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
8373 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8374 DWRender *render = object;
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 [render setFont:font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8377 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8378 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8379 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8380 /* 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
8381 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
8382
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8383 /* 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
8384 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
8385 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8386 _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
8387 /* 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
8388 _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
8389 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8390 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8391 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8392 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8393 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8396 * 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
8397 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8398 * 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
8399 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8400 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
8401 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8402 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
8403 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8404
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8405 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
8406 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8407 font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8408 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8409 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8410 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8411 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
8412 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
8413 return strdup([output UTF8String]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8414 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8415 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8416 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8417
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 * 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
8420 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8421 * 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
8422 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8423 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
8424 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
8425 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
8426 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
8427 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8428 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8429 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8430 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8431 int retval = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8432
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8433 /* 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
8434 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
8435 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8436 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
8437 [window release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8438 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8439 /* 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
8440 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
8441 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8442 DWMenuItem *item = object;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8443 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
8444
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8445 [menu removeItem:object];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8446 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8447 /* 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
8448 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
8449 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8450 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
8451
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
8452 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
8453 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8454 id window = [object window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8455 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8456 int z, index = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8457 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
8458
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8459 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8460 thisbox->count = 0;
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 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
8463 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8464 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
8465 index = z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8466 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8467
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8468 if(index != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8469 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8470 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8471
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8472 if(thisbox->count > 1)
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 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
8475
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8476 /* 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
8477 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
8478 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8479 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8480 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8481 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
8482 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8483 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
8484 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8487 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8488 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8489 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8490 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8491 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8492 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8493 thisbox->count = 0;
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 /* 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
8496 _dw_redraw(window, TRUE);
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8500 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8501 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
8502 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8503
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8504 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8505 * 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
8506 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8507 * 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
8508 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8509 * 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
8510 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8511 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
8512 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
8513 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
8514 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
8515 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8516 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
8517 id object = _dw_text_handle(handle);
2589
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8518 id control = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8519 char *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8520
2589
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8521 if([control isKindOfClass:[UIButton class]])
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8522 {
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8523 NSString *nsstr = [control titleForState:UIControlStateNormal];
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8524
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8525 retval = strdup([nsstr UTF8String]);
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8526 }
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8527 else if([object isKindOfClass:[UILabel class]] || [object isKindOfClass:[UITextField class]])
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8528 {
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8529 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
8530
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8531 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
8532 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8533 #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
8534 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
8535 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8536 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
8537 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
8538
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8539 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
8540 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
8541 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8542 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8543 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
8544 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8545
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8546 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8547 * 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
8548 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8549 * 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
8550 * 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
8551 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8552 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
8553 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
8554 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
8555 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
8556 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8557 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
8558 id object = _dw_text_handle(handle);
2589
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8559 id control = 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
8560 Item *item = NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8561
2589
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8562 if([control isKindOfClass:[UIButton class]])
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8563 {
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8564 [control setTitle:[NSString stringWithUTF8String:text] forState:UIControlStateNormal];
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8565 item = _dw_box_item(handle);
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8566 }
e879afecf3ab iOS: Fix dw_window_g/set_text() on buttons, can't use the label directly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2588
diff changeset
8567 else 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
8568 {
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8569 [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
8570 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
8571 }
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 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
8573 {
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 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
8575 NSArray *array = [window subviews];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8576 NSString *nstr = [NSString stringWithUTF8String:text];
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8577
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8578 [window setLargeContentTitle:nstr];
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8579
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
8580 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
8581 {
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 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
8583 {
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 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
8585 UINavigationItem *item = [[nav items] firstObject];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8586
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8587 [item setTitle:nstr];
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
8588 }
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
8589 }
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
8590 }
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8591 #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
8592 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
8593 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8594 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
8595 [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
8596 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
8597 }
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
8598 #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
8599 /* 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
8600 * 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
8601 */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8602 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
8603 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8604 int newwidth, newheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8605
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8606 _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
8607
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8608 /* 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
8609 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
8610 (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
8611 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8612 if(item->origwidth == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8613 item->width = newwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8614 if(item->origheight == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8615 item->height = newheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8616 /* 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
8617 _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
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 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8621 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8622
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8623 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8624 * 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
8625 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8626 * 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
8627 * 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
8628 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8629 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
8630 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8631 /* 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
8632 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8633
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 * Disables given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8636 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8637 * 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
8638 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8639 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
8640 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
8641 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
8642 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
8643 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8644 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8645 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8646
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8647 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
8648 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8649 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
8650 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
8651 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8652 }
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
8653 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
8654 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8655 [object setEnabled:NO];
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 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
8658 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8659 UITextView *mle = object;
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 [mle setEditable:NO];
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 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8664 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8665
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 * Enables given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8668 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8669 * 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
8670 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8671 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
8672 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
8673 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
8674 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
8675 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8676 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8677 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8678
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8679 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
8680 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8681 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
8682 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
8683 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8684 }
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
8685 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
8686 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8687 [object setEnabled:YES];
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 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
8690 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8691 UITextView *mle = object;
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 [mle setEditable:YES];
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 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8696 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8697
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8698 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8699 * 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
8700 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8701 * 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
8702 * 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
8703 * (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
8704 * 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
8705 * 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
8706 * 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
8707 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8708 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
8709 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8710 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8711
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
8712 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
8713 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8714 if(data)
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 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8717 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
8718 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
8719
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8720 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8721 {
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
8722 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
8723 {
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 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
8725 [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
8726 }
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 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
8728 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8729 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
8730 [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
8731 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8732 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8733 /* 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
8734 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
8735
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8736 /* 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
8737 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
8738 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8739 _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
8740 /* 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
8741 _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
8742 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8743 DW_LOCAL_POOL_OUT;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8746 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
8747 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8748 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8749
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8750 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8751 * 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
8752 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8753 * 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
8754 * 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
8755 * (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
8756 * 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
8757 * 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
8758 * 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
8759 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8760 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
8761 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8762 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8763 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8764
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
8765 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
8766 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8767 UIImage *bitmap = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8768
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8769 if(filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8770 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8771 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
8772 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
8773
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8774 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
8775
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8776 if(!bitmap && ext)
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 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
8779 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
8780 }
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 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
8783 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8784 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
8785 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8786
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8787 if(bitmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8788 {
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
8789 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
8790 {
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 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
8792 [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
8793 }
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 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
8795 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
8796 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
8797 [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
8798 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8799
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8800 /* 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
8801 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
8802
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8803 /* 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
8804 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
8805 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8806 _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
8807 /* 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
8808 _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
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 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8813 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8814
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8815 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8816 * 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
8817 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8818 * 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
8819 * 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
8820 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8821 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
8822 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8823 /* 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
8824 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8825
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8826 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8827 * 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
8828 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8829 * 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
8830 * 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
8831 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8832 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
8833 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8834 NSObject *object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8835 UIView *view = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8836 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
8837 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8838 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
8839 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
8840 view = [subviews firstObject];
2372
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 return [view viewWithTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8843 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8844
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 * 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
8847 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8848 * 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
8849 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8850 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
8851 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8852 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8853 }
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 /* 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
8856 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8857 * 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
8858 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8859 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
8860 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8861 DWWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8862 [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
8863 [window setShown:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8864 [window setRedraw:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8865 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8866
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 * Makes the window topmost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8869 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8870 * 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
8871 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8872 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
8873 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8874 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8875 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8876
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 * Makes the window bottommost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8879 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8880 * 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
8881 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8882 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
8883 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8884 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8885 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8886
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8887 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8888 * 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
8889 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8890 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8891 * 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
8892 * 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
8893 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8894 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
8895 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8896 /* 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
8897 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8898
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8899 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8900 * 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
8901 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8902 * 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
8903 * 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
8904 * 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
8905 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8906 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
8907 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8908 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8909
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8910 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
8911 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8912 Box *thisbox;
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 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
8915 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8916 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8917
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8918 /* 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
8919 _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
8920
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8921 /* Return what was requested */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8922 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
8923 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
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8927 _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
8928 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8929
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8930 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8931 * 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
8932 * 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
8933 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8934 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8935 * 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
8936 * 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
8937 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8938 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
8939 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8940 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
8941 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
8942 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8943
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8944 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8945 * 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
8946 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8947 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8948 * 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
8949 * 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
8950 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8951 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
8952 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
8953 /* 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
8954 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8955
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8956 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8957 * 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
8958 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8959 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8960 * 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
8961 * 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
8962 * 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
8963 * 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
8964 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8965 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
8966 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8967 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8968
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8969 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8970 * 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
8971 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8972 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8973 * 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
8974 * 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
8975 * 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
8976 * 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
8977 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8978 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
8979 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8980 NSObject *object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8981
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
8982 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
8983 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8984 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
8985 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
8986 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8987 *x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8988 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
8989 *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
8990 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8991 *width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8992 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8993 *height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8994 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8995 }
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
8996 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
8997 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8998 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
8999 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
9000 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9001 *x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9002 if(y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9003 *y = rect.origin.y;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9004 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9005 *width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9006 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9007 *height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9008 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9009 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9012 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9013 * 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
9014 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9015 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
9016 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9017 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
9018 return screenRect.size.width;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9021 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9022 * 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
9023 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9024 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
9025 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9026 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
9027 return screenRect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9028 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9029
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9030 /* 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
9031 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
9032 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9033 /* 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
9034 return 32;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9035 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9036
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9037 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9038 * 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
9039 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9040 * 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
9041 * 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
9042 * 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
9043 * 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
9044 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9045 * 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
9046 * 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
9047 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9048 * 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
9049 * 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
9050 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9051 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
9052 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9053 char outbuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9054 HWND retval = NULL;
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 if(description)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9057 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9058 va_list 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 va_start(args, description);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9061 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
9062 va_end(args);
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9065 /* 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
9066 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
9067 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9068 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
9069 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9070 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
9071
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9072 if(notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9073 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9074 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
9075 if(description)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9076 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
9077 if(imagepath)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9078 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9079 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
9080 NSError *error;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9081 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
9082 URL:url
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9083 options:nil
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9084 error:&error];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9085 if(attachment)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9086 notification.attachments = @[attachment];
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 retval = notification;
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 return retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9093 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9094
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9095 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9096 * 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
9097 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9098 * 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
9099 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9100 * 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
9101 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9102 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
9103 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9104 if(notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9105 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9106 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
9107
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9108 /* Schedule the notification. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9109 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
9110 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9111 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
9112 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9113 UNMutableNotificationContent* content = (UNMutableNotificationContent *)notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9114 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
9115
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9116 UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9117 [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
9118 }
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 return DW_ERROR_NONE;
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 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9123 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9124
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9125
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 * 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
9128 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9129 * 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
9130 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9131 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
9132 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9133 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
9134 strcpy(env->osName, "iOS");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9135
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9136 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
9137 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
9138 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
9139 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
9140 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
9141 #ifdef VER_REV
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9142 env->DWSubVersion = VER_REV;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9143 #else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9144 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
9145 #endif
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 env->MajorVersion = DWOSMajor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9148 env->MinorVersion = DWOSMinor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9149 env->MajorBuild = DWOSBuild;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9150 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9151
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9152 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9153 * Emits a beep.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9154 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9155 * freq: Frequency.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9156 * dur: Duration.
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 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
9159 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9160 AudioServicesPlayAlertSound((SystemSoundID)1104);
2372
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9163 /* 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
9164 * 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
9165 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9166 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
9167 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9168 /* 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
9169 [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
9170 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9171
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9172 /* 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
9173 * 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
9174 * dw_window_get_data().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9175 */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9176 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
9177 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9178 UserData *tmp = *root;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9179
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9180 while(tmp)
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 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
9183 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9184 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9185 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9186 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9187 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9188
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9189 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
9190 {
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9191 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
9192
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9193 if(new)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9194 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9195 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9196 return TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9197 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9198 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9199 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9200 new = malloc(sizeof(UserData));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9201 if(new)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9202 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9203 new->varname = strdup(varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9204 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9205
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9206 new->next = NULL;
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 if (!*root)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9209 *root = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9210 else
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 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
9213
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9214 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9215 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9216 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9217 tmp = tmp->next;
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 prev->next = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9220 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9221 return TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9222 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9223 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9224 return FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9225 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9226
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9227 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
9228 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9229 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
9230
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9231 while(tmp)
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 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
9234 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9235 if(!prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9236 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9237 *root = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9238 free(tmp->varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9239 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9240 if(!all)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9241 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9242 tmp = *root;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9243 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9244 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9245 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9246 /* 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
9247 * never get here.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9248 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9249 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9250 free(tmp->varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9251 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9252 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9253 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9254 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9255 else
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 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9258 tmp = tmp->next;
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 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9262 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9263
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9264 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9265 * 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
9266 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9267 * 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
9268 * 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
9269 * 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
9270 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9271 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
9272 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
9273 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
9274 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
9275 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9276 id object = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9277 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
9278 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9279 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
9280 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
9281 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9282 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9283 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
9284 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9285 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
9286 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
9287 object = [subviews firstObject];
2372
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 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
9290
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9291 if(!blah)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9292 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9293 if(!dataname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9294 return;
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 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
9297 [object setUserdata:blah];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9298 }
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(data)
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9301 _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
9302 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9303 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9304 if(dataname)
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9305 _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
9306 else
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9307 _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
9308 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9309 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
9310 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9311
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9312 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9313 * 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
9314 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9315 * 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
9316 * 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
9317 * 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
9318 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9319 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
9320 DW_FUNCTION_ADD_PARAM2(window, dataname)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9321 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
9322 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
9323 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9324 id object = window;
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9325 void *retval = NULL;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9326
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9327 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
9328 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9329 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
9330 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
9331 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9332 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9333 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
9334 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9335 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
9336 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
9337 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9338 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9339 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
9340
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9341 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
9342 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9343 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
9344 if(ud)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9345 retval = ud->data;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9346 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9347 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
9348 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9349
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
9350 /*
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 * 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
9352 * 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
9353 * 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
9354 * 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
9355 * 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
9356 * 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
9357 */
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 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
9359 {
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 /* 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
9361 * 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
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 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
9364 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
9365 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
9366 }
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
9367
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9368 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9369 * 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
9370 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9371 * 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
9372 * 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
9373 * 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
9374 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9375 * 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
9376 */
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9377 DW_FUNCTION_DEFINITION(dw_timer_connect, HTIMER, int interval, void *sigfunc, void *data)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9378 DW_FUNCTION_ADD_PARAM3(interval, sigfunc, data)
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9379 DW_FUNCTION_RETURN(dw_timer_connect, HTIMER)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9380 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
9381 {
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9382 HTIMER retval = 0;
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9383
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9384 if(sigfunc)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9385 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9386 NSTimeInterval seconds = (double)interval / 1000.0;
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9387
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9388 retval = [NSTimer scheduledTimerWithTimeInterval:seconds target:DWHandler selector:@selector(runTimer:) userInfo:nil repeats:YES];
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9389 _dw_new_signal(0, retval, 0, sigfunc, NULL, data);
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9390 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9391 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
9392 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9393
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9394 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9395 * Removes timer callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9396 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9397 * 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
9398 */
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9399 DW_FUNCTION_DEFINITION(dw_timer_disconnect, void, HTIMER timerid)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9400 DW_FUNCTION_ADD_PARAM1(timerid)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9401 DW_FUNCTION_NO_RETURN(dw_timer_disconnect)
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9402 DW_FUNCTION_RESTORE_PARAM1(timerid, HTIMER)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9403 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9404 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
9405
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9406 /* 0 is an invalid timer ID */
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9407 if(timerid)
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9408 {
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9409 NSTimer *thistimer = timerid;
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9410
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9411 [thistimer invalidate];
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9412
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9413 while(tmp)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9414 {
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
9415 if(tmp->window == thistimer)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9416 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9417 if(prev)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9418 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9419 prev->next = tmp->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9420 free(tmp);
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9421 tmp = prev->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9422 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9423 else
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9424 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9425 DWRoot = tmp->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9426 free(tmp);
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9427 tmp = DWRoot;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9428 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9429 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9430 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9431 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9432 prev = tmp;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9433 tmp = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9434 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9435 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9436 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9437 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
9438 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9439
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9440 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9441 * 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
9442 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9443 * 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
9444 * 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
9445 * 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
9446 * 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
9447 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9448 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
9449 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9450 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
9451 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9452
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9453 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9454 * 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
9455 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9456 * 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
9457 * 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
9458 * 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
9459 * 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
9460 * 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
9461 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9462 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
9463 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9464 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
9465
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9466 /* 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
9467 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
9468 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9469 window = DWApp;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9472 if(window && signame && sigfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9473 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9474 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
9475 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9476 _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
9477 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9478 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9482 * 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
9483 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9484 * 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
9485 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9486 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
9487 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9488 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
9489 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9490
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
9491 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
9492 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9493
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9494 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9495 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9496 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
9497 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9498 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
9499
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9500 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9501 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9502 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
9503 }
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(prev)
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 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9508 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9509 tmp = prev->next;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9512 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9513 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9514 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9515 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9516 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9517 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9518 else
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 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9521 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9522 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9523 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9524 }
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 * 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
9528 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9529 * 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
9530 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9531 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
9532 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9533 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
9534
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9535 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9536 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9537 if(tmp->window == window)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9538 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9539 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
9540
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9541 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9542 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9543 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
9544 }
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(prev)
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 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9549 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9550 tmp = prev->next;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9553 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9554 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9555 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9556 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9557 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9558 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9559 else
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 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9562 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9563 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9564 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9565 }
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 * 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
9569 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9570 * 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
9571 * 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
9572 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9573 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
9574 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9575 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
9576
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9577 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9578 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9579 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
9580 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9581 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
9582
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9583 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9584 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9585 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
9586 }
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(prev)
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 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9591 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9592 tmp = prev->next;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9595 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9596 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9597 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9598 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9599 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9600 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9601 else
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 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9604 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9605 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9606 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9607 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9608
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9609 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
9610 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9611 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
9612
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9613 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
9614 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9615 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
9616 buf[z] -= 'A' - 'a';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9617 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9618 }
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 /* 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
9621 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9622 * 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
9623 * 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
9624 * 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
9625 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9626 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
9627 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9628 int len;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9629 char *newname;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9630 char errorbuf[1025];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9631
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9632
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9633 if(!handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9634 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9635
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9636 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
9637 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9638
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9639 /* Lenth + "lib" + ".dylib" + NULL */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9640 newname = malloc(len + 10);
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(!newname)
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 sprintf(newname, "lib%s.dylib", name);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9646 _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
9647
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9648 *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
9649 if(*handle == NULL)
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 strncpy(errorbuf, dlerror(), 1024);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9652 printf("%s\n", errorbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9653 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
9654 *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
9655 }
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 free(newname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9658
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9659 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
9660 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9661
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9662 /* 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
9663 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9664 * 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
9665 * 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
9666 * 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
9667 * the address.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9668 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9669 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
9670 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9671 if(!func || !name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9672 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9673
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9674 if(strlen(name) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9675 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9676
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9677 *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
9678 return (NULL == *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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9681 /* 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
9682 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9683 * 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
9684 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9685 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
9686 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9687 if(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9688 return dlclose(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9689 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9690 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9691
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9692 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9693 * 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
9694 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9695 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
9696 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9697 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
9698
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9699 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
9700 return mutex;
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
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 * 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
9705 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9706 * 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
9707 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9708 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
9709 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9710 if(mutex)
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 pthread_mutex_destroy(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9713 free(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9714 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9715 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9718 * 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
9719 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9720 * 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
9721 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9722 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
9723 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9724 /* 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
9725 * 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
9726 * 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
9727 * 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
9728 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9729 if(DWThread == pthread_self())
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 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
9732 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9733 /* Process any pending events */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9734 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
9735 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9736 /* Just loop */
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 }
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 else
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 pthread_mutex_lock(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9743 }
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
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 * 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
9748 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9749 * 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
9750 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9751 * 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
9752 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9753 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
9754 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9755 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
9756 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9757 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9758 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9759
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9760 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9761 * 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
9762 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9763 * 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
9764 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9765 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
9766 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9767 pthread_mutex_unlock(mutex);
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9771 * 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
9772 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9773 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
9774 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9775 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
9776
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9777 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9778 return NULL;
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 /* 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
9781 * 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
9782 * 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
9783 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9784 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
9785 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
9786 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
9787
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9788 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
9789 eve->alive = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9790 eve->posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9791
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9792 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9793 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9794
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9795 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9796 * 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
9797 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9798 * 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
9799 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9800 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
9801 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9802 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9803 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
9804
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9805 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
9806 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
9807 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
9808 eve->posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9809 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
9810 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9811 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9812
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 * 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
9815 * 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
9816 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9817 * 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
9818 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9819 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
9820 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9821 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9822 return FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9823
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9824 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
9825 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
9826 eve->posted = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9827 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
9828 return 0;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9831 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9832 * 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
9833 * 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
9834 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9835 * 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
9836 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9837 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
9838 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9839 int rc;
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 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9842 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
9843
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9844 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
9845
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9846 if(eve->posted)
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 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
9849 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9850 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9851
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9852 if(timeout != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9853 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9854 struct timeval now;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9855 struct timespec timeo;
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 gettimeofday(&now, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9858 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
9859 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
9860 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
9861 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9862 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9863 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
9864 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
9865 if(!rc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9866 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9867 if(rc == ETIMEDOUT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9868 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9869 return DW_ERROR_GENERAL;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9872 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9873 * 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
9874 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9875 * 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
9876 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9877 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
9878 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9879 if(!eve || !(*eve))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9880 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
9881
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9882 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
9883 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
9884 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
9885 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
9886 free(*eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9887 *eve = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9888
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9889 return DW_ERROR_NONE;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9892 struct _seminfo {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9893 int fd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9894 int waiting;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9895 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9896
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9897 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
9898 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9899 fd_set rd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9900 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
9901 int listenfd = tmpsock[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9902 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
9903 char command;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9904 sigset_t mask;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9905
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9906 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
9907 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
9908
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9909 /* problems */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9910 if(tmpsock[1] == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9911 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9912 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9913 return;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9916 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
9917 array[0].waiting = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9918
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9919 /* 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
9920 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9921
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9922 while(1)
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 FD_ZERO(&rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9925 FD_SET(listenfd, &rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9926
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9927 maxfd = listenfd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9928
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9929 /* 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
9930 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
9931 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9932 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
9933 maxfd = array[z].fd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9934
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9935 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
9936 }
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 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
9939 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9940 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9941 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9942 }
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 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
9945 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9946 struct _seminfo *newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9947 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
9948
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9949 if(newfd > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9950 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9951 /* 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
9952 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
9953 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
9954
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9955 newarray[connectcount].fd = newfd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9956 newarray[connectcount].waiting = 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 connectcount++;
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 /* 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
9961 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9962 array = newarray;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9965
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9966 /* 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
9967 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
9968 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9969 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
9970 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9971 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
9972 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9973 struct _seminfo *newarray = NULL;
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 /* 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
9976 if(connectcount > 1)
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 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
9979 if(!z)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9980 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
9981 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9982 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9983 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
9984 if(z!=(connectcount-1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9985 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
9986 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9987 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9988 connectcount--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9989
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9990 /* 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
9991 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9992 array = newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9993 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9994 else if(bytesread == 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 switch(command)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9997 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9998 case 0:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9999 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10000 /* Reset */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10001 posted = 0;
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 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10004 case 1:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10005 /* Post */
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 int s;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10008 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10009
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10010 posted = 1;
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 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
10013 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10014 /* 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
10015 * 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
10016 * continue.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10017 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10018 if(array[s].waiting)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10019 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
10020 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10021 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10022 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10023 case 2:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10024 /* Wait */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10025 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10026 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10027
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10028 array[z].waiting = 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 /* 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
10031 if(posted)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10032 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
10033 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10034 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10035 case 3:
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 /* Done Waiting */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10038 array[z].waiting = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10039 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10040 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10041 }
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10044 }
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10047
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10048 /* 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
10049 /* 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
10050 * opened from other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10051 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10052 * 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
10053 * 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
10054 * by other processes.
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 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
10057 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10058 struct sockaddr_un un;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10059 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
10060 HEV eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10061 DWTID dwthread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10062
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10063 if(!tmpsock)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10064 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10065
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10066 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
10067
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10068 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10069 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10070 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10071 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10072 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10073
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10074 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
10075 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
10076 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
10077 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
10078 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
10079 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
10080 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
10081
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10082 /* 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
10083 * to support multiple instances.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10084 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10085 remove(un.sun_path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10086
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10087 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
10088 listen(tmpsock[0], 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10089 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
10090 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
10091
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10092 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
10093 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10094 if(tmpsock[0] > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10095 close(tmpsock[0]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10096 if(tmpsock[1] > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10097 close(tmpsock[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10098 if(ev > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10099 close(ev);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10100 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10101 free(eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10102 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10103 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10104
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10105 /* Create a thread to handle this event semaphore */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10106 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
10107 eve->alive = ev;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10108 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10109 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10110
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10111 /* 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
10112 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10113 * 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
10114 * 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
10115 * by other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10116 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10117 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
10118 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10119 struct sockaddr_un un;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10120 HEV eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10121 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
10122 if(ev < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10123 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10124
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10125 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
10126
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10127 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10128 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10129 close(ev);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10130 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10131 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10132
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10133 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
10134 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
10135 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
10136 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
10137 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
10138 eve->alive = ev;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10139 return eve;
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 /* 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
10143 * 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
10144 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10145 * 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
10146 * 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
10147 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10148 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
10149 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10150 /* signal reset */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10151 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10152
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10153 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
10154 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10155
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10156 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
10157 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10158 return 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10159 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10160
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10161 /* 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
10162 * 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
10163 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10164 * 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
10165 * 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
10166 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10167 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
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 /* signal post */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10171 char tmp = (char)1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10172
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10173 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
10174 return 0;
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 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
10177 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10178 return 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10179 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10180
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10181 /* 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
10182 * 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
10183 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10184 * 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
10185 * 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
10186 * 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
10187 * or -1 if indefinite.
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 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
10190 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10191 fd_set rd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10192 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
10193 int retval = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10194 char tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10195
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10196 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
10197 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
10198
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10199 /* 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
10200 if(timeout != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10201 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10202 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
10203 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
10204
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10205 useme = &tv;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10206 }
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 FD_ZERO(&rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10209 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
10210
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10211 /* Signal wait */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10212 tmp = (char)2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10213 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
10214
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10215 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
10216
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10217 /* Signal done waiting. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10218 tmp = (char)3;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10219 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
10220
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10221 if(retval == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10222 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10223 else if(retval == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10224 return DW_ERROR_INTERRUPT;
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 /* 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
10227 * 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
10228 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10229 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
10230 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10231 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10232
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10233 /* 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
10234 * 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
10235 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10236 * 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
10237 * 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
10238 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10239 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
10240 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10241 /* Finally close the domain socket,
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10242 * 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
10243 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10244 if(eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10245 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10246 close(eve->alive);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10247 free(eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10248 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10249 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10250 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10251
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10252 /* 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
10253 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
10254 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10255 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
10256 [pool drain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10257 pool = [[NSAutoreleasePool alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10258 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10262 * 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
10263 * 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
10264 * 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
10265 * 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
10266 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10267 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
10268 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10269 /* 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
10270 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
10271 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
10272 _dw_init_colors();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10273 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10274
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 * 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
10277 * 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
10278 * 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
10279 * 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
10280 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10281 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
10282 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10283 UIColor *color;
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 /* 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
10286 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
10287 [color release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10288 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
10289 [color release];
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10290 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
10291 [pool drain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10292 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10295 * Setup thread independent pools.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10296 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10297 void _dwthreadstart(void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10298 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10299 void (*threadfunc)(void *) = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10300 void **tmp = (void **)data;
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 _dw_init_thread();
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 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
10305
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10306 /* Start our thread function */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10307 threadfunc(tmp[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10308
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10309 free(tmp);
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_deinit_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
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 * 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
10316 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10317 * 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
10318 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10319 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
10320 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10321 UIFont *oldfont = DWDefaultFont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10322 DWDefaultFont = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10323 if(fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10324 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10325 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
10326 [DWDefaultFont retain];
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 [oldfont release];
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
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10331 /* 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
10332 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
10333 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10334 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
10335 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
10336 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
10337
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10338 _dwmain(argc, argv);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10339 free(data);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10340 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10341
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10342 /* 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
10343 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
10344 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10345 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
10346 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
10347 /* 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
10348 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
10349 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
10350 DWObj = [[DWObject alloc] init];
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10351 /* Create object for handling timers */
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10352 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
10353 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
10354 /* 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
10355 DWThread = (DWTID)-1;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10356 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10357
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10358 /* 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
10359 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
10360 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10361 /* 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
10362 * 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
10363 * 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
10364 * 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
10365 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10366 while(!DWApp)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10367 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10368 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
10369
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10370 if(DWMainEvent && !posted)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10371 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10372 /* 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
10373 * 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
10374 * the UIApplication sharedApplication.
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10375 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10376 posted = TRUE;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10377 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
10378 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10379 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
10380 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
10381 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
10382 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
10383 [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
10384 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10385
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10386 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10387 * 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
10388 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10389 * 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
10390 * 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
10391 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10392 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
10393 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10394 char *lang = getenv("LANG");
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 /* 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
10397 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
10398 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10399 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
10400 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
10401 char *binname = strrchr(pathcopy, '/');
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 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
10404 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10405 /* 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
10406 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
10407 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10408 if(app)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10409 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10410 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
10411 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
10412
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10413 if(len > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10414 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10415 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
10416 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10417 *app = 0;
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 getcwd(pathbuf, PATH_MAX);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10420
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10421 /* 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
10422 if(strcmp(pathbuf, "/") == 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 char *pos = strrchr(pathcopy, '/');
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 if(pos)
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 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
10429 chdir(pathbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10430 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10431 }
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 if(pathcopy)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10434 free(pathcopy);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10435 }
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 /* 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
10438 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
10439 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
10440
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10441 /* 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
10442 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
10443 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
10444 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
10445 /* 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
10446 * 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
10447 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10448 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
10449 /* Create the application object */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10450 _dw_app_init();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10451 pthread_key_create(&_dw_pool_key, NULL);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10452 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
10453 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
10454 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
10455 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
10456 _dw_init_colors();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10457 DWDefaultFont = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10458 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
10459 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10460 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
10461 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10462 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10463 if(center)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10464 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10465 [center requestAuthorizationWithOptions:UNAuthorizationOptionAlert|UNAuthorizationOptionSound
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10466 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
10467 if (granted)
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 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
10470 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10471 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10472 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10473 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
10474 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10475 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10476 }
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10479 _DWDirtyDrawables = [[NSMutableArray alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10480 /* 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
10481 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
10482 [thread start];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10483 [thread release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10484 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
10485 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10486 /* 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
10487 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
10488 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10489 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10490 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10491
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10492 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10493 * 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
10494 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10495 * 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
10496 * 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
10497 * 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
10498 * 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
10499 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10500 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
10501 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10502 char namebuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10503 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
10504
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10505 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
10506 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
10507
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10508 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
10509 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10510 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10511 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10512 }
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 ftruncate(handle->fd, size);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10515
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10516 /* 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
10517 *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
10518
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10519 if(*dest == MAP_FAILED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10520 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10521 close(handle->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10522 *dest = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10523 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10524 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10525 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10526
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10527 handle->size = size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10528 handle->sid = getsid(0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10529 handle->path = strdup(namebuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10530
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10531 return handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10532 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10533
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 * 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
10536 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10537 * 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
10538 * 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
10539 * 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
10540 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10541 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
10542 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10543 char namebuf[1025];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10544 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
10545
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10546 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
10547 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
10548
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10549 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
10550 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10551 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10552 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10553 }
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 /* 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
10556 *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
10557
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10558 if(*dest == MAP_FAILED)
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 close(handle->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10561 *dest = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10562 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10563 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10564 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10565
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10566 handle->size = size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10567 handle->sid = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10568 handle->path = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10569
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10570 return handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10571 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10572
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 * 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
10575 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10576 * 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
10577 * 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
10578 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10579 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
10580 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10581 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
10582 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
10583
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10584 close(h->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10585 if(h->path)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10586 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10587 /* 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
10588 * creator of the file.
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 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
10591 remove(h->path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10592 free(h->path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10593 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10594 return rc;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10597 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10598 * 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
10599 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10600 * 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
10601 * 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
10602 * 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
10603 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10604 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
10605 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10606 DWTID thread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10607 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
10608 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10609
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10610 tmp[0] = func;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10611 tmp[1] = data;
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 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
10614 if(rc == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10615 return thread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10616 return (DWTID)-1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10617 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10620 * 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
10621 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10622 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
10623 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10624 pthread_exit(NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10625 }
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 * 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
10629 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10630 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
10631 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10632 return (DWTID)pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10633 }
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 * 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
10637 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10638 * 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
10639 * 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
10640 * 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
10641 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10642 * 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
10643 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10644 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
10645 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10646 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
10647
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10648 #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
10649 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
10650 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10651 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
10652 NSWorkspace *ws = [NSWorkspace sharedWorkspace];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10653
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10654 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
10655 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10656 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
10657 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
10658 __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
10659 int z = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10660
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10661 while(params[z])
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 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
10664 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
10665
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10666 [array addObject:nsfile];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10667 z++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10668 }
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 [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
10671 configuration:[NSWorkspaceOpenConfiguration configuration]
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10672 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
10673 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
10674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10675 if(error)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10676 NSLog(@"openURLs: %@", [error localizedDescription]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10677 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10678 pid = [app processIdentifier];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10679 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
10680 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10681 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
10682 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10683 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10684 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10685 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
10686 __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
10687
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10688 [ws openApplicationAtURL:url
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10689 configuration:[NSWorkspaceOpenConfiguration configuration]
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10690 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
10691 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
10692
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10693 if(error)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10694 NSLog(@"openApplicationAtURL: %@", [error localizedDescription]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10695 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10696 pid = [app processIdentifier];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10697 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
10698 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10699 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
10700 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10701 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10702 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10703 return ret;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10704 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10705
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10706 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10707 * 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
10708 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10709 * url: Uniform resource locator.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10710 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10711 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
10712 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10713 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
10714 [DWApp openURL:myurl options:@{}
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10715 completionHandler:^(BOOL success) {}];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10716 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10717 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10718
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 * 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
10721 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10722 * 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
10723 * 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
10724 * 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
10725 * 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
10726 * 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
10727 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10728 * 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
10729 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10730 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
10731 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10732 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10733 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10734
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10735 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10736 * 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
10737 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10738 * 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
10739 * 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
10740 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10741 * 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
10742 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10743 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
10744 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
10745 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
10746 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10747
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10748 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10749 * 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
10750 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10751 * 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
10752 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10753 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
10754 {
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 * 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
10759 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10760 * 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
10761 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10762 * 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
10763 * or NULL on failure.
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 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
10766 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10767 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
10768 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
10769 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10770 mbstowcs(temp, utf8string, buflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10771 return temp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10772 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10775 * 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
10776 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10777 * wstring: Wide source string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10778 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10779 * 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
10780 * or NULL on failure.
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 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
10783 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10784 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
10785 char *temp = malloc(bufflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10786 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10787 wcstombs(temp, wstring, bufflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10788 return temp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10789 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10792 * 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
10793 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10794 * 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
10795 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10796 * 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
10797 * 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
10798 * 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
10799 * 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
10800 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10801 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
10802 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10803 switch(feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10804 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10805 case DW_FEATURE_NOTIFICATION:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10806 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
10807 case DW_FEATURE_HTML:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10808 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
10809 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
10810 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
10811 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
10812 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
10813 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
10814 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10815 if(DWObj)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10816 {
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10817 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
10818 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
10819 NSNumber *number;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10820
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10821 [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
10822 number = [array lastObject];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10823 if(number)
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10824 retval = [number intValue];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
10825 return retval;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10826 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10827 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
10828 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10829 default:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10830 return DW_FEATURE_UNSUPPORTED;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10831 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10832 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10833
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10834 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10835 * 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
10836 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10837 * 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
10838 * 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
10839 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10840 * 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
10841 * 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
10842 * 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
10843 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10844 * 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
10845 * 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
10846 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10847 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
10848 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10849 switch(feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10850 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10851 /* 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
10852 case DW_FEATURE_NOTIFICATION:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10853 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
10854 case DW_FEATURE_HTML:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10855 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
10856 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
10857 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
10858 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
10859 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
10860 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
10861 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10862 /* 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
10863 if(DWObj)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10864 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10865 /* 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
10866 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
10867 [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
10868 /* 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
10869 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
10870 [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
10871 /* 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
10872 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
10873 [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
10874 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
10875 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
10876 _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
10877 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10878 default:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10879 return DW_FEATURE_UNSUPPORTED;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10880 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10881 }