annotate ios/dw.m @ 2765:f734185664cc

iOS: Initial tree view implementation for iOS. Still needs a lot of work, callbacks not implemented. Root node needs to be hidden from view.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 07 Apr 2022 21:54:35 +0000
parents 4c602db2d2cf
children 9b9bc2c2bbad
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 *
2751
ee1cfa7d645e Update copyright dates for the new year 2022.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2740
diff changeset
5 * (C) 2011-2022 Brian Smith <brian@dbsoft.org>
ee1cfa7d645e Update copyright dates for the new year 2022.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2740
diff changeset
6 * (C) 2011-2021 Mark Hessling <mark@rexx.org>
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
7 * (C) 2017 Ralph Shane (Base tree view implementation)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
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
9 * 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
10 * 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
11 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
12 #import <Foundation/Foundation.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
13 #import <UIKit/UIKit.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
14 #import <WebKit/WebKit.h>
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
15 #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
16 #import <UserNotifications/UserNotifications.h>
2712
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
17 #import <UniformTypeIdentifiers/UTDefines.h>
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
18 #import <UniformTypeIdentifiers/UTType.h>
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
19 #import <UniformTypeIdentifiers/UTCoreTypes.h>
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
20 #include "dw.h"
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
21 #include <sys/utsname.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
22 #include <sys/socket.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
23 #include <sys/un.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
24 #include <sys/mman.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
25 #include <sys/time.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
26 #include <sys/stat.h>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
27 #include <math.h>
2698
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
28 #include <spawn.h>
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
29
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
30 /* 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
31 #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
32 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
33 localpool = [[NSAutoreleasePool alloc] init];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
34 #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
35
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
36 /* 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
37 #define DW_FUNCTION_INIT
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
38 #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
39 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
40 DW_LOCAL_POOL_IN; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
41 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
42 [_args addPointer:(void *)_##func];
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
43 #define DW_FUNCTION_ADD_PARAM1(param1) [_args addPointer:(void *)&param1]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
44 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
45 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
46 #define DW_FUNCTION_ADD_PARAM2(param1, param2) [_args addPointer:(void *)&param1]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
47 [_args addPointer:(void *)&param2]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
48 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
49 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
50 #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
51 [_args addPointer:(void *)&param2]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
52 [_args addPointer:(void *)&param3]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
53 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
54 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
55 #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
56 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
57 [_args addPointer:(void *)&param3]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
58 [_args addPointer:(void *)&param4]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
59 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
60 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
61 #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
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]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
65 [_args addPointer:(void *)&param5]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
66 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
67 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
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_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
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]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
74 [_args addPointer:(void *)&param6]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
75 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
76 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
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_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
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]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
84 [_args addPointer:(void *)&param7]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
85 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
86 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
87 #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
88 [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
89 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
90 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
91 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
92 [_args addPointer:(void *)&param5]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
93 [_args addPointer:(void *)&param6]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
94 [_args addPointer:(void *)&param7]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
95 [_args addPointer:(void *)&param8]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
96 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
97 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
98 #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
99 [_args addPointer:(void *)&param1]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
100 [_args addPointer:(void *)&param2]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
101 [_args addPointer:(void *)&param3]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
102 [_args addPointer:(void *)&param4]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
103 [_args addPointer:(void *)&param5]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
104 [_args addPointer:(void *)&param6]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
105 [_args addPointer:(void *)&param7]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
106 [_args addPointer:(void *)&param8]; \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
107 [_args addPointer:(void *)&param9]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
108 [_args addPointer:(void *)pthread_getspecific(_dw_fg_color_key)]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
109 [_args addPointer:(void *)pthread_getspecific(_dw_bg_color_key)];
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
110 #define DW_FUNCTION_RESTORE_PARAM1(param1, vartype1) \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
111 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
112 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:2]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
113 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:3];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
114 #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
115 vartype1 param1 = *((vartype1 *)[_args pointerAtIndex:1]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
116 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
117 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:3]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
118 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:4];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
119 #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
120 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
121 vartype2 param2 = *((vartype2 *)[_args pointerAtIndex:2]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
122 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
123 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:4]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
124 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:5];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
125 #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
126 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
127 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
128 vartype3 param3 = *((vartype3 *)[_args pointerAtIndex:3]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
129 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
130 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:5]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
131 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:6];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
132 #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
133 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
134 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
135 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
136 vartype4 param4 = *((vartype4 *)[_args pointerAtIndex:4]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
137 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
138 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:6]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
139 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:7];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
140 #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
141 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
142 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
143 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
144 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
145 vartype5 param5 = *((vartype5 *)[_args pointerAtIndex:5]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
146 vartype6 param6 = *((vartype6 *)[_args pointerAtIndex:6]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
147 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:7]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
148 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:8];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
149 #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
150 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
151 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
152 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
153 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
154 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
155 vartype6 param6 = *((vartype6 *)[_args pointerAtIndex:6]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
156 vartype7 param7 = *((vartype7 *)[_args pointerAtIndex:7]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
157 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:8]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
158 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:9];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
159 #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
160 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
161 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
162 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
163 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
164 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
165 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
166 vartype7 param7 = *((vartype7 *)[_args pointerAtIndex:7]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
167 vartype8 param8 = *((vartype8 *)[_args pointerAtIndex:8]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
168 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:9]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
169 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:10];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
170 #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
171 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
172 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
173 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
174 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
175 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
176 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
177 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
178 vartype8 param8 = *((vartype8 *)[_args pointerAtIndex:8]); \
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
179 vartype9 param9 = *((vartype9 *)[_args pointerAtIndex:9]); \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
180 UIColor *__attribute__((__unused__))_dw_fg_color = (UIColor *)[_args pointerAtIndex:10]; \
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
181 UIColor *__attribute__((__unused__))_dw_bg_color = (UIColor *)[_args pointerAtIndex:11];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
182 #define DW_FUNCTION_END }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
183 #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
184 [_args release]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
185 DW_LOCAL_POOL_OUT; } \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
186 void _##func(NSPointerArray *_args) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
187 #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
188 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
189 rettype myreturn = *((rettype *)tmp); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
190 free(tmp); \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
191 return myreturn; } \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
192 [_args release]; \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
193 DW_LOCAL_POOL_OUT; } \
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
194 void _##func(NSPointerArray *_args) {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
195 #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
196 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
197 [_args addPointer:_myreturn]; }}
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
198 #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
199
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
200 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
201 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
202 0x00000000, /* 0 black */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
203 0x000000bb, /* 1 red */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
204 0x0000bb00, /* 2 green */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
205 0x0000aaaa, /* 3 yellow */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
206 0x00cc0000, /* 4 blue */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
207 0x00bb00bb, /* 5 magenta */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
208 0x00bbbb00, /* 6 cyan */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
209 0x00bbbbbb, /* 7 white */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
210 0x00777777, /* 8 grey */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
211 0x000000ff, /* 9 bright red */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
212 0x0000ff00, /* 10 bright green */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
213 0x0000eeee, /* 11 bright yellow */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
214 0x00ff0000, /* 12 bright blue */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
215 0x00ff00ff, /* 13 bright magenta */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
216 0x00eeee00, /* 14 bright cyan */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
217 0x00ffffff, /* 15 bright white */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
218 0xff000000 /* 16 default color */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
219 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
220
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 * 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
223 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
224 #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
225 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
226 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
227 ".png",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
228 ".ico",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
229 ".icns",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
230 ".gif",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
231 ".jpg",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
232 ".jpeg",
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
233 ".tiff",
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
234 ".bmp",
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
235 NULL
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
236 };
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
237
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
238 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
239 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
240 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
241 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
242
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
243 /* 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
244 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
245 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
246 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
247 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
248 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
249 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
250 found_ext = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
251 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
252 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
253 }
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
254 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
255 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
256 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
257 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
258 return NULL;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
261 /* 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
262 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
263 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
264 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
265 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
266 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
267 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
268 else if(thiscolor < 17)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
269 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
270 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
271 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
272 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
273 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
274
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
275 /* Thread specific storage */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
276 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
277 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
278 pthread_key_t _dw_bg_color_key;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
279 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
280 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
281 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
282 static int _dw_dark_mode_state = DW_FEATURE_UNSUPPORTED;
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
283 static CGPoint _dw_event_point = {0};
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
284 static NSMutableArray *_dw_toplevel_windows;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
285
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
286 /* 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
287 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
288 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
289 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
290 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
291 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
292 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
293
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
294 typedef struct _dwsighandler
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
295 {
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
296 struct _dwsighandler *next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
297 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
298 HWND window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
299 int id;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
300 void *signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
301 void *discfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
302 void *data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
303
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
304 } DWSignalHandler;
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
305
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
306 static DWSignalHandler *DWRoot = NULL;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
307
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
308 /* 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
309 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
310 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
311 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
312 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
313 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
314 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
315
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
316 /* 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
317 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
318 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
319 static id lastwindow = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
320 id redraw = lastwindow;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
321
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
322 if(skip && window == nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
323 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
324
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
325 lastwindow = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
326 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
327 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
328 dw_window_redraw(redraw);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
329 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
330 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
331
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
332 DWSignalHandler *_dw_get_handler(HWND window, int messageid)
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
333 {
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
334 DWSignalHandler *tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
335
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
336 /* 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
337 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
338 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
339 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
340 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
341 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
342 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
343 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
344 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
345 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
346 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
347
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
348 typedef struct
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 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
351 char name[30];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
352
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
353 } DWSignalList;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
354
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
355 /* List of signals */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
356 #define SIGNALMAX 19
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
357
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
358 static DWSignalList DWSignalTranslate[SIGNALMAX] = {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
359 { _DW_EVENT_CONFIGURE, DW_SIGNAL_CONFIGURE },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
360 { _DW_EVENT_KEY_PRESS, DW_SIGNAL_KEY_PRESS },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
361 { _DW_EVENT_BUTTON_PRESS, DW_SIGNAL_BUTTON_PRESS },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
362 { _DW_EVENT_BUTTON_RELEASE, DW_SIGNAL_BUTTON_RELEASE },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
363 { _DW_EVENT_MOTION_NOTIFY, DW_SIGNAL_MOTION_NOTIFY },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
364 { _DW_EVENT_DELETE, DW_SIGNAL_DELETE },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
365 { _DW_EVENT_EXPOSE, DW_SIGNAL_EXPOSE },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
366 { _DW_EVENT_CLICKED, DW_SIGNAL_CLICKED },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
367 { _DW_EVENT_ITEM_ENTER, DW_SIGNAL_ITEM_ENTER },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
368 { _DW_EVENT_ITEM_CONTEXT, DW_SIGNAL_ITEM_CONTEXT },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
369 { _DW_EVENT_LIST_SELECT, DW_SIGNAL_LIST_SELECT },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
370 { _DW_EVENT_ITEM_SELECT, DW_SIGNAL_ITEM_SELECT },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
371 { _DW_EVENT_SET_FOCUS, DW_SIGNAL_SET_FOCUS },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
372 { _DW_EVENT_VALUE_CHANGED, DW_SIGNAL_VALUE_CHANGED },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
373 { _DW_EVENT_SWITCH_PAGE, DW_SIGNAL_SWITCH_PAGE },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
374 { _DW_EVENT_TREE_EXPAND, DW_SIGNAL_TREE_EXPAND },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
375 { _DW_EVENT_COLUMN_CLICK, DW_SIGNAL_COLUMN_CLICK },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
376 { _DW_EVENT_HTML_RESULT, DW_SIGNAL_HTML_RESULT },
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
377 { _DW_EVENT_HTML_CHANGED, DW_SIGNAL_HTML_CHANGED }
2372
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
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
380 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
381 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
382 DWSignalHandler *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
383 /* 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
384
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
385 if(handler)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
386 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
387 switch(message)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
388 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
389 /* Timer event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
390 case _DW_EVENT_TIMER:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
391 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
392 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
393
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
394 if(!timerfunc(handler->data))
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
395 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
396 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
397 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
398 /* Configure/Resize event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
399 case _DW_EVENT_CONFIGURE:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
400 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
401 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
402 CGSize size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
403
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
404 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
405 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
406 UIWindow *window = object;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
407 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
408 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
409 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
410 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
411 UIView *view = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
412 size = [view frame].size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
413 }
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 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
416 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
417 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
418 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
419 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
420 }
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
421 case _DW_EVENT_KEY_PRESS:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
422 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
423 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
424 int special = 0;
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
425 NSString *nchar = @"";
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
426 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
427 UIKey *key = event;
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
428
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
429 nchar = [key charactersIgnoringModifiers];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
430 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
431 } else {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
432 // 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
433 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
434 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
435 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
436
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
437 /* Handle a valid key */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
438 if([nchar length] == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
439 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
440 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
441 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
442 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
443 ch = tmp[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
444 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
445 utf8 = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
446 }
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 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
449 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
450 /* Button press and release event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
451 case _DW_EVENT_BUTTON_PRESS:
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
452 case _DW_EVENT_BUTTON_RELEASE:
2372
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 int (* API buttonfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))handler->signalfunction;
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
455 /* Event will be nil when handling the context menu events...
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
456 * So button should default to 2 if event is nil
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
457 */
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
458 int button = event ? 1 : 2;
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
459 CGPoint p = _dw_event_point;
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
460
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
461 if(event && [event isKindOfClass:[UIEvent class]])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
462 {
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
463 NSSet *touches = [event allTouches];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
464
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
465 for(id touch in touches)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
466 {
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
467 if((message == 3 && [touch phase] == UITouchPhaseBegan) ||
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
468 (message == 4 && [touch phase] == UITouchPhaseEnded))
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
469 {
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
470 p = [touch locationInView:[touch view]];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
471
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
472 if(@available(ios 13.4, *))
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
473 {
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
474 if([event buttonMask] & UIEventButtonMaskSecondary)
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
475 button = 2;
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
476 }
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
477 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
478 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
479 }
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 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
482 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
483 /* Motion notify event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
484 case _DW_EVENT_MOTION_NOTIFY:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
485 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
486 int (* API motionfunc)(HWND, int, int, int, void *) = (int (* API)(HWND, int, int, int, void *))handler->signalfunction;
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
487 int button = 1;
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
488
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
489 if(event && [event isKindOfClass:[UIEvent class]])
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
490 {
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
491 NSSet *touches = [event allTouches];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
492
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
493 for(id touch in touches)
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
494 {
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
495 if([touch phase] == UITouchPhaseMoved)
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
496 {
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
497 CGPoint p = [touch locationInView:[touch view]];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
498
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
499 return motionfunc(object, (int)p.x, (int)p.y, button, handler->data);
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
500 }
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
501 }
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
502 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
503 return -1;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
504 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
505 /* Window close event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
506 case _DW_EVENT_DELETE:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
507 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
508 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
509 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
510 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
511 /* Window expose/draw event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
512 case _DW_EVENT_EXPOSE:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
513 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
514 DWExpose exp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
515 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
516 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
517
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
518 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
519 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
520 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
521 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
522 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
523 return result;
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 /* Clicked event for buttons and menu items */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
526 case _DW_EVENT_CLICKED:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
527 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
528 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
529
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
530 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
531 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
532 /* Container class selection event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
533 case _DW_EVENT_ITEM_ENTER:
2372
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 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
536 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
537
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
538 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
539 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
540 /* Container context menu event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
541 case _DW_EVENT_ITEM_CONTEXT:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
542 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
543 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
544 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
545 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
546 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
547 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
548 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
549
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
550 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
551 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
552 /* Generic selection changed event for several classes */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
553 case _DW_EVENT_LIST_SELECT:
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
554 case _DW_EVENT_VALUE_CHANGED:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
555 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
556 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
557 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
558
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
559 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
560 }
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
561 /* Tree class selection event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
562 case _DW_EVENT_ITEM_SELECT:
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
563 {
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
564 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
565 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
566 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
567 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
568
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
569 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
570 {
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
571 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
572
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
573 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
574 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
575 }
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
576
89f4aba2e387 iOS: Put back missing tree selection code, since it is apparently also used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2428
diff changeset
577 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
578 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
579 /* Set Focus event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
580 case _DW_EVENT_SET_FOCUS:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
581 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
582 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
583
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
584 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
585 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
586 /* Notebook page change event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
587 case _DW_EVENT_SWITCH_PAGE:
2372
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 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
590 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
591
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
592 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
593 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
594 /* Tree expand event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
595 case _DW_EVENT_TREE_EXPAND:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
596 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
597 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
598
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
599 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
600 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
601 /* Column click event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
602 case _DW_EVENT_COLUMN_CLICK:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
603 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
604 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
605 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
606
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
607 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
608 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
609 /* HTML result event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
610 case _DW_EVENT_HTML_RESULT:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
611 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
612 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
613 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
614 NSString *result = params[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
615
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
616 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
617 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
618 /* HTML changed event */
2764
4c602db2d2cf iOS: _dw_event_handler() switch needs to be updated using internal constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2751
diff changeset
619 case _DW_EVENT_HTML_CHANGED:
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
620 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
621 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
622 void **params = (void **)event;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
623 NSString *uri = params[1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
624
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
625 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
626 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
627 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
628 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
629 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
630 }
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 /* 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
633 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
634 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
635 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
636 if(ret != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
637 _dw_redraw(nil, FALSE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
638 return ret;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
639 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
640
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
641 /* 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
642 @interface DWTimerHandler : NSObject { }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
643 -(void)runTimer:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
644 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
645
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
646 @implementation DWTimerHandler
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
647 -(void)runTimer:(id)sender { _dw_event_handler(sender, nil, _DW_EVENT_TIMER); }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
648 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
649
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
650 @interface DWAppDel : UIResponder <UIApplicationDelegate> { }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
651 -(void)applicationWillTerminate:(UIApplication *)application;
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
652 -(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
653 @end
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
654
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
655 @implementation DWAppDel
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
656 -(void)applicationWillTerminate:(UIApplication *)application
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
657 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
658 /* On iOS we can't prevent temrination, but send the notificatoin anyway */
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
659 _dw_event_handler(application, nil, _DW_EVENT_DELETE);
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
660 }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
661 -(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
662 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
663 return true;
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
664 }
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
665 @end
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
666
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
667 static UIApplication *DWApp = nil;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
668 static UIFont *DWDefaultFont;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
669 static DWTimerHandler *DWHandler;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
670 static NSMutableArray *_DWDirtyDrawables;
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
671 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
672 static HEV DWMainEvent;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
673
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
674 /* 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
675 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
676 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
677 id src;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
678 id dest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
679 int xdest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
680 int ydest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
681 int width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
682 int height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
683 int xsrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
684 int ysrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
685 int srcwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
686 int srcheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
687 } DWBitBlt;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
688
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
689 /* 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
690 @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
691 {
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
692 /* 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
693 * 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
694 * 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
695 * 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
696 */
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
697 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
698 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
699 -(void)uselessThread:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
700 -(void)menuHandler:(id)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
701 -(void)doBitBlt:(id)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
702 -(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
703 -(UIWindow *)hiddenWindow;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
704 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
705
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
706 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
707 @interface DWMenu : NSObject
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
708 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
709 UIMenu *menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
710 NSMutableArray *children;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
711 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
712 unsigned long tag;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
713 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
714 -(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
715 -(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
716 -(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
717 -(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
718 -(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
719 -(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
720 -(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
721 -(void)dealloc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
722 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
723
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
724 API_AVAILABLE(ios(13.0))
2604
4671ac4ad3c6 iOS: Had to switch from UIKeyCommand to UIAction for DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2603
diff changeset
725 @interface DWMenuItem : UIAction
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
726 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
727 BOOL check, enabled;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
728 unsigned long tag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
729 DWMenu *submenu, *menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
730 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
731 -(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
732 -(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
733 -(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
734 -(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
735 -(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
736 -(DWMenu *)submenu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
737 -(DWMenu *)menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
738 -(BOOL)check;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
739 -(BOOL)enabled;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
740 -(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
741 -(void)dealloc;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
742 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
743
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
744 /* 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
745 * 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
746 * 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
747 * 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
748 * 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
749 * going to work. -Brian
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
750 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
751
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
752 /* 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
753 @interface DWBox : UIView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
754 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
755 Box *box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
756 void *userdata;
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 -(id)init;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
759 -(void)dealloc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
760 -(Box *)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
761 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
762 -(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
763 -(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
764 @end
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 @implementation DWBox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
767 -(id)init
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
768 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
769 self = [super init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
770
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
771 if (self)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
772 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
773 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
774 box->type = DW_VERT;
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
775 box->vsize = box->hsize = _DW_SIZE_EXPAND;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
776 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
777 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
778 return self;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
779 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
780 -(void)dealloc
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
781 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
782 UserData *root = userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
783 if(box->items)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
784 free(box->items);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
785 free(box);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
786 _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
787 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
788 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
789 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
790 -(Box *)box { return box; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
791 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
792 -(void)setUserdata:(void *)input { userdata = input; }
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
793 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4)){ _dw_event_handler(self, key, _DW_EVENT_KEY_PRESS); }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
794 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
795
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
796 @interface DWWindow : UIWindow
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
797 {
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
798 DWMenu *windowmenu, *popupmenu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
799 int redraw;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
800 int shown;
2739
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
801 void *userdata;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
802 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
803 -(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
804 -(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
805 -(int)redraw;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
806 -(void)setRedraw:(int)val;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
807 -(int)shown;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
808 -(void)setShown:(int)val;
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
809 -(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
810 -(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
811 -(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
812 -(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
813 -(DWMenu *)popupMenu;
2739
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
814 -(void *)userdata;
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
815 -(void)setUserdata:(void *)input;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
816 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
817
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
818 @implementation DWWindow
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
819 -(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
820 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
821 int rcode = -1;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
822 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
823 {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
824 rcode = _dw_event_handler(self, theEvent, _DW_EVENT_KEY_PRESS);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
825 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
826 if ( rcode != TRUE )
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
827 [super sendEvent:theEvent];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
828 }
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
829 -(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
830 -(int)redraw { return redraw; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
831 -(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
832 -(int)shown { return shown; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
833 -(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
834 -(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
835 -(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
836 -(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
837 -(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
838 -(DWMenu *)popupMenu { return popupmenu; }
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
839 -(void)closeWindow:(id)sender
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
840 {
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
841 if(_dw_event_handler(self, nil, _DW_EVENT_DELETE) < 1)
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
842 dw_window_destroy(self);
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
843 }
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
844 -(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
845 {
2739
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
846 UserData *root = userdata;
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
847 _dw_remove_userdata(&root, NULL, TRUE);
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
848 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
849 [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
850 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
851 [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
852 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
853 [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
854 }
2739
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
855 -(void *)userdata { return userdata; }
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
856 -(void)setUserdata:(void *)input { userdata = input; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
857 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
858
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
859 @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
860 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
861 UIImage *image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
862 CGContextRef cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
863 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
864 -(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
865 -(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
866 -(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
867 -(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
868 -(UIImage *)image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
869 -(CGContextRef)cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
870 -(void)dealloc;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
871 @end
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
872
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
873 /* Subclass for a render area type */
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
874 @interface DWRender : UIView <UIContextMenuInteractionDelegate>
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
875 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
876 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
877 UIFont *font;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
878 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
879 DWImage *cachedImage;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
880 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
881 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
882 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
883 -(void)setFont:(UIFont *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
884 -(UIFont *)font;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
885 -(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
886 -(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
887 -(DWImage *)cachedImage;
2583
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
888 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4));
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
889 -(UIContextMenuConfiguration *)contextMenuInteraction:(UIContextMenuInteraction *)interaction configurationForMenuAtLocation:(CGPoint)location;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
890 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
891
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
892 @implementation DWRender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
893 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
894 -(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
895 -(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
896 -(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
897 -(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
898 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
899 if(cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
900 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
901 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
902 UIImage *newimage;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
903 UIGraphicsBeginImageContext(self.frame.size);
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
904 [[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
905 newimage = UIGraphicsGetImageFromCurrentImageContext();
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
906 UIGraphicsEndImageContext();
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
907 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
908 [cachedImage retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
909 [oldimage release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
910 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
911 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
912 -(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
913 -(DWImage *)cachedImage {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
914 if(!cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
915 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
916 UIImage *newimage;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
917 UIGraphicsBeginImageContext(self.frame.size);
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
918 [[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
919 newimage = UIGraphicsGetImageFromCurrentImageContext();
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
920 UIGraphicsEndImageContext();
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
921 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
922 [cachedImage retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
923 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
924 /* 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
925 if(![_DWDirtyDrawables containsObject:self])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
926 [_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
927 return cachedImage;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
928 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
929 -(void)drawRect:(CGRect)rect {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
930 _dw_event_handler(self, nil, _DW_EVENT_EXPOSE);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
931 if(cachedImage)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
932 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
933 [[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
934 [_DWDirtyDrawables removeObject:self];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
935 [self setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
936 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
937 }
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
938 -(void)keyDown:(UIKey *)key API_AVAILABLE(ios(13.4)){ _dw_event_handler(self, key, _DW_EVENT_KEY_PRESS); }
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
939 -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
940 {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
941 _dw_event_handler(self, event, _DW_EVENT_BUTTON_PRESS);
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
942 [super touchesBegan:touches withEvent:event];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
943 }
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
944 -(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
945 {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
946 _dw_event_handler(self, event, _DW_EVENT_BUTTON_RELEASE);
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
947 [super touchesEnded:touches withEvent:event];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
948 }
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
949 -(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
950 {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
951 _dw_event_handler(self, event, _DW_EVENT_MOTION_NOTIFY);
2610
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
952 [super touchesMoved:touches withEvent:event];
da51be036599 iOS: Implement button press/release and motion notify.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2606
diff changeset
953 }
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
954 -(UIContextMenuConfiguration *)contextMenuInteraction:(UIContextMenuInteraction *)interaction configurationForMenuAtLocation:(CGPoint)location
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
955 {
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
956 DWWindow *window = (DWWindow *)[self window];
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
957 UIContextMenuConfiguration *config = nil;
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
958
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
959 _dw_event_point = location;
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
960 _dw_event_handler(self, nil, _DW_EVENT_BUTTON_PRESS);
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
961
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
962 if(window && [window popupMenu])
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
963 {
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
964 __block UIMenu *popupmenu = [[[window popupMenu] menu] retain];
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
965 config = [UIContextMenuConfiguration configurationWithIdentifier:nil
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
966 previewProvider:nil
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
967 actionProvider:^(NSArray* suggestedAction){return popupmenu;}];
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
968 [window setPopupMenu:nil];
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
969 }
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
970 return config;
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
971 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
972 -(void)dealloc {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
973 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
974 _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
975 [font release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
976 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
977 [cachedImage release];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
978 [_DWDirtyDrawables removeObject:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
979 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
980 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
981 -(BOOL)acceptsFirstResponder { return YES; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
982 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
983
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
984 /* Subclass page renderer to implement page by page rendering */
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
985 @interface DWPrintPageRenderer : UIPrintPageRenderer
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
986 {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
987 int (*drawfunc)(HPRINT, HPIXMAP, int, void *);
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
988 void *drawdata;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
989 unsigned long flags;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
990 unsigned int pages;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
991 HPRINT *print;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
992 }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
993 -(void)setDrawFunc:(void *)input;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
994 -(void)setDrawData:(void *)input;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
995 -(void *)drawData;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
996 -(void)setFlags:(unsigned long)input;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
997 -(unsigned long)flags;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
998 -(void)setPages:(unsigned int)input;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
999 -(void)setPrint:(HPRINT)input;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1000 @end
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1001
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1002 @implementation DWPrintPageRenderer
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1003 -(void)setDrawFunc:(void *)input { drawfunc = input; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1004 -(void)setDrawData:(void *)input { drawdata = input; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1005 -(void *)drawData { return drawdata; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1006 -(void)setFlags:(unsigned long)input { flags = input; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1007 -(unsigned long)flags { return flags; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1008 -(void)setPages:(unsigned int)input { pages = input; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1009 -(void)setPrint:(HPRINT)input { print = input; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1010 -(void)drawContentForPageAtIndex:(NSInteger)pageIndex inRect:(CGRect)contentRect
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1011 {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1012 HPIXMAP pm = dw_pixmap_new(nil, contentRect.size.width, contentRect.size.height, 32);
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1013 DWImage *image = pm->image;
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
1014 CGBlendMode op = kCGBlendModeNormal;
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
1015
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1016 drawfunc(print, pm, (int)pageIndex, drawdata);
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
1017 [[image image] drawInRect:contentRect blendMode:op alpha:1.0];
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1018 dw_pixmap_destroy(pm);
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1019 }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1020 -(NSInteger)numberOfPages { return (NSInteger)pages; }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1021 @end
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1022
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1023 @interface DWFontPickerDelegate : UIResponder <UIFontPickerViewControllerDelegate>
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1024 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1025 DWDialog *dialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1026 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1027 -(void)fontPickerViewControllerDidPickFont:(UIFontPickerViewController *)viewController;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1028 -(void)fontPickerViewControllerDidCancel:(UIFontPickerViewController *)viewController;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1029 -(void)setDialog:(DWDialog *)newdialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1030 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1031
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1032 @implementation DWFontPickerDelegate
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1033 -(void)fontPickerViewControllerDidPickFont:(UIFontPickerViewController *)viewController
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1034 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1035 if(viewController.selectedFontDescriptor)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1036 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1037 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
1038 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
1039 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1040 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1041 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
1042 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1043 -(void)fontPickerViewControllerDidCancel:(UIFontPickerViewController *)viewController
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1044 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1045 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
1046 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1047 -(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
1048 @end
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 @interface DWColorPickerDelegate : UIResponder <UIColorPickerViewControllerDelegate>
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1051 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1052 DWDialog *dialog;
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 -(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
1055 -(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
1056 -(void)setDialog:(DWDialog *)newdialog;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1057 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1058
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1059 @implementation DWColorPickerDelegate
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1060 -(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
1061 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1062 if([viewController selectedColor])
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1063 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1064 CGFloat red, green, blue;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1065 [[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
1066 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
1067 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1068 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1069 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
1070 [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
1071 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1072 -(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
1073 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1074 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
1075 [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
1076 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1077 -(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
1078 @end
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1079
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1080 @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
1081 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1082 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
1083 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1084 -(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
1085 -(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
1086 -(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
1087 @end
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1088
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1089 @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
1090 -(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
1091 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1092 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
1093 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
1094
2593
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
1095 if(url)
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
1096 {
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
1097 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
1098
a773008c7c5d iOS: Make sure the plain text UTI is used with filePicker.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2444
diff changeset
1099 if(tmp)
2593
cc2befdc97e8 iOS: Switch to using the NSURL fileSystemRepresentation method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2591
diff changeset
1100 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
1101 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1102 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
1103 }
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1104 -(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
1105 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1106 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
1107 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1108 -(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
1109 @end
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1110
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1111 @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
1112 -(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
1113 {
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
1114 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
1115 /* 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
1116 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
1117 }
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1118 -(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
1119 {
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1120 /* 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
1121 * 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
1122 * 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
1123 */
2385
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 = [[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
1125 [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
1126 [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
1127 [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
1128 /* 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
1129 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
1130 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
1131 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1132 -(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
1133 -(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
1134 -(void)menuHandler:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1135 {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1136 _dw_event_handler(param, nil, _DW_EVENT_CLICKED);
2372
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 -(void)callBack:(NSPointerArray *)params
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1139 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1140 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
1141 if(mycallback)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1142 mycallback(params);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1143 }
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1144 -(void)colorPicker:(NSMutableArray *)params
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1145 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1146 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
1147 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1148 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
1149 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
1150 DWColorPickerDelegate *delegate = [[DWColorPickerDelegate alloc] init];
2723
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
1151 unsigned long color = [[params firstObject] unsignedLongValue];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1152
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1153 /* 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
1154 [picker setSupportsAlpha:NO];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1155 /* 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
1156 [hiddenWindow setHidden:NO];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1157 [hiddenWindow makeKeyAndVisible];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1158 [delegate setDialog:dialog];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1159 [picker setDelegate:delegate];
2723
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
1160 [picker setSelectedColor:[UIColor colorWithRed: DW_RED_VALUE(color)/255.0 green: DW_GREEN_VALUE(color)/255.0 blue: DW_BLUE_VALUE(color)/255.0 alpha: 1]];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1161 /* 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
1162 [[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
1163 [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
1164 /* 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
1165 [hiddenWindow resignKeyWindow];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1166 [hiddenWindow setHidden:YES];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1167 [picker release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1168 [delegate release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1169 } else {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1170 // Fallback on earlier versions
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1171 };
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1172 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1173 -(void)fontPicker:(NSPointerArray *)params
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1174 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1175 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
1176 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
1177 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
1178 UIFont *font;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1179
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1180 /* 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
1181 [hiddenWindow setHidden:NO];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1182 [hiddenWindow makeKeyAndVisible];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1183 [delegate setDialog:dialog];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1184 [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
1185 /* 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
1186 [[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
1187 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
1188 /* 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
1189 [hiddenWindow resignKeyWindow];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1190 [hiddenWindow setHidden:YES];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1191
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1192 if(font)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1193 {
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1194 NSString *fontname = [font fontName];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1195 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
1196 [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
1197 }
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1198 else
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1199 [params addPointer:NULL];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1200 [picker release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1201 [delegate release];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
1202 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1203 -(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
1204 {
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1205 DWDialog *dialog = dw_dialog_new(NULL);
2712
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1206 UIDocumentPickerViewController *picker;
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1207 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
1208 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
1209 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
1210 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
1211 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
1212 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
1213
2712
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1214 if (@available(iOS 14, *)) {
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1215 UTType *extuti = ext ? [UTType typeWithFilenameExtension:[NSString stringWithUTF8String:ext]] : nil;
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1216
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1217 /* Try to generate a UTI for our passed extension */
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1218 if(flags & DW_DIRECTORY_OPEN)
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1219 UTIs = @[UTTypeFolder];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1220 else
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1221 {
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1222 if(extuti)
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1223 UTIs = [NSArray arrayWithObjects:extuti, UTTypeText, nil];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1224 else
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1225 UTIs = @[UTTypeText];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1226 }
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1227 picker = [[UIDocumentPickerViewController alloc] initForOpeningContentTypes:UTIs
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1228 asCopy:(flags & DW_FILE_SAVE ? YES: NO)];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1229 } else {
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1230 UIDocumentPickerMode mode = UIDocumentPickerModeOpen;
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1231
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1232 /* Try to generate a UTI for our passed extension */
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1233 if(flags & DW_DIRECTORY_OPEN)
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1234 UTIs = @[@"public.directory"];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1235 else
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1236 {
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1237 if(ext)
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1238 UTIs = [NSArray arrayWithObjects:[NSString stringWithFormat:@"public.%s", ext], @"public.text", nil];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1239 else
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1240 UTIs = @[@"public.text"];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1241 }
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1242
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1243 /* Setup the picker */
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1244 if(flags & DW_FILE_SAVE)
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1245 mode = UIDocumentPickerModeExportToService;
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1246
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1247 picker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:UTIs inMode:mode];
ada3ac4677f6 iOS: Add file browser support for selecting folders/directories.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2711
diff changeset
1248 }
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
1249 [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
1250 [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
1251 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
1252 [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
1253 /* 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
1254 [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
1255 [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
1256 [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
1257 [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
1258 /* 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
1259 [[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
1260 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
1261 /* 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
1262 [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
1263 [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
1264 [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
1265 [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
1266 [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
1267 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1268 -(void)messageBox:(NSMutableArray *)params
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1269 {
2402
b28852b35452 iOS: Fix message boxes... the hiddenWindow they are attached to was being
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2401
diff changeset
1270 __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
1271 NSInteger iResponse;
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1272 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
1273 message:[params objectAtIndex:1]
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1274 preferredStyle:[[params objectAtIndex:2] integerValue]];
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1275 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
1276 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
1277 [alert addAction:action];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1278 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
1279 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1280 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
1281 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
1282 [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
1283 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1284 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
1285 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1286 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
1287 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
1288 [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
1289 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1290
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
1291 /* 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
1292 [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
1293 [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
1294 [[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
1295 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
1296 /* 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
1297 [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
1298 [hiddenWindow setHidden:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1299 [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
1300 }
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1301 -(void)printDialog:(NSMutableArray *)params
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1302 {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1303 __block DWDialog *dialog = dw_dialog_new(NULL);
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1304 UIPrintInteractionController *pc = [UIPrintInteractionController sharedPrintController];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1305 UIPrintInfo *pi = [params firstObject];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1306 DWPrintPageRenderer *renderer = [params objectAtIndex:1];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1307 /* Not currently using the passed in flags, but when we need them...
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1308 NSNumber *flags = [params objectAtIndex:2];*/
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1309 int result = DW_ERROR_UNKNOWN;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1310
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1311 /* Setup our print dialog */
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1312 [pc setPrintInfo:pi];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1313 [pc setPrintPageRenderer:renderer];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1314
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1315 /* Present the shared printer dialog */
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1316 [pc presentAnimated:YES completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1317 dw_dialog_dismiss(dialog, DW_INT_TO_POINTER((completed ? DW_ERROR_NONE : DW_ERROR_UNKNOWN)));
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1318 }];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1319 result = DW_POINTER_TO_INT(dw_dialog_wait(dialog));
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1320
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1321 [params addObject:[NSNumber numberWithInteger:result]];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
1322 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1323 -(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
1324 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1325 if([self respondsToSelector:sel])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1326 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1327 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1328
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1329 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
1330 [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
1331 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1332 [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
1333 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1334 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1335 -(void)doBitBlt:(id)param
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 NSValue *bi = (NSValue *)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1338 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
1339 id bltdest = bltinfo->dest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1340 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
1341 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
1342
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1343 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1344 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
1345
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1346 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
1347 {
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1348 DWImage *rep = bltsrc;
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1349 UIImage *image = [rep image];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1350 CGBlendMode op = kCGBlendModeNormal;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1351
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1352 if(bltinfo->srcwidth != -1)
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1353 {
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1354 [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
1355 /*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
1356 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
1357 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1358 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1359 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1360 [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
1361 /*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
1362 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
1363 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1364 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1365 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1366 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1367 free(bltinfo);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1368 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1369 -(void)doFlush:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1370 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1371 NSEnumerator *enumerator = [_DWDirtyDrawables objectEnumerator];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1372 DWRender *rend;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1373
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1374 while(rend = [enumerator nextObject])
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
1375 [rend setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1376 [_DWDirtyDrawables removeAllObjects];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1377 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1378 -(void)doWindowFunc:(id)param
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1379 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1380 NSValue *v = (NSValue *)param;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1381 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
1382 void (* windowfunc)(void *);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1383
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1384 if(params)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1385 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1386 windowfunc = params[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1387 if(windowfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1388 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1389 windowfunc(params[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1390 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1391 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1392 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1393 -(void)getUserInterfaceStyle:(id)param
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1394 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1395 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
1396 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
1397 int retval;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1398
2459
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1399 switch(overridestyle)
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1400 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1401 case UIUserInterfaceStyleLight:
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1402 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
1403 break;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1404 case UIUserInterfaceStyleDark:
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1405 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
1406 break;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1407 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
1408 {
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1409 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
1410
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1411 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
1412 {
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1413 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
1414 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
1415 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1416 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
1417 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
1418 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1419 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
1420 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
1421 break;
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1422 }
ddc6d49d1110 iOS: Reorganize the code so retval doesn't get clobbered without the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2458
diff changeset
1423 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1424 }
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1425 [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
1426 }
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1427 -(void)setUserInterfaceStyle:(id)param
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1428 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1429 NSNumber *number = param;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1430 UIUserInterfaceStyle style = [number intValue];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1431
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1432 [hiddenWindow setOverrideUserInterfaceStyle:style];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
1433 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1434 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1435
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1436 DWObject *DWObj;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1437
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1438 /* 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
1439 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
1440 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1441 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
1442 return YES;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1443 return NO;
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1444 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
1445
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1446 @interface DWWebView : WKWebView <WKNavigationDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1447 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1448 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1449 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1450 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1451 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1452 -(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
1453 -(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
1454 -(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
1455 -(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
1456 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1457
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1458 @implementation DWWebView : WKWebView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1459 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1460 -(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
1461 -(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
1462 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1463 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_STARTED), [[self URL] absoluteString] };
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1464 _dw_event_handler(self, (id)params, _DW_EVENT_HTML_CHANGED);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1465 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1466 -(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
1467 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1468 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_COMPLETE), [[self URL] absoluteString] };
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1469 _dw_event_handler(self, (id)params, _DW_EVENT_HTML_CHANGED);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1470 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1471 -(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
1472 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1473 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_LOADING), [[self URL] absoluteString] };
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1474 _dw_event_handler(self, (id)params, _DW_EVENT_HTML_CHANGED);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1475 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1476 -(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
1477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1478 void *params[2] = { DW_INT_TO_POINTER(DW_HTML_CHANGE_REDIRECT), [[self URL] absoluteString] };
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1479 _dw_event_handler(self, (id)params, _DW_EVENT_HTML_CHANGED);
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1480 }
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1481 -(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
1482 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1483
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1484 /* 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
1485 @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
1486 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1487 CGSize oldsize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1488 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1489 -(void)windowDidBecomeMain:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1490 -(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
1491 -(UIResponder *)nextResponder;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1492 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1493
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1494 @implementation DWView
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1495 -(void)willMoveToSuperview:(UIView *)newSuperview
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1496 {
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1497 if(newSuperview)
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
1498 [[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
1499 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1500 -(void)dealloc
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1501 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1502 [[NSNotificationCenter defaultCenter] removeObserver:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1503 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
1504 [super dealloc];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1505 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1506 -(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
1507 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1508 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
1509 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1510 _dw_do_resize(box, size.width, size.height);
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1511 _dw_event_handler([self window], nil, _DW_EVENT_CONFIGURE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1512 oldsize.width = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1513 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
1514 _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
1515 }
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 -(void)showWindow
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1518 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
1519 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
1520
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1521 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
1522 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1523 _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
1524 _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
1525 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1526
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1527 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1528 -(void)windowDidBecomeMain:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1529 {
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1530 _dw_event_handler([self window], nil, _DW_EVENT_SET_FOCUS);
2372
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 -(void)menuHandler:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1533 {
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
1534 [DWObj menuHandler:sender];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1535 }
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
1536 -(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
1537 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1538
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1539 @interface DWViewController : UIViewController
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1540 -(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
1541 -(UIResponder *)nextResponder;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1542 @end
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1543
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1544
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1545 @implementation DWViewController : UIViewController {}
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1546 -(void)viewWillLayoutSubviews
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1547 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1548 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
1549 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
1550 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
1551 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
1552 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
1553 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
1554
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
1555 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
1556 {
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
1557 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
1558 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
1559 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
1560 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
1561 }
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
1562 /* 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
1563 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
1564 {
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
1565 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
1566
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
1567 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
1568 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
1569 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
1570 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
1571 [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
1572
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
1573 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
1574 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
1575 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
1576
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
1577 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
1578 {
2600
0bb974e70435 iOS: Fix crash by retaining the UIMenu returned in the block.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2599
diff changeset
1579 UIMenu *menu = [windowmenu menu];
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
1580 UIBarButtonItem *options = [[UIBarButtonItem alloc] initWithImage:[UIImage systemImageNamed:@"list.bullet"]
2600
0bb974e70435 iOS: Fix crash by retaining the UIMenu returned in the block.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2599
diff changeset
1581 menu:menu];
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
1582 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
1583 }
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
1584 } 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
1585 // 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
1586 }
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
1587 }
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
1588 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
1589 /* 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
1590 * 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
1591 */
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
1592 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
1593 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
1594 [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
1595 [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
1596 }
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
1597 -(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
1598 @end
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
1599
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1600 #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
1601 #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
1602 #define _DW_BUTTON_TYPE_RADIO 2
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1603 #define _DW_BUTTON_TYPE_TREE 3
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1604
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1605 /* 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
1606 @interface DWButton : UIButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1607 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1608 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1609 DWBox *parent;
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1610 int type, checkstate;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1611 }
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1612 @property(nonatomic, strong) void(^didCheckedChanged)(BOOL checked);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1613 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1614 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1615 -(void)buttonClicked:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1616 -(void)setParent:(DWBox *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1617 -(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
1618 -(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
1619 -(void)setType:(int)input;
2698
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
1620 -(int)checkState;
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1621 -(void)setCheckState:(int)input;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1622 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1623
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1624 @implementation DWButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1625 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1626 -(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
1627 -(void)buttonClicked:(id)sender
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1628 {
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1629 /* Toggle the button */
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1630 if(type == _DW_BUTTON_TYPE_CHECK || type == _DW_BUTTON_TYPE_TREE)
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1631 [self setCheckState:(checkstate ? FALSE : TRUE)];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1632 else if(type == _DW_BUTTON_TYPE_RADIO)
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1633 [self setCheckState:TRUE];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1634
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
1635 _dw_event_handler(self, nil, _DW_EVENT_CLICKED);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1636
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1637 /* 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
1638 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
1639 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1640 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
1641 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
1642 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
1643
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1644 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
1645 {
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
1646 if(thisbox->items[z].type != _DW_TYPE_BOX)
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1647 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1648 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
1649
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1650 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
1651 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1652 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
1653
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1654 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
1655 {
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1656 [button setCheckState:FALSE];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1657 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1658 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1659 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1660 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1661 }
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1662 if(_didCheckedChanged)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1663 _didCheckedChanged(checkstate);
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1664 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1665 -(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
1666 -(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
1667 -(int)type { return type; }
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1668 -(void)setType:(int)input
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1669 {
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1670 type = input;
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1671 if(type == _DW_BUTTON_TYPE_NORMAL)
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1672 [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1673 else
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1674 [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1675 [self updateImage];
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1676 }
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1677 -(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
1678 {
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1679 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
1680
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1681 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
1682 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1683 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
1684 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1685
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1686 if(checkstate)
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1687 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
1688 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
1689 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
1690 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1691 break;
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1692 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
1693 {
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1694 if(checkstate)
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1695 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
1696 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
1697 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
1698 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1699 break;
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1700 case _DW_BUTTON_TYPE_TREE:
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1701 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1702 if(checkstate)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1703 imagename = @"chevron.down";
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1704 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1705 imagename = @"chevron.forward";
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1706 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
1707 break;
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1708 }
2424
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1709 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
1710 {
6b302a8c856f iOS: Fix checked image not showing due to typo in image name.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2423
diff changeset
1711 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
1712 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
1713 [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
1714 [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
1715 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
1716 }
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1717 -(int)checkState { return checkstate; }
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
1718 -(void)setCheckState:(int)input { checkstate = 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
1719 -(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
1720 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1721
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1722 /* 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
1723 @interface DWPercent : UIProgressView
2372
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 *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1726 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1727 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1728 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1729 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1730
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1731 @implementation DWPercent
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1732 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1733 -(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
1734 -(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
1735 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1736
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1737 /* 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
1738 @implementation DWMenuItem
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1739 -(void)setCheck:(BOOL)input { check = input; }
2601
3201f9e9067b iOS: Actually implement disabled menu items using UIMenuElementAttributesDisabled.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2600
diff changeset
1740 -(void)setEnabled:(BOOL)input { enabled = input; [self setAttributes:(enabled ? 0 : UIMenuElementAttributesDisabled)]; }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1741 -(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
1742 -(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
1743 -(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
1744 -(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
1745 -(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
1746 -(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
1747 -(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
1748 -(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
1749 -(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
1750 @end
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1751 /*
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1752 * 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
1753 * 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
1754 * 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
1755 */
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1756 @implementation DWMenu
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1757 -(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
1758 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1759 self = [super init];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1760 if(self)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1761 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1762 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
1763 tag = newtag;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1764 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1765 return self;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1766 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1767 -(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
1768 -(UIMenu *)menu
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1769 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1770 /* 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
1771 UIMenu *oldmenu = menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1772 NSMutableArray *menuchildren = [[NSMutableArray alloc] init];
2605
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1773 NSMutableArray *section = menuchildren;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1774
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1775 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
1776 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1777 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
1778 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1779 DWMenuItem *menuitem = child;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1780 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
1781
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1782 if(submenu)
2605
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1783 [section addObject:[submenu menu]];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1784 else
2605
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1785 [section addObject:child];
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1786 }
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1787 /* NSNull entry tells us to make a new section...
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1788 * we do this by making a new UIMenu inline.
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1789 */
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1790 else if([child isMemberOfClass:[NSNull class]])
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1791 {
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1792 if(section != menuchildren)
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1793 {
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1794 UIMenu *sectionmenu = [UIMenu menuWithTitle:@""
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1795 image:nil
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1796 identifier:nil
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1797 options:UIMenuOptionsDisplayInline
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1798 children:section];
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1799 [menuchildren addObject:sectionmenu];
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1800 }
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1801 section = [[NSMutableArray alloc] init];
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1802 }
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1803 }
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1804 if(section != menuchildren)
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1805 {
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1806 UIMenu *sectionmenu = [UIMenu menuWithTitle:@""
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1807 image:nil
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1808 identifier:nil
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1809 options:UIMenuOptionsDisplayInline
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1810 children:section];
d60a44a27d70 iOS: Implement menu separators using inline UIMenus.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2604
diff changeset
1811 [menuchildren addObject:sectionmenu];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1812 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1813 if(title)
2603
592f3003f853 iOS: Switch to using UIKeyCommand for menu items so we can use they keyboard
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2602
diff changeset
1814 {
592f3003f853 iOS: Switch to using UIKeyCommand for menu items so we can use they keyboard
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2602
diff changeset
1815 menu = [UIMenu menuWithTitle:title image:[UIImage systemImageNamed:@"ellipsis"] identifier:nil
592f3003f853 iOS: Switch to using UIKeyCommand for menu items so we can use they keyboard
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2602
diff changeset
1816 options:0 children:menuchildren];
592f3003f853 iOS: Switch to using UIKeyCommand for menu items so we can use they keyboard
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2602
diff changeset
1817 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1818 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1819 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1820 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
1821 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
1822 else
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1823 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
1824 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1825 if(oldmenu)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1826 [oldmenu release];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1827 return menu;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1828 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1829 -(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
1830 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1831 [children addObject:item];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1832 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1833 -(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
1834 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1835 [children removeObject:item];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1836 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1837 -(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
1838 -(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
1839 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1840 if(tag > 0)
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1841 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1842 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
1843 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1844 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
1845 return child;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
1846 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1847 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1848 return nil;
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1849 }
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1850 -(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
1851 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1852
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
1853 @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
1854 -(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
1855 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1856 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
1857 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1858 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1859 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1860 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
1861 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
1862 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
1863 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
1864 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
1865 CGContextRelease(cgcontext);
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1866 [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
1867 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1868 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1869 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1870 -(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
1871 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1872 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
1873 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1874 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1875 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
1876 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1877 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1878 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1879 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1880 -(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
1881 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1882 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
1883 if(self)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1884 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1885 image = newimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1886 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1887 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1888 return self;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1889 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1890 -(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
1891 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1892 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
1893 image = input;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1894 [image retain];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1895 [oldimage release];
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1896 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1897 -(UIImage *)image
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1898 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1899 /* 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
1900 if(cgcontext)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1901 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1902 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
1903 CGImageRef cgimage;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1904
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1905 /* 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
1906 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
1907 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
1908 CGContextRelease(cgcontext);
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1909 cgcontext = nil;
2437
929ce3cd18ea iOS: Fix bitblt and crashes due to missing retains.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2436
diff changeset
1910 [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
1911 [oldimage release];
2737
74b69da35e91 iOS: Fix a pixmap memory leak, CGImage needs to be released after using it
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2729
diff changeset
1912 CGImageRelease(cgimage);
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1913 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1914 return image;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1915 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1916 -(CGContextRef)cgcontext
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1917 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1918 /* 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
1919 * 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
1920 */
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1921 if(!cgcontext)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1922 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1923 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
1924 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
1925
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
1926 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
1927 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
1928 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
1929 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
1930 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1931 return cgcontext;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1932 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
1933 -(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
1934 @end
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1935
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1936 /* 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
1937 @interface DWScrollBox : UIScrollView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1938 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1939 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1940 id box;
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 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1943 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1944 -(void)setBox:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1945 -(id)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1946 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1947
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1948 @implementation DWScrollBox
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1949 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1950 -(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
1951 -(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
1952 -(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
1953 -(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
1954 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1955
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1956 /* Subclass for a entryfield type */
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1957 @interface DWEntryField : UITextField <UITextFieldDelegate>
2372
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 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1960 id clickDefault;
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1961 unsigned long limit;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1962 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1963 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1964 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1965 -(void)setClickDefault:(id)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 DWEntryField
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; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1971 -(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
1972 -(void)dealloc { UserData *root = userdata; _dw_remove_userdata(&root, NULL, TRUE); dw_signal_disconnect_by_window(self); [super dealloc]; }
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1973 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1974 {
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1975 // Prevent crashing undo bug – see note below.
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1976 if(range.length + range.location > textField.text.length)
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1977 return NO;
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1978
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1979 if(limit > 0)
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1980 {
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1981 NSUInteger newLength = [textField.text length] + [string length] - range.length;
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1982 return newLength <= limit;
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1983 }
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1984 return YES;
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1985 }
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1986 -(void)setMaximumLength:(unsigned long)length { limit = length; }
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
1987 -(unsigned long)maximumLength { return limit; }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1988 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1989
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1990 /* 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
1991 @interface DWText : UILabel
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1992 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1993 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1994 id clickDefault;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1995 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1996 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1997 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1998 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
1999
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2000 @implementation DWText
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2001 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2002 -(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
2003 -(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
2004 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2005
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2006 /* 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
2007 @interface DWNotebookPage : DWBox
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2008 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2009 int pageid;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2010 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2011 -(int)pageid;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2012 -(void)setPageid:(int)input;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2013 @end
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2014
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2015 /* 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
2016 @interface DWNotebook : UIView
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2017 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2018 UISegmentedControl *tabs;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2019 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2020 int pageid;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2021 NSMutableArray<DWNotebookPage *> *views;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2022 DWNotebookPage *visible;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2023 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2024 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2025 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2026 -(int)pageid;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2027 -(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
2028 -(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
2029 -(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
2030 -(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
2031 -(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
2032 @end
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
2033
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2034 @implementation DWNotebook
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2035 -(id)init {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2036 self = [super init];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2037 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
2038 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
2039 [self addSubview:tabs];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2040 return self;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2041 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2042 -(void)setFrame:(CGRect)frame {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2043 [super setFrame:frame];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2044 frame.size.height = 40;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2045 [tabs setFrame:frame];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2046 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2047 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2048 -(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
2049 -(int)pageid { return pageid; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2050 -(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
2051 -(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
2052 -(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
2053 -(NSMutableArray<DWNotebookPage *> *)views { return views; };
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
2054 -(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
2055 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2056 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
2057
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
2058 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
2059 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2060 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
2061
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2062 /* 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
2063 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
2064 [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
2065
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2066 /* 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
2067 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
2068 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2069 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
2070 /* 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
2071 * 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
2072 */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2073 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
2074 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
2075 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
2076 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
2077 [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
2078 [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
2079 visible = page;
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
2080 _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
2081 _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
2082 }
2693
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
2083 _dw_event_handler(self, DW_INT_TO_POINTER([page pageid]), _DW_EVENT_SWITCH_PAGE);
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
2084 }
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
2085 else
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
2086 visible = nil;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2087 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2088 -(void)dealloc {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2089 UserData *root = userdata;
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2090 _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
2091 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
2092 [tabs release];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2093 [views release];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2094 [super dealloc];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
2095 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2096 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2097
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2098 @implementation DWNotebookPage
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2099 -(int)pageid { return pageid; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2100 -(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
2101 -(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
2102 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2103
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2104 /* Subclass for a splitbar type */
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2105 @interface DWSplitBar : UIView
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2106 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2107 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2108 float percent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2109 NSInteger Tag;
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2110 id topleft;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2111 id bottomright;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2112 int splittype;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2113 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2114 -(void)setTag:(NSInteger)tag;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2115 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2116 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2117 -(float)percent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2118 -(void)setPercent:(float)input;
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2119 -(id)topLeft;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2120 -(void)setTopLeft:(id)input;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2121 -(id)bottomRight;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2122 -(void)setBottomRight:(id)input;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2123 -(int)type;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2124 -(void)setType:(int)input;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2125 -(void)resize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2126 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2127
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2128 @implementation DWSplitBar
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2129 -(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
2130 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2131 -(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
2132 -(float)percent { return percent; }
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2133 -(void)setPercent:(float)input
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2134 {
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2135 percent = input;
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2136 if(percent > 100.0)
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2137 percent = 100.0;
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2138 else if(percent < 0.0)
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2139 percent = 0.0;
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2140 [self resize];
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2141 }
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2142 -(id)topLeft { return topleft; }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2143 -(void)setTopLeft:(id)input
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2144 {
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2145 topleft = input;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2146 [self addSubview:topleft];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2147 [topleft autorelease];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2148 }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2149 -(id)bottomRight { return bottomright; }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2150 -(void)setBottomRight:(id)input
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2151 {
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2152 bottomright = input;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2153 [self addSubview:bottomright];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2154 [bottomright autorelease];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2155
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2156 }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2157 -(int)type { return splittype; }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2158 -(void)setType:(int)input { splittype = input; }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2159 -(void)resize
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2160 {
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2161 CGRect rect = self.frame;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2162 CGRect half = rect;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2163
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2164 half.origin.x = half.origin.y = 0;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2165
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2166 if(splittype == DW_HORZ)
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2167 half.size.width = (percent/100.0) * rect.size.width;
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2168 else
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2169 half.size.height = (percent/100.0) * rect.size.height;
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2170 if(topleft)
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2171 {
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2172 DWBox *view = topleft;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2173 Box *box = [view box];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2174 [topleft setFrame:half];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2175 _dw_do_resize(box, half.size.width, half.size.height);
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2176 _dw_handle_resize_events(box);
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2177 }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2178 if(splittype == DW_HORZ)
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2179 {
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2180 half.origin.x = half.size.width;
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2181 half.size.width = rect.size.width - half.size.width;
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2182 }
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2183 else
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2184 {
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2185 half.origin.y = half.size.height;
2647
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2186 half.size.height = rect.size.height - half.size.height;
34c4cb84834a iOS: Fix a miscalculation during DWSplitBar resize.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2646
diff changeset
2187 }
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2188 if(bottomright)
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2189 {
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2190 DWBox *view = bottomright;
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2191 Box *box = [view box];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2192 [bottomright setFrame:half];
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2193 _dw_do_resize(box, half.size.width, half.size.height);
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2194 _dw_handle_resize_events(box);
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2195 }
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
2196 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2197 -(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
2198 @end
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 /* 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
2201 @interface DWSlider : UISlider
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2202 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2203 void *userdata;
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2204 BOOL vertical;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2205 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2206 -(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
2207 -(BOOL)vertical;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2208 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2209 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2210 -(void)sliderChanged:(id)sender;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2211 @end
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 @implementation DWSlider
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2214 -(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
2215 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2216 if(vert)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2217 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2218 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
2219 self.transform = trans;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2220 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2221 vertical = vert;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2222 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
2223 -(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
2224 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2225 -(void)setUserdata:(void *)input { userdata = input; }
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
2226 -(void)sliderChanged:(id)sender { int intVal = (int)[self value]; _dw_event_handler(self, DW_INT_TO_POINTER(intVal), _DW_EVENT_VALUE_CHANGED); }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2227 -(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
2228 @end
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 /* 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
2231 @interface DWMLE : UITextView
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2232 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2233 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2234 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2235 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2236 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2237 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2238
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2239 @implementation DWMLE
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2240 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2241 -(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
2242 -(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
2243 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2244
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2245 /* 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
2246 * 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
2247 */
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
2248 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
2249 {
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
2250 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
2251 [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
2252
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2253 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
2254 [[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
2255 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
2256 [[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
2257 return browsercell;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2258 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2259
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2260 /* 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
2261 @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
2262 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2263 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2264 NSMutableArray *tvcols;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2265 NSMutableArray *data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2266 NSMutableArray *types;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2267 NSPointerArray *titles;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2268 NSPointerArray *rowdatas;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2269 UIColor *fgcolor, *oddcolor, *evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2270 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
2271 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
2272 int iLastAddPoint, iLastQueryPoint;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2273 int filesystem;
2612
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2274 NSTimeInterval lastClick;
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2275 NSInteger lastClickRow;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2276 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2277 -(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
2278 -(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
2279 -(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
2280 -(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
2281 -(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
2282 -(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
2283 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2284 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2285 -(void)setFilesystem:(int)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2286 -(int)filesystem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2287 -(int)addRow:(NSArray *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2288 -(int)addRows:(int)number;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2289 -(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
2290 -(void)removeRow:(int)row;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2291 -(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
2292 -(void *)getRowTitle:(int)row;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2293 -(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
2294 -(int)cellType:(int)col;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2295 -(int)lastAddPoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2296 -(int)lastQueryPoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2297 -(void)setLastQueryPoint:(int)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2298 -(void)clear;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2299 -(void)setup;
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2300 -(CGSize)getsize;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2301 -(void)setForegroundColor:(UIColor *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2302 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2303
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2304 @implementation DWContainer
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2305 -(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
2306 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2307 /* 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
2308 if(tvcols && data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2309 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2310 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
2311 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
2312 if(cols && total)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2313 return total / cols;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2314 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2315 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2316 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2317 -(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
2318 {
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2319 /* 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
2320 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
2321 id celldata = [data objectAtIndex:index];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2322
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2323 /* 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
2324 if([celldata isMemberOfClass:[UITableViewCell class]])
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2325 {
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2326 UITableViewCell *result = celldata;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2327
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2328 /* 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
2329 * 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
2330 */
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
2331 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
2332 [[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
2333
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2334 /* Return the result */
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2335 return result;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2336 }
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2337 return nil;
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
2338 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2339 -(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
2340 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2341 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
2342 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2343 if(evencolor)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2344 [cell setBackgroundColor:evencolor];
2678
24fb27a1e039 iOS: Make UITableViewCell backgrounds clear if not set explicitly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2674
diff changeset
2345 else
24fb27a1e039 iOS: Make UITableViewCell backgrounds clear if not set explicitly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2674
diff changeset
2346 [cell setBackgroundColor:[UIColor clearColor]];
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2347 }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2348 else
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2349 {
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2350 if(oddcolor)
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2351 [cell setBackgroundColor:oddcolor];
2678
24fb27a1e039 iOS: Make UITableViewCell backgrounds clear if not set explicitly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2674
diff changeset
2352 else
24fb27a1e039 iOS: Make UITableViewCell backgrounds clear if not set explicitly.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2674
diff changeset
2353 [cell setBackgroundColor:[UIColor clearColor]];
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2354 }
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2355 }
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2356 -(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
2357 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2358 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
2359 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
2360 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
2361
4d1f370bf65e iOS: Pass in the coordinates and row data on container context event.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2464
diff changeset
2362 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
2363 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
2364 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
2365 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
2366
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
2367 _dw_event_point = point;
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
2368 _dw_event_handler(self, (id)params, _DW_EVENT_ITEM_CONTEXT);
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2369
2602
cc5013e626f7 iOS: Code cleanup, make sure menu items are enabled on creation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2601
diff changeset
2370 if(window && [window popupMenu])
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2371 {
2600
0bb974e70435 iOS: Fix crash by retaining the UIMenu returned in the block.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2599
diff changeset
2372 __block UIMenu *popupmenu = [[[window popupMenu] menu] retain];
0bb974e70435 iOS: Fix crash by retaining the UIMenu returned in the block.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2599
diff changeset
2373 config = [UIContextMenuConfiguration configurationWithIdentifier:nil
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2374 previewProvider:nil
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2375 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
2376 [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
2377 }
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2378 return config;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
2379 }
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
2380 -(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
2381 -(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
2382 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2383 -(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
2384 -(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
2385 -(int)filesystem { return filesystem; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2386 -(void)refreshColors
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2387 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2388 UIColor *oldodd = oddcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2389 UIColor *oldeven = evencolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2390 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
2391 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
2392 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
2393 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
2394
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2395 /* 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
2396 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
2397 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
2398 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2399 oddcolor = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2400 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
2401 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
2402 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2403 evencolor = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2404 [oldodd release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2405 [oldeven release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2406 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2407 -(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
2408 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2409 /* 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
2410 dw_oddcolor = oddcol;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2411 dw_evencolor = evencol;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2412 [self refreshColors];
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)checkDark
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2415 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2416 /* 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
2417 _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
2418 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
2419 _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
2420 else
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
2421 _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
2422 /* 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
2423 if(titles)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2424 [self refreshColors];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2425 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2426 -(void)viewDidChangeEffectiveAppearance { [self checkDark]; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2427 -(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
2428 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2429 if(data)
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 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
2432 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
2433 if(index < iLastAddPoint)
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2434 {
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2435 iLastAddPoint++;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2436 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2437 [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
2438 [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
2439 [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
2440 [set release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2441 return (int)[titles count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2442 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2443 return 0;
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 -(int)addRow:(NSArray *)input
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 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2448 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2449 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
2450 [data addObjectsFromArray:input];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2451 [titles addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2452 [rowdatas addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2453 return (int)[titles count];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2454 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2455 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2456 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2457 -(int)addRows:(int)number
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2458 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2459 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2460 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2461 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
2462 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2463
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2464 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
2465
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2466 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
2467 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2468 [data addObject:[NSNull null]];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2469 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2470 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
2471 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2472 [titles addPointer:NULL];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2473 [rowdatas addPointer:NULL];
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 return (int)[titles count];
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 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2478 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2479 -(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
2480 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2481 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2482 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2483 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
2484 if(index < [data count])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2485 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2486 if(!input)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2487 input = [NSNull null];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2488 [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
2489 }
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2492 -(void)removeRow:(int)row
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 if(tvcols)
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 int z, start, end;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2497 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
2498 void *oldtitle;
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 start = (count * row);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2501 end = start + count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2502
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2503 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
2504 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2505 [data removeObjectAtIndex:start];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2506 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2507 oldtitle = [titles pointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2508 [titles removePointerAtIndex:row];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2509 [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
2510 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
2511 {
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2512 iLastAddPoint--;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2513 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2514 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2515 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2516 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2517 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2518 -(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
2519 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2520 if(titles && input)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2521 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2522 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
2523 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
2524 [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
2525 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2526 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2527 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2528 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2529 -(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
2530 -(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
2531 -(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
2532 -(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
2533 -(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
2534 -(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
2535 -(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
2536 -(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
2537 -(void)clear
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2538 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2539 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2540 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2541 [data removeAllObjects];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2542 while([titles count])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2543 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2544 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
2545 [titles removePointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2546 [rowdatas removePointerAtIndex:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2547 if(oldtitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2548 free(oldtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2549 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2550 }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
2551 iLastAddPoint = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2552 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2553 -(void)setup
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2554 {
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
2555 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
2556 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
2557 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
2558 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
2559 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
2560 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
2561 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
2562 [self checkDark];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2563 }
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
2564 -(CGSize)getsize
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2565 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2566 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
2567
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2568 if(tvcols)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2569 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2570 int colcount = (int)[tvcols count];
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
2571 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
2572 int width = 0;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2573
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2574 if(rowcount > 0)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2575 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2576 int x;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2577
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2578 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
2579 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2580 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
2581 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
2582
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2583 if([cell imageView])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2584 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2585 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
2586 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
2587 }
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2588 if([cell textLabel])
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2589 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2590 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
2591 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
2592 if(textheight > thisheight)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2593 thisheight = textheight;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2594 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2595
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2596 cheight += thisheight;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2597
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2598 if(thiswidth > width)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2599 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2600 width = thiswidth;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2601 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2602 }
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2603 /* 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
2604 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
2605 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2606 width = 16;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2607 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2608 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2609 if(width)
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2610 cwidth += width;
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2611 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2612 cwidth += 16;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2613 cheight += 16;
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
2614 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
2615 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2616 -(void)setForegroundColor:(UIColor *)input
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2617 {
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2618 UIColor *oldfgcolor = fgcolor;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2619
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2620 fgcolor = input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2621 [fgcolor retain];
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2622 [oldfgcolor release];
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2623 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2624 -(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
2625 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2626 void *params[2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2627
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2628 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
2629 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
2630
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2631 /* 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
2632 if([self allowsMultipleSelection])
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2633 {
2612
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2634 NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2635
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2636 /* Handler for container class... check for double tap */
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2637 if(lastClickRow == indexPath.row && now - lastClick < 0.3)
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
2638 _dw_event_handler(self, (id)params, _DW_EVENT_ITEM_ENTER);
2612
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2639 else
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
2640 _dw_event_handler(self, (id)params, _DW_EVENT_ITEM_SELECT);
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2641 /* Handler for listbox class */
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
2642 _dw_event_handler(self, DW_INT_TO_POINTER((int)indexPath.row), _DW_EVENT_LIST_SELECT);
2612
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2643 /* Update lastClick for double tap check */
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2644 lastClick = now;
4628c8c34125 iOS: Standardize DWContainer behavior part 1.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2610
diff changeset
2645 lastClickRow = indexPath.row;
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2646 }
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2647 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
2648 {
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2649 /* Handler for container class */
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
2650 _dw_event_handler(self, (id)params, _DW_EVENT_ITEM_ENTER);
2426
6220f0580088 iOS: DWContainer attempt to get touch and selection handlers working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2425
diff changeset
2651 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2652 }
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2653 -(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
2654 {
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2655 if([self allowsMultipleSelection])
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
2656 [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
2657 }
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
2658 -(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
2659 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
2660
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2661 /* Custom tree view subclasses: DWTree, DWTreeItem, DWTreeViewCell, DWTreeViewCellDelegate */
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2662 @interface DWTreeItem : NSObject
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2663 @property(nonatomic, strong) UIImage *icon;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2664 @property(nonatomic, strong) NSString *title;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2665 @property(nonatomic, assign) void *data;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2666 @property(nonatomic, weak) DWTreeItem *parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2667 @property(nonatomic, retain, readonly) NSMutableArray<DWTreeItem *> *children;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2668 @property(nonatomic, assign, readonly) NSUInteger levelDepth;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2669 @property(nonatomic, assign, readonly) BOOL isRoot;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2670 @property(nonatomic, assign, readonly) BOOL hasChildren;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2671 @property(nonatomic, assign) BOOL expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2672 -(instancetype)initWithIcon:(UIImage *)icon Title:(NSString *)title andData:(void *)itemdata;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2673 -(void)insertChildAfter:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2674 -(void)appendChild:(DWTreeItem *)newChild;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2675 -(void)removeFromParent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2676 -(void)moveToDestination:(DWTreeItem *)destination;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2677 -(BOOL)containsTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2678 -(NSArray<DWTreeItem *> *)visibleNodes;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2679 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2680
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2681 @implementation DWTreeItem
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2682 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2683 NSArray *_flattenedTreeCache;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2684 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2685 -(void)dealloc { NSLog(@"DWTreeItem \"%@\" dealloc", self.title); [_title release]; [_icon release]; [super dealloc]; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2686 -(instancetype)initWithIcon:(UIImage *)icon Title:(NSString *)title andData:(void *)itemdata
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2687 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2688 if(self = [super init])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2689 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2690 _title = [title retain];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2691 _icon = [icon retain];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2692 _data = itemdata;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2693 _children = [[NSMutableArray alloc] initWithCapacity:1];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2694 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2695 return self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2696 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2697 -(NSString *)title
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2698 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2699 if(_title)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2700 return _title;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2701 return self.description;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2702 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2703 -(UIImage *)icon
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2704 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2705 if(_icon)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2706 return _icon;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2707 return nil;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2708 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2709 -(NSArray<DWTreeItem *> *)visibleNodes
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2710 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2711 NSMutableArray *allElements = [[NSMutableArray alloc] init];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2712 [allElements addObject:self];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2713 if(_expanded)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2714 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2715 for (DWTreeItem *child in _children)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2716 [allElements addObjectsFromArray:[child visibleNodes]];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2717 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2718 return allElements;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2719 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2720 -(void)insertChildAfter:(DWTreeItem *)treeItem
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2721 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2722 DWTreeItem *parent = self.parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2723 NSUInteger index = [parent.children indexOfObject:self];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2724 if(index == NSNotFound)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2725 index = [parent.children count];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2726 treeItem.parent = parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2727 [parent.children insertObject:treeItem atIndex:(index+1)];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2728 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2729 -(void)appendChild:(DWTreeItem *)newChild
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2730 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2731 newChild.parent = self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2732 [_children addObject:newChild];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2733 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2734 -(void)removeFromParent
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2735 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2736 DWTreeItem *parent = self.parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2737 if(parent)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2738 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2739 [parent.children removeObject:self];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2740 self.parent = nil;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2741 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2742 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2743 -(void)moveToDestination:(DWTreeItem *)destination
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2744 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2745 NSAssert([self containsTreeItem:destination]==NO, @"[self containsTreeItem:destination] something went wrong!");
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2746 if(self == destination || destination == nil)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2747 return;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2748 [self removeFromParent];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2749
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2750 [destination insertChildAfter:self];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2751 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2752 -(BOOL)containsTreeItem:(DWTreeItem *)treeItem
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2753 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2754 DWTreeItem *parent = treeItem.parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2755 if(parent == nil)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2756 return NO;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2757 if(self == parent)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2758 return YES;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2759 return [self containsTreeItem:parent];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2760 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2761 -(NSUInteger)levelDepth
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2762 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2763 NSUInteger cnt = 0;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2764 if(_parent != nil)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2765 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2766 cnt += 1;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2767 cnt += [_parent levelDepth];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2768 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2769 return cnt;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2770 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2771 -(BOOL)isRoot { return (!_parent); }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2772 -(BOOL)hasChildren { return (_children.count > 0); }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2773 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2774
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2775 @class DWTreeViewCell;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2776 @protocol DWTreeViewCellDelegate <NSObject>
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2777 //@optional
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2778 - (BOOL) queryExpandableInTreeViewCell:(DWTreeViewCell *)treeViewCell;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2779 - (void) treeViewCell:(DWTreeViewCell *)treeViewCell expanded:(BOOL)expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2780 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2781
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2782 @interface DWTreeViewCell : UITableViewCell
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2783 @property(nonatomic, strong) UILabel *titleLabel;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2784 @property(nonatomic) NSUInteger level;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2785 @property(nonatomic) BOOL expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2786 @property(nonatomic) BOOL isFolder;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2787 @property(nonatomic, assign) id <DWTreeViewCellDelegate> delegate;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2788 -(instancetype)initWithStyle:(UITableViewCellStyle)style
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2789 reuseIdentifier:(NSString *)reuseIdentifier
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2790 level:(NSUInteger)level
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2791 expanded:(BOOL)expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2792 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2793
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2794 CGRect DWRectInflate(CGRect rect, CGFloat dx, CGFloat dy)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2795 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2796 return CGRectMake(rect.origin.x-dx, rect.origin.y-dy, rect.size.width+2*dx, rect.size.height+2*dy);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2797 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2798
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2799 static CGFloat IMG_HEIGHT_WIDTH = 20;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2800 static CGFloat XOFFSET = 3;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2801
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2802 @implementation DWTreeViewCell
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2803 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2804 DWButton *_arrowImageButton;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2805 UIImageView *_itemImage;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2806 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2807 -(id)initWithStyle:(UITableViewCellStyle)style
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2808 reuseIdentifier:(NSString *)reuseIdentifier
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2809 level:(NSUInteger)level
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2810 expanded:(BOOL)expanded
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2811 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2812 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2813
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2814 if(self)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2815 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2816 _level = level;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2817 _expanded = expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2818
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2819 UIView *content = self.contentView;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2820
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2821 UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2822 titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2823 titleLabel.numberOfLines = 0;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2824 titleLabel.textAlignment = NSTextAlignmentLeft;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2825 [content addSubview:titleLabel];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2826 _titleLabel = titleLabel;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2827
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2828 UIImageView *itemImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, IMG_HEIGHT_WIDTH, IMG_HEIGHT_WIDTH)];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2829 [content addSubview:itemImage];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2830 _itemImage = itemImage;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2831
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2832 DWButton *arrowImageButton = [[DWButton alloc] initWithFrame:CGRectMake(0, 0, IMG_HEIGHT_WIDTH, IMG_HEIGHT_WIDTH)];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2833 [arrowImageButton setType:_DW_BUTTON_TYPE_TREE];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2834 [arrowImageButton setDidCheckedChanged:^(BOOL checked) {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2835 _expanded = checked;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2836 if([_delegate respondsToSelector:@selector(treeViewCell:expanded:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2837 [_delegate treeViewCell:self expanded:checked];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2838 }];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2839 [arrowImageButton setCheckState:_expanded];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2840 [content addSubview:arrowImageButton];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2841 _arrowImageButton = arrowImageButton;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2842 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2843 return self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2844 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2845 #pragma mark -
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2846 #pragma mark Other overrides
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2847 -(void)layoutSubviews
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2848 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2849 [super layoutSubviews];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2850
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2851 CGSize size = self.contentView.bounds.size;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2852 CGFloat stepSize = size.height;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2853 CGRect rc = CGRectMake(_level * stepSize, 0, stepSize, stepSize);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2854 _arrowImageButton.frame = DWRectInflate(rc, -XOFFSET, -XOFFSET);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2855
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2856 rc = CGRectMake((_level + 1) * stepSize, 0, stepSize, stepSize);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2857 _itemImage.frame = DWRectInflate(rc, -XOFFSET, -XOFFSET);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2858 _titleLabel.frame = CGRectMake((_level + 2) * stepSize, 0, size.width - (_level + 3) * stepSize, stepSize);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2859 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2860 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2861
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2862 @class DWTree;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2863
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2864 @protocol DWTreeViewDelegate <NSObject>
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2865 @required
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2866 -(NSInteger)numberOfRowsInTreeView:(DWTree *)treeView;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2867 -(DWTreeItem *)treeView:(DWTree *)treeView treeItemForRow:(NSInteger)row;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2868 -(NSInteger)treeView:(DWTree *)treeView rowForTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2869 -(void)treeView:(DWTree *)treeView removeTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2870 -(void)treeView:(DWTree *)treeView moveTreeItem:(DWTreeItem *)treeItem to:(DWTreeItem *)to;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2871 -(void)treeView:(DWTree *)treeView addTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2872 //@optional
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2873 -(void)treeView:(DWTree *)treeView didSelectForTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2874 -(BOOL)treeView:(DWTree *)treeView queryExpandableInTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2875 -(void)treeView:(DWTree *)treeView treeItem:(DWTreeItem *)treeItem expanded:(BOOL)expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2876 @optional
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2877 -(BOOL)treeView:(DWTree *)treeView canEditTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2878 -(BOOL)treeView:(DWTree *)treeView canMoveTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2879 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2880
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2881 @interface DWTree : UITableView
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2882 @property(nonatomic, strong) UIFont *font;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2883 @property(nonatomic, strong) DWTreeItem *treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2884 @property(nonatomic, weak) id<DWTreeViewDelegate> treeViewDelegate;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2885 -(instancetype)initWithFrame:(CGRect)frame;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2886 -(void)insertTreeItem:(DWTreeItem *)treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2887 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2888
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2889 @interface DWTree () <UITableViewDataSource, UITableViewDelegate, DWTreeViewCellDelegate, DWTreeViewDelegate>
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2890 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2891
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2892 @implementation DWTree
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2893 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2894 DWTreeItem *_rootNode;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2895 DWTreeItem *_selectedNode;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2896 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2897 -(instancetype)initWithFrame:(CGRect)frame
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2898 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2899 if(self = [super initWithFrame:frame])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2900 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2901 self.delegate=self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2902 self.dataSource=self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2903 _treeViewDelegate=self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2904 self.separatorStyle= UITableViewCellSeparatorStyleNone;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2905 _font = [UIFont systemFontOfSize:16];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2906 _rootNode = [[[DWTreeItem alloc] initWithIcon:nil Title:@"@Root" andData:NULL] retain];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2907 _rootNode.expanded = YES;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2908 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2909 return self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2910 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2911 -(void)dealloc { [_rootNode release]; [super dealloc]; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2912 -(void)insertTreeItem:(DWTreeItem *)treeItem
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2913 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2914 DWTreeItem *targetNode = nil;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2915
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2916 NSArray<DWTreeViewCell *> *cells = [self visibleCells];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2917
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2918 // Target the selected tree node first if any
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2919 for(DWTreeViewCell *cell in cells)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2920 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2921 DWTreeItem *iter = [self treeItemForTreeViewCell:cell];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2922 if(iter == _selectedNode)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2923 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2924 targetNode = iter;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2925 break;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2926 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2927 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2928 // Otherwise target first visible node if any
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2929 if(targetNode == nil && [cells count])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2930 targetNode = [self treeItemForTreeViewCell:cells[0]];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2931 // Finally put it on the root level
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2932 if(targetNode == nil)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2933 targetNode = _rootNode;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2934 // If target is still nil something went horrible wrong
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2935 NSAssert(targetNode, @"targetNode == nil, something went wrong!");
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2936 [targetNode insertChildAfter:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2937
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2938 if([_treeViewDelegate respondsToSelector:@selector(treeView:addTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2939 [_treeViewDelegate treeView:self addTreeItem:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2940
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2941 [self reloadData];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2942 [self resetSelection:NO];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2943 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2944 -(void)setFont:(UIFont *)font
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2945 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2946 _font = font;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2947 [self reloadData];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2948 [self resetSelection:NO];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2949 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2950 -(void)resetSelection:(BOOL)delay
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2951 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2952 NSInteger row = NSNotFound;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2953 if([_treeViewDelegate respondsToSelector:@selector(treeView:rowForTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2954 row = [_treeViewDelegate treeView:self rowForTreeItem:_selectedNode];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2955 if(row != NSNotFound)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2956 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2957 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2958 dispatch_block_t run = ^ {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2959 [self selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2960 };
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2961 if(delay)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2962 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), run);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2963 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2964 run();
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2965 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2966 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2967 #pragma mark - DWTreeViewDelegate
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2968 -(NSInteger)numberOfRowsInTreeView:(DWTree *)treeView { return [_rootNode visibleNodes].count; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2969 -(void)treeView:(DWTree *)treeView addTreeItem:(DWTreeItem *)treeItem {}
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2970 -(void)treeView:(DWTree *)treeView didSelectForTreeItem:(DWTreeItem *)treeItem {}
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2971 -(void)treeView:(DWTree *)treeView moveTreeItem:(DWTreeItem *)treeItem to:(DWTreeItem *)to {}
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2972 -(BOOL)treeView:(DWTree *)treeView queryExpandableInTreeItem:(DWTreeItem *)treeItem { return YES; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2973 -(void)treeView:(DWTree *)treeView removeTreeItem:(DWTreeItem *)treeItem {}
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2974 -(NSInteger)treeView:(DWTree *)treeView rowForTreeItem:(DWTreeItem *)treeItem { return [[_rootNode visibleNodes] indexOfObject:treeItem]; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2975 -(void)treeView:(DWTree *)treeView treeItem:(DWTreeItem *)treeItem expanded:(BOOL)expanded {}
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2976 - (DWTreeItem *)treeView:(DWTree *)treeView treeItemForRow:(NSInteger)row { return [[_rootNode visibleNodes] objectAtIndex:row]; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2977 #pragma mark - UITableViewDataSource
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2978 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2979 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2980 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2981 NSInteger count = 0;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2982 if([_treeViewDelegate respondsToSelector:@selector(numberOfRowsInTreeView:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2983 count = [_treeViewDelegate numberOfRowsInTreeView:self];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2984 return count;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2985 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2986 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2987 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2988 static NSString *CellIdentifier = @"Cell";
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2989
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2990 DWTreeItem *treeItem = [self treeItemForIndexPath:indexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2991 DWTreeViewCell *cell = [[DWTreeViewCell alloc] initWithStyle:UITableViewCellStyleDefault
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2992 reuseIdentifier:CellIdentifier
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2993 level:[treeItem levelDepth]
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2994 expanded:treeItem.expanded];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2995 cell.titleLabel.text = treeItem.title;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2996 cell.imageView.image = treeItem.icon;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2997 cell.titleLabel.font = _font;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2998 //cell.selectionStyle = UITableViewCellSelectionStyleNone;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
2999 cell.delegate = self;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3000 return cell;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3001 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3002 -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3003 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3004 DWTreeItem *treeItem = [self treeItemForIndexPath:indexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3005 if([_treeViewDelegate respondsToSelector:@selector(treeView:canEditTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3006 return [_treeViewDelegate treeView:self canEditTreeItem:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3007 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3008 return (treeItem.isRoot == NO);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3009 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3010 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3011 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3012 DWTreeItem *treeItem = [self treeItemForIndexPath:indexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3013 if(editingStyle == UITableViewCellEditingStyleDelete)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3014 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3015 [treeItem removeFromParent];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3016 if([_treeViewDelegate respondsToSelector:@selector(treeView:removeTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3017 [_treeViewDelegate treeView:self removeTreeItem:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3018 if(treeItem.expanded && treeItem.hasChildren)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3019 [self reloadData];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3020 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3021 [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3022 [self resetSelection:YES];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3023 } else if (editingStyle == UITableViewCellEditingStyleInsert) {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3024 // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3025 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3026 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3027 -(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3028 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3029 if([fromIndexPath isEqual:toIndexPath])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3030 return;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3031 DWTreeItem *srcNode = [self treeItemForIndexPath:fromIndexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3032 DWTreeItem *targetNode = [self treeItemForIndexPath:toIndexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3033 [srcNode moveToDestination:targetNode];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3034
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3035 if([_treeViewDelegate respondsToSelector:@selector(treeView:moveTreeItem:to:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3036 [_treeViewDelegate treeView:self moveTreeItem:srcNode to:targetNode];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3037
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3038 [self reloadData];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3039 [self resetSelection:NO];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3040 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3041 -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3042 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3043 DWTreeItem *treeItem = [self treeItemForIndexPath:indexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3044 if([_treeViewDelegate respondsToSelector:@selector(treeView:canMoveTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3045 return [_treeViewDelegate treeView:self canMoveTreeItem:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3046 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3047 return (treeItem.isRoot == NO);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3048 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3049 #pragma mark - DWTableViewDelegate
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3050 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3051 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3052 DWTreeItem *treeItem = [self treeItemForIndexPath:indexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3053 if([_treeViewDelegate respondsToSelector:@selector(treeView:didSelectForTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3054 [_treeViewDelegate treeView:self didSelectForTreeItem:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3055 _selectedNode = treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3056 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3057 -(NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3058 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3059 DWTreeItem *srcNode = [self treeItemForIndexPath:sourceIndexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3060 DWTreeItem *targetNode = [self treeItemForIndexPath:proposedDestinationIndexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3061 if([srcNode containsTreeItem:targetNode] || srcNode==targetNode)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3062 return sourceIndexPath;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3063 // NSLog(@"Moving to target node \"%@\"", targetNode.title);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3064 return proposedDestinationIndexPath;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3065 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3066 #pragma mark - DWTreeViewCellDelegate
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3067 -(BOOL)queryExpandableInTreeViewCell:(DWTreeViewCell *)treeViewCell
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3068 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3069 BOOL allow = YES;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3070 if([_treeViewDelegate respondsToSelector:@selector(treeView:queryExpandableInTreeItem:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3071 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3072 DWTreeItem *treeItem = [self treeItemForTreeViewCell:treeViewCell];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3073 allow = [_treeViewDelegate treeView:self queryExpandableInTreeItem:treeItem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3074 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3075 return allow;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3076 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3077 -(void)treeViewCell:(DWTreeViewCell *)treeViewCell expanded:(BOOL)expanded
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3078 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3079 DWTreeItem *treeItem = [self treeItemForTreeViewCell:treeViewCell];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3080 treeItem.expanded = expanded;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3081 if(treeItem.hasChildren)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3082 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3083 [self reloadData];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3084 [self resetSelection:NO];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3085 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3086 if([_treeViewDelegate respondsToSelector:@selector(treeView:treeItem:expanded:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3087 [_treeViewDelegate treeView:self treeItem:treeItem expanded:expanded];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3088 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3089 #pragma mark - retrieve TreeItem object from special cell
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3090 -(DWTreeItem *)treeItemForTreeViewCell:(DWTreeViewCell *)treeViewCell
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3091 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3092 NSIndexPath *indexPath = [self indexPathForCell:treeViewCell];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3093 return [self treeItemForIndexPath:indexPath];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3094 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3095 -(DWTreeItem *)treeItemForIndexPath:(NSIndexPath *)indexPath
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3096 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3097 DWTreeItem *treeItem = nil;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3098 if([_treeViewDelegate respondsToSelector:@selector(treeView:treeItemForRow:)])
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3099 treeItem = [_treeViewDelegate treeView:self treeItemForRow:indexPath.row];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3100 NSAssert(treeItem, @"Can't get the Tree Node data");
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3101 return treeItem;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3102 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3103 @end
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
3104
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3105 /* 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
3106 @interface DWCalendar : UIDatePicker
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3107 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3108 void *userdata;
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 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3111 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3112 @end
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 @implementation DWCalendar
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3115 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3116 -(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
3117 -(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
3118 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3119
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3120 /* 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
3121 /* 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
3122 @interface DWStepper : UIStepper
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3123 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3124 id textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3125 id parent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3126 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3127 -(void)setTextfield:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3128 -(id)textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3129 -(void)setParent:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3130 -(id)parent;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3131 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3132
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3133 @implementation DWStepper
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3134 -(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
3135 -(id)textfield { return textfield; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3136 -(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
3137 -(id)parent { return parent; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3138 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3139
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3140 /* 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
3141 @interface DWSpinButton : UIView <UITextFieldDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3142 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3143 void *userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3144 UITextField *textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3145 DWStepper *stepper;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3146 id clickDefault;
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 -(id)init;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3149 -(void *)userdata;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3150 -(void)setUserdata:(void *)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3151 -(UITextField *)textfield;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3152 -(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
3153 -(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
3154 -(void)setClickDefault:(id)input;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3155 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3156
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3157 @implementation DWSpinButton
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3158 -(id)init
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 self = [super init];
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 if(self)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3163 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3164 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
3165 [self addSubview:textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3166 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
3167 [self addSubview:stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3168 [stepper setParent:self];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3169 [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
3170 [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
3171 [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
3172 [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
3173 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3174 return self;
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 -(void *)userdata { return userdata; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3177 -(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
3178 -(UITextField *)textfield { return textfield; }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3179 -(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
3180 -(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
3181 {
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
3182 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
3183 [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
3184 [textfield setText:[NSString stringWithFormat:@"%d", (int)[stepper value]]];
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
3185 _dw_event_handler(self, DW_INT_TO_POINTER((int)[stepper value]), _DW_EVENT_VALUE_CHANGED);
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3186 }
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3187 -(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
3188 {
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
3189 [textfield setText:[NSString stringWithFormat:@"%d", (int)[theStepper value]]];
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
3190 _dw_event_handler(self, DW_INT_TO_POINTER((int)[stepper value]), _DW_EVENT_VALUE_CHANGED);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3191 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3192 -(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
3193 -(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
3194 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3195
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3196 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
3197 @interface DWUserNotificationCenterDelegate : NSObject <UNUserNotificationCenterDelegate>
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3198 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3199
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3200 @implementation DWUserNotificationCenterDelegate
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3201 /* 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
3202 -(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
3203 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3204 completionHandler(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge);
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 /* 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
3207 -(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
3208 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3209 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
3210 unsigned long long handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3211 HWND notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3212
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3213 /* 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
3214 [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
3215 [objScanner scanUnsignedLongLong:&handle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3216 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
3217
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3218 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
3219 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3220 /* 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
3221 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
3222 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3223 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
3224 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3225 /* The user launched the app. */
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
3226 _dw_event_handler(notification, nil, _DW_EVENT_CLICKED);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3227 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
3228 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3229 completionHandler();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3230 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3231 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3232
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3233 @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
3234 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3235 UIPickerView* pickerView;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3236 NSMutableArray* dataArray;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3237 UIBarStyle toolbarStyle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3238 int selectedIndex;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3239 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3240 -(void)setToolbarStyle:(UIBarStyle)style;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3241 -(void)append:(NSString *)item;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3242 -(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
3243 -(void)clear;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3244 -(int)count;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3245 -(NSString *)getTextAtIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3246 -(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
3247 -(void)deleteAtIndex:(int)index;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3248 -(int)selectedIndex;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3249 @end
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3250
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3251 @implementation DWComboBox
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3252 -(id)init
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3253 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3254 self = [super init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3255 if(self)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3256 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3257 [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
3258
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3259 /* Set UI defaults */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3260 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
3261 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
3262
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3263 /* Setup the arrow image */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3264 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
3265 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
3266 [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
3267 [self setRightView:imageButton];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3268 [self setRightViewMode:UITextFieldViewModeAlways];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3269 [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
3270 selectedIndex = -1;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3271 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3272 return self;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3273 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3274 -(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
3275 -(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
3276 -(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
3277 -(void)clear { [dataArray removeAllObjects]; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3278 -(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
3279 -(NSString *)getTextAtIndex:(int)index
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3280 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3281 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
3282 return [dataArray objectAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3283 return nil;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3284 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3285 -(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
3286 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3287 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
3288 [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
3289 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3290 -(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
3291 -(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
3292 -(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
3293 {
2698
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3294 if(row > -1 && row < [dataArray count])
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3295 {
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3296 selectedIndex = (int)row;
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3297 [self setText:[dataArray objectAtIndex:row]];
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3298 [self sendActionsForControlEvents:UIControlEventValueChanged];
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3299 _dw_event_handler(self, DW_INT_TO_POINTER(selectedIndex), _DW_EVENT_LIST_SELECT);
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3300 }
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3301 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3302 -(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
3303 -(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
3304 {
2698
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3305 if(row > -1 && row < [dataArray count])
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3306 return [dataArray objectAtIndex:row];
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
3307 return nil;
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3308 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3309 -(void)doneClicked:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3310 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3311 /* Hides the pickerView */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3312 [self resignFirstResponder];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3313
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3314 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
3315 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3316 selectedIndex = -1;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3317 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3318 [self sendActionsForControlEvents:UIControlEventValueChanged];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3319 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3320 -(void)cancelClicked:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3321 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3322 /* 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
3323 [self resignFirstResponder];
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3324 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3325 -(void)showPicker:(id)sender
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3326 {
2738
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3327 [self resignFirstResponder];
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3328
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3329 pickerView = [[UIPickerView alloc] init];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3330 [pickerView setDataSource:self];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3331 [pickerView setDelegate:self];
2738
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3332
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3333 /* 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
3334 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
3335 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3336 [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
3337 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3338 else
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3339 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3340 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
3341 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3342 [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
3343 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3344 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3345
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3346 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
3347 [toolbar setBarStyle:toolbarStyle];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3348
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3349 /* Space between buttons */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3350 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
3351 target:nil
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3352 action:nil];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3353
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3354 UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3355 initWithTitle:@"Done"
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3356 style:UIBarButtonItemStyleDone
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3357 target:self
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3358 action:@selector(doneClicked:)];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3359
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3360 UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3361 initWithTitle:@"Cancel"
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3362 style:UIBarButtonItemStylePlain
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3363 target:self
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3364 action:@selector(cancelClicked:)];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3365
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3366 [toolbar setItems:[NSArray arrayWithObjects:cancelButton, flexibleSpace, doneButton, nil]];
2738
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3367 [toolbar sizeToFit];
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3368
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3369 /* Custom input view */
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3370 [self setInputView:pickerView];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3371 [self setInputAccessoryView:toolbar];
2738
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3372 [super becomeFirstResponder];
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3373 }
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3374 -(BOOL)becomeFirstResponder
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3375 {
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3376 [self setInputView:nil];
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3377 [self setInputAccessoryView:nil];
c2387166a414 iOS: Improve the combobox. Trigger the input view when touching the combobox
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2737
diff changeset
3378 return [super becomeFirstResponder];
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3379 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3380 -(int)selectedIndex { return selectedIndex; }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3381 @end
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
3382
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3383 /* 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
3384 * 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
3385 * 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
3386 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3387 @interface DWMDI : DWBox {}
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3388 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3389
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3390 @implementation DWMDI
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3391 @end
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3392
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3393 /* 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
3394 */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3395 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
3396 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
3397 DWSignalHandler *new = malloc(sizeof(DWSignalHandler));
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3398
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3399 new->message = message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3400 new->window = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3401 new->id = msgid;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3402 new->signalfunction = signalfunction;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3403 new->discfunction = discfunc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3404 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3405 new->next = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3406
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
3407 if (!DWRoot)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
3408 DWRoot = new;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3409 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3410 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
3411 DWSignalHandler *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
3412 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3413 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3414 if(tmp->message == message &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3415 tmp->window == window &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3416 tmp->id == msgid &&
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3417 tmp->signalfunction == signalfunction)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3418 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3419 tmp->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3420 free(new);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3421 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3422 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3423 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3424 tmp = tmp->next;
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 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3427 prev->next = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3428 else
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
3429 DWRoot = new;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3430 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3431 }
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 /* 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
3434 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
3435 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3436 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3437
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3438 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
3439 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
3440 if(strcasecmp(signame, DWSignalTranslate[z].name) == 0)
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
3441 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
3442 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3443 return 0L;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3444 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3445
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
3446 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
3447
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3448 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
3449 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3450 int z;
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 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
3453 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3454 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
3455
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3456 if(thisbox->items[z].type == _DW_TYPE_BOX)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3457 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3458 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
3459
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3460 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3461 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3462 _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
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3466 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3467 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
3468 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3469 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
3470 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
3471 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
3472
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3473 /* Eliminate duplicate configure requests */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3474 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
3475 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3476 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
3477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3478 [render setSize:newsize];
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
3479 _dw_event_handler(handle, nil, _DW_EVENT_CONFIGURE);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3480 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3481 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3482 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3483 /* 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
3484 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
3485 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3486 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
3487 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
3488
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
3489 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
3490 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3491 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
3492
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3493 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
3494 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3495 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
3496 _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
3497 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3498 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3499 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3500 /* 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
3501 * 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
3502 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3503 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
3504 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3505 DWScrollBox *scrollbox = (DWScrollBox *)handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3506 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3507 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
3508 Box *thisbox = [contentbox box];
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 /* 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
3511 _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
3512 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3513 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3514 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3515 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3516
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3517 /* 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
3518 * 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
3519 */
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3520 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
3521 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3522 /* Current item position */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3523 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
3524 /* 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
3525 * 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
3526 * 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
3527 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3528 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
3529 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
3530
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3531 /* Reset the box sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3532 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
3533
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3534 /* 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
3535 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
3536 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3537 int itempad, itemwidth, itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3538
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3539 if(thisbox->items[z].type == _DW_TYPE_BOX)
2372
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 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
3542 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
3543
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3544 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3545 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3546 /* 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
3547 if(pass == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3548 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3549 (*depth)++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3550
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3551 /* 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
3552 _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
3553
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3554 /* 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
3555 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
3556 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
3557
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3558 /* 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
3559 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
3560 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
3561 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
3562 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
3563
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3564 (*depth)--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3565 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3566 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3567 }
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 /* 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
3570 * 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
3571 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3572 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
3573 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
3574 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
3575
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3576 /* 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
3577 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
3578 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3579 if(itemwidth > uxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3580 uxmax = itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3581
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3582 if(thisbox->items[z].hsize != _DW_SIZE_EXPAND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3583 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3584 if(itemwidth > upxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3585 upxmax = itemwidth;
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 else
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 if(itempad > upxmax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3590 upxmax = itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3591 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3592 thisbox->minheight += itemheight;
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3593 if(thisbox->items[z].vsize != _DW_SIZE_EXPAND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3594 thisbox->usedpady += itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3595 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3596 thisbox->usedpady += itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3597 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3598 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3599 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3600 if(itemheight > uymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3601 uymax = itemheight;
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3602 if(thisbox->items[z].vsize != _DW_SIZE_EXPAND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3603 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3604 if(itemheight > upymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3605 upymax = itemheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3606 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3607 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3608 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3609 if(itempad > upymax)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3610 upymax = itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3611 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3612 thisbox->minwidth += itemwidth;
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3613 if(thisbox->items[z].hsize != _DW_SIZE_EXPAND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3614 thisbox->usedpadx += itemwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3615 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3616 thisbox->usedpadx += itempad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3617 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3618 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3619
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3620 /* 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
3621 thisbox->minwidth += uxmax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3622 thisbox->minheight += uymax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3623 thisbox->usedpadx += upxmax;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3624 thisbox->usedpady += upymax;
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 /* 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
3627 if(pass > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3628 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3629 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
3630 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3631 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
3632 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
3633 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
3634 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
3635
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3636 /* Calculate the new sizes */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3637 if(thisbox->items[z].hsize == _DW_SIZE_EXPAND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3638 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3639 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
3640 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3641 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
3642
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3643 if(expandablex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3644 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
3645 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3646 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3647 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
3648 }
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3649 if(thisbox->items[z].vsize == _DW_SIZE_EXPAND)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3650 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3651 if(thisbox->type == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3652 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3653 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
3654
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3655 if(expandabley)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3656 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
3657 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3658 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3659 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
3660 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3661
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3662 /* 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
3663 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
3664 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3665 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
3666 id handle = thisbox->items[z].hwnd;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3667 CGRect rect;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3668
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3669 rect.origin.x = currentx + pad;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3670 rect.origin.y = currenty + pad;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3671 rect.size.width = width;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3672 rect.size.height = height;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3673 [handle setFrame:rect];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3675 /* After placing a box... place its components */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
3676 if(thisbox->items[z].type == _DW_TYPE_BOX)
2372
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 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
3679 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
3680
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3681 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3682 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3683 (*depth)++;
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3684 _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
3685 (*depth)--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3686 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3687 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3688
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3689 /* 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
3690 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
3691 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3692 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
3693 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
3694
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3695 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
3696 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3697 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
3698 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3699 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
3700
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3701 /* 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
3702 [[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
3703 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
3704 [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
3705 [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
3706 }
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3707 }
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3708
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
3709 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
3710 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3711 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
3712
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3713 /* 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
3714 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
3715 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3716 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
3717 /* 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
3718 * 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
3719 */
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
3720 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
3721 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
3722 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
3723 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
3724 [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
3725 _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
3726 _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
3727 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3728 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3729 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3730 /* 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
3731 * 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
3732 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3733 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
3734 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3735 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3736 DWScrollBox *scrollbox = (DWScrollBox *)handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3737 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3738 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
3739 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
3740 /* 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
3741 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
3742
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3743 /* 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
3744 _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
3745
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
3746 /* 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
3747 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
3748 {
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
3749 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
3750 }
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
3751 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
3752 {
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
3753 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
3754 }
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
3755 [scrollbox setContentSize:frame.size];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
3756 [contentbox setFrame:frame];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3757
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3758 /* 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
3759 _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
3760 _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
3761 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3762 /* 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
3763 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
3764 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3765 DWSpinButton *spinbutton = (DWSpinButton *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3766 UITextField *textfield = [spinbutton textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3767 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
3768 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
3769 [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
3770 [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
3771 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3772 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
3773 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3774 DWSplitBar *split = (DWSplitBar *)handle;
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
3775 [split resize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3776 }
2700
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3777 else if([handle isMemberOfClass:[DWMLE class]])
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3778 {
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3779 DWMLE *mle = (DWMLE *)handle;
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3780
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3781 if([[mle textContainer] lineBreakMode] == NSLineBreakByClipping)
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3782 [[mle textContainer] setSize:CGRectInfinite.size];
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
3783 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3784
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3785 /* 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
3786 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
3787 currentx += width + (pad * 2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3788 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
3789 currenty += height + (pad * 2);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3790 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3791 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3792 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3793 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3794
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
3795 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
3796 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3797 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
3798 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3799 if(thisbox)
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 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3802
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3803 /* 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
3804 _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
3805
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3806 /* 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
3807 _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
3808 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3809 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3810 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3811
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3812 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3813 * 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
3814 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3815 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
3816 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3817 /* 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
3818 * 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
3819 * 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
3820 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3821 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
3822 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3823
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3824 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3825 * 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
3826 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3827 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
3828 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
3829 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
3830 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3831
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3832 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3833 * 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
3834 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3835 * 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
3836 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3837 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
3838 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3839 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3840
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3841 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
3842 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3843 DWTID orig = DWThread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3844 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
3845
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3846 if(orig == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3847 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3848 DWThread = curr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3849 }
2648
2362cb4b7ef9 iOS: Fix another _dw_main_iteration() loop issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2647
diff changeset
3850 /* Process any pending events */
2362cb4b7ef9 iOS: Fix another _dw_main_iteration() loop issue.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2647
diff changeset
3851 _dw_main_iteration(until);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3852 if(orig == (DWTID)-1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3853 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3854 DWThread = orig;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3855 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3856 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3857 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3858 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3859 usleep(milliseconds * 1000);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3860 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3861 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3862
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3863 /* 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
3864 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
3865 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
3866 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
3867 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3870 * 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
3871 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3872 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
3873 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3874 DWTID curr = pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3875
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3876 if(DWThread == (DWTID)-1)
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 DWThread = curr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3879 _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
3880 DWThread = (DWTID)-1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3881 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3882 else if(DWThread == curr)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3883 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3884 _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
3885 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3886 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3887
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3888 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3889 * 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
3890 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3891 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
3892 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3893 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3894
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 * 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
3897 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3898 * 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
3899 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3900 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
3901 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3902 dw_shutdown();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3903 exit(exitcode);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3904 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3905
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3906 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3907 * 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
3908 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3909 * 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
3910 * 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
3911 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3912 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
3913 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3914 free(ptr);
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3917 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3918 * 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
3919 * 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
3920 * OS/2 and Windows).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3921 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3922 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
3923 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3924 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
3925
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3926 if(!_user_dir[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3927 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3928 char *home = getenv("HOME");
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 if(home)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3931 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
3932 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3933 strcpy(_user_dir, "/");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3934 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3935 return _user_dir;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3939 * 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
3940 * private application data directory.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3941 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3942 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
3943 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3944 return _dw_bundle_path;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3945 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3946
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3947 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3948 * 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
3949 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3950 * 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
3951 * 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
3952 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3953 * 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
3954 * 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
3955 * 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
3956 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3957 * 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
3958 * 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
3959 * 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
3960 * 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
3961 * 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
3962 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3963 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
3964 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3965 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
3966 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3967 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3968
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3969 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3970 * 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
3971 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3972 * 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
3973 * ...: 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
3974 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3975 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
3976 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3977 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3978 char outbuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3979
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3980 va_start(args, format);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3981 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
3982 va_end(args);
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 NSLog(@"%s", outbuf);
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3987 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3988 * 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
3989 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3990 * 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
3991 * 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
3992 * 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
3993 * ...: 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
3994 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3995 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
3996 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3997 NSInteger iResponse;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3998 NSString *button1 = @"OK";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
3999 NSString *button2 = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4000 NSString *button3 = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4001 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
4002 NSString *mtext;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4003 UIAlertControllerStyle mstyle = UIAlertControllerStyleAlert;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4004 NSArray *params;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4005 va_list args;
2725
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4006 static int in_mb = FALSE;
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4007
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4008 /* Prevent recursion */
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4009 if(in_mb)
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4010 return 0;
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4011 in_mb = TRUE;
2372
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 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
4014 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4015 button2 = @"Cancel";
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 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
4018 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4019 button1 = @"Yes";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4020 button2 = @"No";
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 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
4023 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4024 button1 = @"Yes";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4025 button2 = @"No";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4026 button3 = @"Cancel";
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4027 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4028
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4029 va_start(args, format);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4030 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
4031 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4032
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4033 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
4034 [DWObj safeCall:@selector(messageBox:) withObject:params];
2725
2dd68d2810ca iOS: dw_messagebox() can't be called recursively...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2723
diff changeset
4035 in_mb = FALSE;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4036 iResponse = [[params lastObject] integerValue];
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 switch(iResponse)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4039 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4040 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
4041 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
4042 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4043 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
4044 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4045 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
4046 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
4047 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
4048 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4049 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
4050 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4051 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
4052 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
4053 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
4054 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4055 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4056 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4059 * 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
4060 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4061 * 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
4062 * 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
4063 * ext: Default file extention.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4064 * 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
4065 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4066 * 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
4067 * 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
4068 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4069 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4070 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
4071 {
2415
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
4072 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
4073 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
4074
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
4075 [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
4076 [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
4077 [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
4078 [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
4079 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
4080 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
4081
f33a81fa29e9 iOS: Implment dw_file_browse() and fix issues in dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2414
diff changeset
4082 return file;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4086 * 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
4087 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4088 * None.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4089 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4090 * 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
4091 * be converted to text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4092 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4093 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
4094 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4095 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4096 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
4097 if(str != nil)
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4098 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
4099 return NULL;
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
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 * 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
4104 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4105 * Text.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4106 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4107 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
4108 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4109 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4110
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
4111 [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
4112 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4113
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4114
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4115 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4116 * 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
4117 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4118 * 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
4119 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4120 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
4121 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4122 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
4123
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4124 if(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4125 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4126 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
4127 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
4128 tmp->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4129 tmp->done = FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4130 tmp->result = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4131 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4132 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4133 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4134
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 * 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
4137 * 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
4138 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4139 * 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
4140 * 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
4141 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4142 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
4143 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4144 dialog->result = result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4145 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
4146 dialog->done = TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4147 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4148 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4149
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4150 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4151 * 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
4152 * 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
4153 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4154 * 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
4155 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4156 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
4157 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4158 void *tmp = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4159
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4160 if(dialog)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4161 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4162 while(!dialog->done)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4163 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4164 _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
4165 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4166 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
4167 tmp = dialog->result;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4168 free(dialog);
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 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4171 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4172
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4173 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4174 * 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
4175 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4176 * 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
4177 * 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
4178 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4179 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
4180 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
4181 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
4182 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
4183 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4184 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
4185 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
4186 Box *newbox = [view box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4187 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
4188 newbox->pad = pad;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4189 newbox->type = type;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4190 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
4191 }
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 * 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
4195 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4196 * 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
4197 * 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
4198 * 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
4199 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4200 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
4201 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4202 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
4203 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4204
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4205 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4206 * 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
4207 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4208 * 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
4209 * 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
4210 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4211 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
4212 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
4213 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
4214 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
4215 {
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
4216 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
4217 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
4218 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
4219 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
4220 [scrollbox setBox:box];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4221 [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
4222 [scrollbox setScrollEnabled:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4223 [tmpbox autorelease];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
4224 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
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 * 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
4229 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4230 * 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
4231 * 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
4232 */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4233 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
4234 DW_FUNCTION_ADD_PARAM2(handle, orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4235 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
4236 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
4237 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4238 DWScrollBox *scrollbox = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4239 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4240 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
4241 CGSize contentsize = [scrollbox contentSize];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4242 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
4243 int range = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4244 int val = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4245 if(orient == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4246 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4247 range = [view bounds].size.height - contentsize.height;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4248 val = contentoffset.y;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4249 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4250 else
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 range = [view bounds].size.width - contentsize.width;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4253 val = contentoffset.x;
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4254 }
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4255 if(val > range)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4256 {
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4257 val = range;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4258 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4259 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
4260 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4261
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4262 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4263 * 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
4264 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4265 * 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
4266 * 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
4267 */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4268 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
4269 DW_FUNCTION_ADD_PARAM2(handle, orient)
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4270 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
4271 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
4272 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4273 DWScrollBox *scrollbox = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4274 NSArray *subviews = [scrollbox subviews];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4275 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
4276 int range = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4277 if(orient == DW_VERT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4278 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4279 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
4280 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4281 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4282 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4283 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
4284 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4285 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
4286 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4287
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4288 /* 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
4289 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
4290 {
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
4291 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
4292 {
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
4293 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
4294 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
4295 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
4296 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
4297 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4298 DWSpinButton *spinbutton = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4299 object = [spinbutton textfield];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4300 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4301 #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
4302 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
4303 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4304 NSBox *box = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4305 id content = [box contentView];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4306
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
4307 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
4308 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4309 object = content;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4310 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4311 }
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4312 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4313 return object;
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 /* 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
4317 * 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
4318 *
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4319 * Render/Unspecified: 1x1
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4320 * 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
4321 * 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
4322 * Spinbutton: 50x(maxfontheight)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4323 * 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
4324 * 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
4325 * 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
4326 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4327 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
4328 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4329 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
4330 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
4331 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
4332
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4333 /* 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
4334 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
4335 {
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
4336 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
4337
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4338 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
4339 {
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4340 /* 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
4341 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
4342 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
4343 /* 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
4344 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
4345 }
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4346 /* 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
4347 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
4348
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
4349 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
4350 {
2423
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
4351 /* 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
4352 * 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
4353 */
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
4354 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
4355 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
4356 else
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
4357 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
4358 extraheight += 4;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4359 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4360 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4361 /* 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
4362 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
4363 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4364 UIFont *font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4365
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4366 if([object isEditable])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4367 {
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4368 /* 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
4369 if([handle isMemberOfClass:[DWSpinButton class]])
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4370 thiswidth = 50;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4371 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4372 thiswidth = 150;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4373 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
4374 nsstr = [object text];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4375
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4376 if(font)
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4377 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
4378
2430
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4379 /* Spinbuttons need some extra */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4380 if([handle isMemberOfClass:[DWSpinButton class]])
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4381 {
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4382 DWSpinButton *spinbutton = handle;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4383 CGSize size = [[spinbutton stepper] intrinsicContentSize];
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4384
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4385 /* Add the stepper width as extra... */
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4386 extrawidth = size.width;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4387 /* 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
4388 if(size.height > thisheight)
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4389 thisheight = size.height;
e08968d21d45 iOS: Additional code to calculate spinbutton size.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2429
diff changeset
4390 }
2372
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 /* 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
4393 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
4394 [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
4395 {
2541
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4396 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
4397 {
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4398 thiswidth = 25;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4399 thisheight = 100;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4400 }
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4401 else
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4402 {
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4403 thiswidth = 100;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4404 thisheight = 25;
2ee4df2c50bf iOS: Changes to handle autosizing vertical sliders/scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2540
diff changeset
4405 }
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 /* 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
4408 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
4409 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4410 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
4411
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4412 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4413 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
4414 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
4415 thiswidth = (int)size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4416 thisheight = (int)size.height;
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 /* 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
4420 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
4421 {
2588
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4422 DWCalendar *calendar = object;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4423 CGSize size = [calendar intrinsicContentSize];
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4424
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4425 /* 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
4426 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
4427 {
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4428 if(DWOSMajor >= 14)
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4429 {
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4430 /* 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
4431 thiswidth = 200;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4432 thisheight = 200;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4433 }
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4434 else
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4435 {
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4436 /* 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
4437 thiswidth = 200;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4438 thisheight = 100;
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4439 }
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4440 }
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4441 else
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4442 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4443 thiswidth = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4444 thisheight = size.height;
2588
8253e17b20ad iOS: Remove some bogus secondary color code in DWBox.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2587
diff changeset
4445 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4446 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4447 /* 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
4448 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
4449 [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
4450 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
4451 CGSize size;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4452
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
4453 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
4454 size = [object contentSize];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4455 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4456 size = [object getsize];
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 thiswidth = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4459 thisheight = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4460
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4461 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
4462 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
4463 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
4464 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
4465 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
4466 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
4467 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
4468 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
4469 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
4470 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
4471 {
2413
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
4472 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
4473 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
4474 }
2428
9c5b95d66fc8 iOS: Make spin buttons actually function. Fix layout and autosizing issues.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2427
diff changeset
4475 #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
4476 /* 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
4477 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
4478 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
4479 #endif
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 /* 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
4482 * 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
4483 */
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
4484 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
4485 {
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
4486 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
4487
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
4488 /* 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
4489 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
4490
b4cb136b5222 iOS: Special handling for combined text/image buttons like check and radio
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2422
diff changeset
4491 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
4492 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
4493 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
4494 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
4495 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4496
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4497 /* Set the requested sizes */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4498 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4499 *width = thiswidth + extrawidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4500 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4501 *height = thisheight + extraheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4502 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4503
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4504 /* 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
4505 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
4506 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4507 id object = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4508 DWBox *view = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4509 DWBox *this = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4510 Box *thisbox;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4511 int z, x = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4512 Item *tmpitem, *thisitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4513
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4514 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4515 * 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
4516 * 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
4517 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4518 if(box == item)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4519 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4520 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
4521 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4522 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4523
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4524 /* Query the objects */
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4525 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
4526 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4527 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
4528 NSArray *subviews = [[[window rootViewController] view] subviews];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4529 view = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4530 }
2472
206a0643add6 iOS: Move scrollbox functions into thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2467
diff changeset
4531 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
4532 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4533 DWScrollBox *scrollbox = box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4534 view = [scrollbox box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4535 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4536
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4537 thisbox = [view box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4538 thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4539 object = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4540
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4541 /* 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
4542 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4543 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4544 if(index < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4545 index = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4546 if(index > thisbox->count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4547 index = thisbox->count;
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 /* Duplicate the existing data */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4550 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
4551
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4552 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
4553 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4554 if(z == index)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4555 x++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4556 tmpitem[x] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4557 x++;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4560 /* Sanity checks */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4561 if(vsize && !height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4562 height = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4563 if(hsize && !width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4564 width = 1;
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 /* 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
4567 if([object isKindOfClass:[DWBox class]])
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4568 tmpitem[index].type = _DW_TYPE_BOX;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4569 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4570 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
4571 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
4572 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
4573 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
4574 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
4575
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4576 tmpitem[index].type = _DW_TYPE_ITEM;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4577 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4578
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4579 tmpitem[index].hwnd = item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4580 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
4581 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
4582 tmpitem[index].pad = pad;
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4583 tmpitem[index].hsize = hsize ? _DW_SIZE_EXPAND : _DW_SIZE_STATIC;
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4584 tmpitem[index].vsize = vsize ? _DW_SIZE_EXPAND : _DW_SIZE_STATIC;
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4585
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4586 /* If either of the parameters are -1 (DW_SIZE_AUTO) ... calculate the size */
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4587 if(width == DW_SIZE_AUTO || height == DW_SIZE_AUTO)
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
4588 _dw_control_size(object, width == DW_SIZE_AUTO ? &tmpitem[index].width : NULL, height == DW_SIZE_AUTO ? &tmpitem[index].height : NULL);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4589
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4590 thisbox->items = tmpitem;
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 /* Update the item count */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4593 thisbox->count++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4594
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4595 /* 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
4596 [view addSubview:this];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4597 /* 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
4598 * 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
4599 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4600 [this autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4601 /* 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
4602 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
4603 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4604 DWButton *button = (DWButton *)this;
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 /* 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
4607 * 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
4608 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4609 [button setParent:view];
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 /* 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
4612 _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
4613
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4614 /* Free the old data */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4615 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4616 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4617 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4618
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4619 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4620 * 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
4621 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4622 * 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
4623 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4624 * 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
4625 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4626 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
4627 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
4628 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
4629 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
4630 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4631 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4632 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4633 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4634 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
4635
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4636 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
4637 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4638 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
4639
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4640 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
4641 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4642 id window = [object window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4643 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4644 int z, index = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4645 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
4646
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4647 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4648 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4649
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4650 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
4651 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4652 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
4653 index = z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4654 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4655
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4656 if(index == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4657 retval = DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4658 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4659 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4660 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4661 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4662
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4663 if(thisbox->count > 1)
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 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
4666
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4667 /* 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
4668 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
4669 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4670 tmpitem[z] = thisitem[z];
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 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
4673 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4674 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
4675 }
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 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4679 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4680 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4681 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4682 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4683 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4684 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4685 /* 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
4686 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4687 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4688 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4689 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4690 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4691 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
4692 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4693
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4694 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4695 * 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
4696 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4697 * 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
4698 * 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
4699 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4700 * 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
4701 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4702 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
4703 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
4704 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
4705 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
4706 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4707 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4708 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4709 DWBox *parent = (DWBox *)box;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4710 id object = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4711
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
4712 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
4713 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4714 id window = [parent window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4715 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4716
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4717 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
4718 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4719 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4720 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
4721
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4722 object = thisitem[index].hwnd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4723
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4724 if(object)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4725 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4726 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4727 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4728 }
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 if(thisbox->count > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4731 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4732 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
4733
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4734 /* 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
4735 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
4736 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4737 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4738 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4739 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
4740 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4741 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
4742 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4743 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4744
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4745 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4746 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4747 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4748 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4749 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4750 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4751 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4752
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4753 /* 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
4754 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4755 }
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_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4758 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4762 * 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
4763 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4764 * 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
4765 * 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
4766 * 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
4767 * 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
4768 * 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
4769 * 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
4770 * 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
4771 * 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
4772 */
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
4773 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
4774 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
4775 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
4776 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
4777 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4778 _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
4779 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
4780 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4781
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4782 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4783 * 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
4784 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4785 * 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
4786 * 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
4787 * 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
4788 * 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
4789 * 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
4790 * 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
4791 * 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
4792 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4793 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
4794 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
4795 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
4796 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
4797 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4798 /* 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
4799 * 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
4800 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4801 _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
4802 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
4803 }
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 * 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
4807 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4808 * 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
4809 * 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
4810 * 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
4811 * 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
4812 * 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
4813 * 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
4814 * 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
4815 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
4816 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
4817 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
4818 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
4819 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
4820 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4821 _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
4822 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
4823 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4824
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4825 /* 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
4826 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
4827 {
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4828 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
4829 if(text)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4830 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4831 [button setTitle:[NSString stringWithUTF8String:text] forState:UIControlStateNormal];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4832 }
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4833 [button addTarget:button
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4834 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
4835 forControlEvents:UIControlEventTouchUpInside];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4836 [button setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4837 if(DWDefaultFont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4838 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4839 [[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
4840 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4841 return button;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4842 }
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 * 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
4846 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4847 * 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
4848 * 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
4849 */
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
4850 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
4851 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
4852 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
4853 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
4854 {
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4855 DWButton *button = _dw_internal_button_new(text, cid, UIButtonTypeSystem);
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4856 [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
4857 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
4858 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4859
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4860 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4861 * 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
4862 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4863 * 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
4864 * 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
4865 */
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
4866 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
4867 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
4868 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
4869 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
4870 {
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
4871 DWEntryField *entry = [[[DWEntryField alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4872 [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
4873 [entry setTag:cid];
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4874 [entry setDelegate:entry];
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
4875 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
4876 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4877
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4878 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4879 * 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
4880 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4881 * 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
4882 * 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
4883 */
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
4884 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
4885 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
4886 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
4887 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
4888 {
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
4889 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
4890 [entry setSecureTextEntry:YES];
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4891 [entry setDelegate:entry];
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
4892 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
4893 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4894
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4895 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4896 * 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
4897 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4898 * 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
4899 * 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
4900 */
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4901 DW_FUNCTION_DEFINITION(dw_entryfield_set_limit, void, HWND handle, unsigned long limit)
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4902 DW_FUNCTION_ADD_PARAM2(handle, limit)
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4903 DW_FUNCTION_NO_RETURN(dw_entryfield_set_limit)
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4904 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, limit, unsigned long)
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4905 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4906 DWEntryField *entry = handle;
2704
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4907
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4908 [entry setMaximumLength:limit];
ae846e9f1ead iOS: Implement dw_entryfield_set_limit() using delegate method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2700
diff changeset
4909 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
4910 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4912 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4913 * 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
4914 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4915 * 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
4916 * 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
4917 */
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
4918 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
4919 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
4920 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
4921 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
4922 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4923 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4924 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
4925 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
4926 UIImage *image = [[UIImage alloc] initWithContentsOfFile:filepath];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4927 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
4928 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4929 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4930 [button setImage:image forState:UIControlStateNormal];
2649
76d876c441c9 iOS: Minor code cleanup in the bitmap button image handler.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2648
diff changeset
4931 [image release];
76d876c441c9 iOS: Minor code cleanup in the bitmap button image handler.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2648
diff changeset
4932 }
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
4933 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
4934 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4937 * 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
4938 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4939 * 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
4940 * 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
4941 * 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
4942 * 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
4943 * (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
4944 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
4945 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
4946 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
4947 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
4948 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
4949 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4950 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
4951
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4952 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
4953 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
4954
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4955 if(!image && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4956 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4957 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
4958 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
4959 }
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4960 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
4961 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4962 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4963 [button setImage:image forState:UIControlStateNormal];
2649
76d876c441c9 iOS: Minor code cleanup in the bitmap button image handler.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2648
diff changeset
4964 [image release];
76d876c441c9 iOS: Minor code cleanup in the bitmap button image handler.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2648
diff changeset
4965 }
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
4966 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
4967 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4968
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4969 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4970 * 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
4971 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4972 * 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
4973 * 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
4974 * 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
4975 * (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
4976 * len: length of str
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4977 */
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
4978 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
4979 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
4980 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
4981 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
4982 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4983 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
4984 UIImage *image = [[UIImage alloc] initWithData:thisdata];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
4985 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
4986 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4987 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
4988 [button setImage:image forState:UIControlStateNormal];
2649
76d876c441c9 iOS: Minor code cleanup in the bitmap button image handler.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2648
diff changeset
4989 [image release];
76d876c441c9 iOS: Minor code cleanup in the bitmap button image handler.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2648
diff changeset
4990 }
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
4991 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
4992 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4993
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4994 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4995 * 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
4996 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
4997 * 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
4998 * 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
4999 */
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 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
5001 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
5002 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
5003 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
5004 {
2405
38c17a19e00d iOS: Add adjustment for the statusbar so it isn't covered up by our windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2404
diff changeset
5005 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
5006 UIStepper *stepper = [spinbutton stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5007 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
5008 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
5009
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5010 [stepper setStepValue:1];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5011 [stepper setTag:cid];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5012 [stepper setMinimumValue:-65536];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5013 [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
5014 [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
5015 [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
5016 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
5017 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5018
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5019 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5020 * Sets the spinbutton value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5021 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5022 * 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
5023 * 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
5024 */
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
5025 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
5026 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
5027 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
5028 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
5029 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5030 DWSpinButton *spinbutton = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5031 UIStepper *stepper = [spinbutton stepper];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5032 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
5033 [stepper setValue:(float)position];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5034 [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
5035 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
5036 }
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 * Sets the spinbutton limits.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5040 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5041 * 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
5042 * upper: Upper limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5043 * lower: Lower limit.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5044 */
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
5045 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
5046 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
5047 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
5048 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
5049 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5050 DWSpinButton *spinbutton = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5051 UIStepper *stepper = [spinbutton stepper];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5052 [stepper setMinimumValue:(double)lower];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5053 [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
5054 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
5055 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5056
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5057 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5058 * 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
5059 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5060 * 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
5061 */
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
5062 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
5063 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
5064 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
5065 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
5066 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5067 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
5068 long retval;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5069 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
5070 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
5071 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
5072 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5075 * 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
5076 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5077 * 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
5078 * 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
5079 */
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
5080 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
5081 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
5082 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
5083 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
5084 {
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
5085 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
5086 [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
5087 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
5088 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5089
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5090 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5091 * 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
5092 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5093 * 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
5094 * 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
5095 * 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
5096 */
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5097 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
5098 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
5099 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
5100 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
5101 {
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
5102 DWSlider *slider = [[[DWSlider alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5103 [slider setMaximumValue:(double)increments];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5104 [slider setMinimumValue:0];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5105 [slider setContinuous:YES];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5106 [slider addTarget:slider
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5107 action:@selector(sliderChanged:)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
5108 forControlEvents:UIControlEventValueChanged];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5109 [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
5110 [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
5111 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
5112 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5113
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5114 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5115 * 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
5116 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5117 * 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
5118 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5119 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
5120 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5121 DWSlider *slider = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5122 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
5123 return (int)val;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5124 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5125
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5126 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5127 * Sets the slider position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5128 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5129 * 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
5130 * 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
5131 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5132 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
5133 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5134 DWSlider *slider = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5135 [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
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 * 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
5140 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5141 * 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
5142 * 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
5143 * 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
5144 */
2723
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
5145 DW_FUNCTION_DEFINITION(dw_scrollbar_new, HWND, int vertical, ULONG cid)
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
5146 DW_FUNCTION_ADD_PARAM2(vertical, cid)
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
5147 DW_FUNCTION_RETURN(dw_scrollbar_new, HWND)
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
5148 DW_FUNCTION_RESTORE_PARAM2(vertical, int, cid, ULONG)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5149 {
2718
2987bf90c7c9 iOS: Hide the UISlider track when using them as scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2712
diff changeset
5150 DWSlider *slider = dw_slider_new(vertical, 1, cid);
2987bf90c7c9 iOS: Hide the UISlider track when using them as scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2712
diff changeset
5151 [slider setMinimumTrackTintColor:[UIColor clearColor]];
2987bf90c7c9 iOS: Hide the UISlider track when using them as scrollbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2712
diff changeset
5152 [slider setMaximumTrackTintColor:[UIColor clearColor]];
2723
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
5153 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
5154 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5155
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5156 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5157 * 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
5158 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5159 * 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
5160 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5161 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
5162 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5163 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5167 * Sets the scrollbar position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5168 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5169 * 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
5170 * 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
5171 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5172 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
5173 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5174 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
5175 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5176
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 * Sets the scrollbar range.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5179 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5180 * 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
5181 * range: Maximum range value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5182 * 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
5183 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5184 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
5185 {
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5186 DWSlider *slider = handle;
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
5187 [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
5188 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5191 * 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
5192 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5193 * 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
5194 */
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
5195 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
5196 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
5197 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
5198 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
5199 {
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
5200 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
5201 [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
5202 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
5203 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5204
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5205 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5206 * Sets the percent bar position.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5207 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5208 * handle: Handle to the 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
5209 * 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
5210 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5211 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
5212 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
5213 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
5214 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
5215 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5216 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5217 DWPercent *percent = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5218
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5219 /* Handle indeterminate */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5220 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
5221 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5222 [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
5223 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5224 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5225 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5226 /* Handle normal */
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5227 [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
5228 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5229 DW_FUNCTION_RETURN_NOTHING;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5233 * 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
5234 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5235 * 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
5236 * 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
5237 */
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
5238 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
5239 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
5240 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
5241 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
5242 {
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
5243 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
5244 [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
5245 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
5246 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5247
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5248 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5249 * 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
5250 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5251 * 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
5252 */
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
5253 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
5254 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
5255 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
5256 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
5257 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5258 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
5259 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
5260
2700
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5261 if([button checkState])
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
5262 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
5263 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
5264 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5267 * 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
5268 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5269 * 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
5270 * 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
5271 */
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
5272 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
5273 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
5274 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
5275 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
5276 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5277 DWButton *button = handle;
2680
1888d0a08365 iOS: Move the check/radio type alignment changes into setType: method.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2679
diff changeset
5278 [button setCheckState:value];
2422
4a353a83b2e4 iOS: Initial attempt at implementing check and radio boxes using SF Symbols.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2421
diff changeset
5279 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
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 /* 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
5283 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
5284 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
5285 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
5286
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5287 [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
5288 [cont setDataSource:cont];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5289 [cont setDelegate:cont];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5290 [cont setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5291 [cont autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5292 [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
5293 return cont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5294 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5295
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5296 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5297 * 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
5298 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5299 * 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
5300 * 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
5301 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5302 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
5303 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
5304 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
5305 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
5306 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5307 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5308 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
5309 [cont setup];
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
5310 [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
5311 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
5312 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5313
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5314 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5315 * 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
5316 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5317 * 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
5318 * 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
5319 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5320 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
5321 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
5322 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
5323 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
5324 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5325 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5326 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5327
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5328 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
5329 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5330 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5331
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5332 [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
5333 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5334 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
5335 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5336 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5337 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
5338 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
5339
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5340 [cont addRow:newrow];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5341 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5342 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5343 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5344 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5345 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5348 * 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
5349 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5350 * 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
5351 * 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
5352 * 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
5353 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5354 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
5355 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
5356 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
5357 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
5358 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5359 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5360 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5361
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5362 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
5363 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5364 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5365
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5366 [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
5367 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5368 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
5369 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5370 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5371 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
5372 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
5373
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5374 [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
5375 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5376 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5377 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5378 DW_FUNCTION_RETURN_NOTHING;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5382 * 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
5383 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5384 * 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
5385 * 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
5386 * 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
5387 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5388 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
5389 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
5390 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
5391 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
5392 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5393 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5394 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5395
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5396 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
5397 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5398 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5399 int z;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5400
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5401 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
5402 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5403 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
5404
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5405 [combo append:nstr];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5406 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5407 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5408 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
5409 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5410 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5411 int z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5412
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5413 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
5414 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5415 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
5416 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
5417
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5418 [cont addRow:newrow];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5419 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5420 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5421 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5422 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5423 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5424 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5425
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5426 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5427 * 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
5428 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5429 * 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
5430 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5431 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
5432 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
5433 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
5434 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
5435 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5436 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5437 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5438
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5439 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
5440 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5441 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5442
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5443 [combo clear];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5444 }
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5445 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
5446 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5447 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5448
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5449 [cont clear];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5450 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5451 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5452 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5453 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5454 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5455
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5456 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5457 * 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
5458 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5459 * 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
5460 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5461 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
5462 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
5463 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
5464 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
5465 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5466 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5467 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5468 int result = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5469
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5470 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
5471 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5472 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5473
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5474 result = [combo count];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5475 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5476 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
5477 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5478 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
5479 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
5480 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5481 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
5482 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5483
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 * 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
5486 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5487 * 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
5488 * 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
5489 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5490 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
5491 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
5492 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
5493 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
5494 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5495 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5496 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5497
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5498 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
5499 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5500 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5501 NSIndexPath *myIP = [NSIndexPath indexPathForRow:top inSection:0];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5502
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5503 [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
5504 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5505 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5506 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5507
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5508 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5509 * 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
5510 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5511 * 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
5512 * 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
5513 * 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
5514 * 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
5515 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5516 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
5517 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
5518 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
5519 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
5520 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5521 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5522 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5523
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5524 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
5525 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5526 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5527 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
5528
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5529 if(nstr)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5530 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
5531 else
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5532 *buffer = '\0';
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5533 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5534 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
5535 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5536 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
5537 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
5538
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5539 if(index > count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5540 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5541 *buffer = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5542 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5543 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5544 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5545 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
5546 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
5547
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5548 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
5549 }
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 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5552 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5555 * 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
5556 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5557 * 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
5558 * 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
5559 * 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
5560 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5561 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
5562 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
5563 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
5564 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
5565 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5566 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5567 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5568
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5569 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
5570 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5571 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5572
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5573 [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
5574 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5575 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
5576 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5577 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
5578 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
5579
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5580 if(index <= count)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5581 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5582 NSString *nstr = [NSString stringWithUTF8String:buffer];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5583 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
5584
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
5585 [[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
5586 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5587 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5588 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5589 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5590 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5591 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5592
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5593 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5594 * 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
5595 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5596 * 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
5597 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5598 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
5599 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
5600 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
5601 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
5602 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5603 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5604 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5605 int result = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5606
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5607 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
5608 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5609 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5610
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5611 result = [combo selectedIndex];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5612 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5613 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
5614 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5615 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5616 NSIndexPath *ip = [cont indexPathForSelectedRow];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5617
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5618 if(ip)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5619 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
5620 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5621 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
5622 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5623
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 * 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
5626 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5627 * 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
5628 * 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
5629 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5630 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
5631 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
5632 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
5633 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
5634 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5635 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5636 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5637 int retval = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5638
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5639 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
5640 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5641 DWContainer *cont = handle;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
5642 NSArray *selected = [cont indexPathsForSelectedRows];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5643 NSIndexPath *ip = [selected objectAtIndex:(where == -1 ? 0 :where)];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5644
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5645 if(ip)
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5646 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
5647 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5648 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
5649 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5650
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5651 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5652 * 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
5653 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5654 * 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
5655 * index: Item index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5656 * 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
5657 */
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5658 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
5659 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
5660 DW_FUNCTION_NO_RETURN(dw_listbox_select)
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5661 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
5662 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5663 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5664 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5665
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
5666 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
5667 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5668 DWContainer *cont = handle;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5669 NSIndexPath *ip = [NSIndexPath indexPathForRow:index inSection:0];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5670
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5671 [cont selectRowAtIndexPath:ip
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5672 animated:NO
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5673 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5674 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5675 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5676 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5677
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5678 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5679 * 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
5680 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5681 * 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
5682 * index: Item index.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5683 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5684 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
5685 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
5686 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
5687 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
5688 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5689 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5690 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5691
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5692 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
5693 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5694 DWComboBox *combo = handle;
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5695
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5696 [combo deleteAtIndex:index];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5697 }
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5698 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
5699 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5700 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5701
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5702 [cont removeRow:index];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5703 [cont reloadData];
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
5704 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5705 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5706 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5707 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5708
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5709 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5710 * 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
5711 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5712 * 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
5713 * 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
5714 */
2432
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5715 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
5716 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
5717 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
5718 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
5719 {
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5720 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
5721 if(text)
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5722 [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
5723 [combo setTag:cid];
5e0507e67c5d iOS: Initial implementation of DWComboBox, not fully functional yet.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2430
diff changeset
5724 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
5725 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5726
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 * 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
5729 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5730 * 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
5731 */
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
5732 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
5733 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
5734 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
5735 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
5736 {
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
5737 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
5738 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
5739 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
5740 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
5741 [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
5742 [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
5743 DWMLE *mle = [[[DWMLE alloc] initWithFrame:frame textContainer:tc] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5744 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
5745
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5746 size.width = size.height;
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
5747 [mle setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5748 [mle setScrollEnabled: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
5749 [mle setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5750 [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
5751 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
5752 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5753
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5754 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5755 * 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
5756 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5757 * 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
5758 * 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
5759 * 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
5760 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5761 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
5762 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
5763 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
5764 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
5765 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5766 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5767 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5768 unsigned int retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5769 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5770 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
5771 UIColor *fgcolor = [mle textColor];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5772 UIFont *font = [mle font];
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5773 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
5774 [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
5775 if(font)
ba24ddb19a43 iOS: Fix font and colors on MLE imported text.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2443
diff changeset
5776 [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
5777 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
5778 NSUInteger length = [ts length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5779 if(startpoint < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5780 startpoint = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5781 if(startpoint > length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5782 startpoint = (int)length;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5783 [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
5784 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
5785 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
5786 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5787
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5788 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5789 * 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
5790 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5791 * 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
5792 * 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
5793 * 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
5794 * 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
5795 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5796 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
5797 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
5798 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
5799 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
5800 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5801 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5802 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5803 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5804 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5805 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
5806 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
5807 buffer[length] = '\0';
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5808 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5809 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5810
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5811 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5812 * 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
5813 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5814 * 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
5815 * 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
5816 * 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
5817 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5818 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
5819 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
5820 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
5821 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
5822 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5823 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5824 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5825 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5826 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5827 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
5828
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5829 if(bytes)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5830 *bytes = stringLength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5831 if(lines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5832 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5833 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
5834 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
5835
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5836 *lines = numberOfLines;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5837 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5838 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5839 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5840
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5841 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5842 * 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
5843 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5844 * 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
5845 * 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
5846 * 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
5847 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5848 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
5849 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
5850 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
5851 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
5852 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5853 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5854 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5855 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5856 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5857 NSUInteger mslength = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5858 if(startpoint < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5859 startpoint = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5860 if(startpoint > mslength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5861 startpoint = (int)mslength;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5862 if(startpoint + length > mslength)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5863 length = (int)mslength - startpoint;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5864 [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
5865 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5866 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5867
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5868 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5869 * 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
5870 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5871 * 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
5872 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5873 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
5874 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
5875 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
5876 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
5877 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5878 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5879 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5880 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5881 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5882 NSUInteger length = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5883 [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
5884 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5885 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5886
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5887 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5888 * 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
5889 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5890 * 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
5891 * 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
5892 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5893 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
5894 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
5895 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
5896 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
5897 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5898 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5899 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5900 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5901 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5902 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
5903
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5904 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
5905 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
5906
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5907 if(line == numberOfLines)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5908 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5909 [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
5910 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5911 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5912 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5913
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5914 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5915 * 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
5916 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5917 * 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
5918 * 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
5919 */
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5920 DW_FUNCTION_DEFINITION(dw_mle_set_editable, void, HWND handle, int state)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5921 DW_FUNCTION_ADD_PARAM2(handle, state)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5922 DW_FUNCTION_NO_RETURN(dw_mle_set_editable)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5923 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, state, int)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5924 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5925 DWMLE *mle = handle;
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5926 [mle setEditable:(state ? YES : NO)];
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5927 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
5928 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5929
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5930 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5931 * 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
5932 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5933 * 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
5934 * 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
5935 */
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5936 DW_FUNCTION_DEFINITION(dw_mle_set_word_wrap, void, HWND handle, int state)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5937 DW_FUNCTION_ADD_PARAM2(handle, state)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5938 DW_FUNCTION_NO_RETURN(dw_mle_set_word_wrap)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5939 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, state, int)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5940 {
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5941 DWMLE *mle = handle;
2700
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5942
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5943 [[mle textContainer] setLineBreakMode:(state ? NSLineBreakByWordWrapping : NSLineBreakByClipping)];
2700
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5944 [[mle textContainer] setWidthTracksTextView:(state ? YES : NO)];
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5945 if(!state)
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5946 [[mle textContainer] setSize:CGRectInfinite.size];
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5947 else
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5948 {
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5949 CGSize size = [mle frame].size;
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5950 [[mle textContainer] setSize:CGSizeMake(size.width, CGRectInfinite.size.height)];
246f23670e3b iOS: Fix dw_mle_set_word_wrap() and dw_checkbox_get().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2699
diff changeset
5951 }
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5952 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
5953 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5954
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5955 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5956 * 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
5957 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5958 * 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
5959 * 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
5960 */
2699
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5961 DW_FUNCTION_DEFINITION(dw_mle_set_auto_complete, void, HWND handle, int state)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5962 DW_FUNCTION_ADD_PARAM2(handle, state)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5963 DW_FUNCTION_NO_RETURN(dw_mle_set_auto_complete)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5964 DW_FUNCTION_RESTORE_PARAM2(handle, HWND, state, int)
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5965 {
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5966 DWMLE *mle = handle;
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5967 NSInteger autocorrect = (state & DW_MLE_COMPLETE_TEXT) ? UITextAutocorrectionTypeYes : UITextAutocorrectionTypeNo;
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5968 [mle setAutocorrectionType:autocorrect];
0d5e99279c8b iOS: MLE work: Implement dw_mle_set_auto_complete() DW_MLE_COMPLETE_TEXT now
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2698
diff changeset
5969 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
5970 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5971
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5972 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5973 * 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
5974 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5975 * 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
5976 * 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
5977 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5978 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
5979 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
5980 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
5981 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
5982 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5983 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5984 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5985 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5986 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5987 NSUInteger length = [ms length];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5988 if(point < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5989 point = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5990 if(point > length)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5991 point = (int)length;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5992 [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
5993 [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
5994 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5995 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5996
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5997 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
5998 * 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
5999 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6000 * 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
6001 * 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
6002 * 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
6003 * flags: Search specific flags.
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 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
6006 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
6007 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
6008 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
6009 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6010 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6011 DWMLE *mle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6012 NSTextStorage *ts = [mle textStorage];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6013 NSMutableString *ms = [ts mutableString];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6014 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
6015 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
6016 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
6017 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
6018 int retval = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6019
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6020 if(ms)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6021 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
6022 if(range.location == NSNotFound)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6023 retval = (int)range.location;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6024 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
6025 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6026
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 * 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
6029 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6030 * 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
6031 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6032 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
6033 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6034 /* 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
6035 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6036
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6037 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6038 * 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
6039 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6040 * 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
6041 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6042 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
6043 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6044 /* 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
6045 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6048 * 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
6049 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6050 * 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
6051 * 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
6052 */
2540
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6053 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
6054 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
6055 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
6056 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
6057 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6058 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
6059 [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
6060 [textfield setTag:cid];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6061 if(DWDefaultFont)
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6062 {
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6063 [textfield setFont:DWDefaultFont];
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6064 }
1c17472a175a iOS: Implement scrollbars as sliders... implement vertical with a transform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2532
diff changeset
6065 [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
6066 [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
6067 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
6068 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6069
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6070 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6071 * 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
6072 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6073 * 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
6074 * 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
6075 */
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
6076 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
6077 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
6078 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
6079 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
6080 {
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
6081 DWText *textfield = [[[DWText alloc] init] retain];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
6082 [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
6083 [textfield setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6084 if(DWDefaultFont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6085 {
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
6086 [textfield setFont:DWDefaultFont];
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
6087 }
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
6088 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
6089 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6090
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6091 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6092 * 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
6093 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6094 * 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
6095 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6096 * 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
6097 */
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
6098 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
6099 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
6100 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
6101 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
6102 {
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
6103 DWRender *render = [[[DWRender alloc] init] retain];
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
6104 UIContextMenuInteraction *interaction = [[UIContextMenuInteraction alloc] initWithDelegate:render];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6105 [render setTag:cid];
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
6106 [render addInteraction:interaction];
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
6107 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
6108 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6109
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6110 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6111 * 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
6112 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6113 * 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
6114 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6115 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
6116 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
6117 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
6118 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
6119 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6120 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6121 DWRender *render = (DWRender *)handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6122
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
6123 [render setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6124 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6125 }
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 /* 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
6128 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6129 * red: red value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6130 * green: green value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6131 * blue: blue value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6132 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6133 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
6134 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6135 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
6136 UIColor *newcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6137 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6138
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6139 _dw_foreground = _dw_get_color(value);
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6140
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6141 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
6142 DW_GREEN_VALUE(_dw_foreground)/255.0 blue:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6143 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
6144 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
6145 [oldcolor release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6146 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6147 }
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 /* 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
6150 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6151 * red: red value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6152 * green: green value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6153 * blue: blue value.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6154 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6155 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
6156 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6157 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
6158 UIColor *newcolor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6159 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6160
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6161 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
6162 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6163 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
6164 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6165 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6166 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6167 _dw_background = _dw_get_color(value);
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6168
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6169 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
6170 DW_GREEN_VALUE(_dw_background)/255.0 blue:
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
6171 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
6172 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
6173 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6174 [oldcolor release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6175 DW_LOCAL_POOL_OUT;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6178 /* 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
6179 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6180 * value: current color
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6181 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6182 * 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
6183 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6184 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
6185 {
2723
27fd270cb0db iOS: Implement initial color in the color picker dialog.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2718
diff changeset
6186 NSMutableArray *params = [NSMutableArray arrayWithObject:[NSNumber numberWithUnsignedLong:_dw_get_color(value)]];
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6187 unsigned long newcolor = value;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6188
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6189 [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
6190 if([params count] > 1)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6191 newcolor = [[params lastObject] unsignedLongValue];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6192
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
6193 return newcolor;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6194 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6195
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6196 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
6197 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6198 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
6199
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6200 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
6201 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6202 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
6203
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6204 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
6205 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6206 if(context)
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6207 CGContextSetAllowsAntialiasing(context, antialiased);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6208 return context;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6209 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6210
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6211 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
6212 {
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6213 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
6214 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
6215 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
6216 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
6217 return nil;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6218 }
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
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 /* 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
6221 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6222 * 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
6223 * 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
6224 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6225 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6226 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6227 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
6228 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
6229 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
6230 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
6231 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6232 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
6233 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
6234 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
6235
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6236 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6237 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
6238
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6239 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6240 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6241 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
6242 [aPath setLineWidth: 0.5];
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6243 [_dw_fg_color set];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6244
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6245 [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
6246 [aPath stroke];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6247 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6248 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6249 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6250 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6251 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6252
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6253 /* 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
6254 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6255 * 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
6256 * 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
6257 * x1: First X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6258 * y1: First Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6259 * x2: Second X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6260 * y2: Second Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6261 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6262 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
6263 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
6264 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
6265 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
6266 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6267 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
6268 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
6269 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
6270
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6271 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6272 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
6273
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6274 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6275 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6276 UIBezierPath* aPath = [UIBezierPath bezierPath];
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6277 [_dw_fg_color set];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6278
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6279 [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
6280 [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
6281 [aPath stroke];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6282 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6283 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6284 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6285 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6288 /* 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
6289 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6290 * 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
6291 * 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
6292 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6293 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6294 * 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
6295 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6296 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
6297 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
6298 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
6299 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
6300 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6301 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6302 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
6303 DWImage *bi = nil;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6304 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6305 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
6306 id image = handle;
2372
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 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6309 {
2395
2618277de356 iOS: Code error cleanup reported by LLVM.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2393
diff changeset
6310 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
6311 font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6312 render = pixmap->handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6313 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
6314 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6315 font = [render font];
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 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
6319 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6320 render = image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6321 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
6322 bi = [render cachedImage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6323 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6324 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6325 {
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6326 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
6327
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6328 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6329 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
6330
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6331 NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:_dw_fg_color, NSForegroundColorAttributeName, nil];
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6332 if(_dw_bg_color)
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6333 [dict setValue:_dw_bg_color forKey:NSBackgroundColorAttributeName];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6334 if(font)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6335 [dict setValue:font forKey:NSFontAttributeName];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6336 [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
6337 [dict release];
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6338 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6339 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6340 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6341 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6342 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6343
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6344 /* 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
6345 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6346 * 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
6347 * 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
6348 * 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
6349 * 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
6350 * 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
6351 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6352 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
6353 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6354 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6355 NSString *nstr;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6356 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6357 DW_LOCAL_POOL_IN;
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 nstr = [NSString stringWithUTF8String:text];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6360
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6361 /* 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
6362 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6363 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6364 object = pixmap->handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6365 font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6366 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6367 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
6368 /* 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
6369 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
6370 || [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
6371 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6372 font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6373 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6374 /* 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
6375 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6376 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6377 [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
6378 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6379 /* 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
6380 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
6381 [dict release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6382 /* 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
6383 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6384 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6385 *width = size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6386 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6387 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6388 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6389 *height = size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6390 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6391 DW_LOCAL_POOL_OUT;
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 /* 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
6395 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6396 * 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
6397 * 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
6398 * 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
6399 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6400 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6401 * width: Width of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6402 * height: Height of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6403 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6404 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
6405 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
6406 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
6407 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
6408 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6409 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
6410 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
6411 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
6412
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6413 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6414 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
6415
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6416 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6417 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6418 UIBezierPath* aPath = [UIBezierPath bezierPath];
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6419 int z;
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
6420
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6421 [_dw_fg_color set];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6422
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6423 [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
6424 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
6425 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6426 [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
6427 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6428 [aPath closePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6429 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
6430 [aPath fill];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6431 else
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6432 [aPath stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6433 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6434 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6435 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6436 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6437 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6438
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6439 /* 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
6440 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6441 * 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
6442 * 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
6443 * 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
6444 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6445 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6446 * width: Width of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6447 * height: Height of rectangle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6448 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6449 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
6450 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
6451 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
6452 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
6453 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6454 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
6455 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
6456 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
6457
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6458 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6459 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
6460
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6461 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6462 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6463 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
6464
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6465 [_dw_fg_color set];
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 if(flags & DW_DRAW_FILL)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6468 [bp fill];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6469 else
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6470 [bp stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6471 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6472 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6473 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6474 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6475 }
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 /* 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
6478 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6479 * 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
6480 * 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
6481 * 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
6482 * 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
6483 * 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
6484 * 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
6485 * 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
6486 * 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
6487 * 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
6488 * 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
6489 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6490 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
6491 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
6492 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
6493 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
6494 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6495 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
6496 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
6497 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
6498
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6499 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6500 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
6501
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6502 if(bi)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6503 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6504 UIBezierPath* aPath;
2729
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6505
f9df10c66353 iOS: Pass thread specific colors through thread safety macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2726
diff changeset
6506 [_dw_fg_color set];
2372
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 /* 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
6509 if(flags & DW_DRAW_FULL)
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6510 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
6511 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6512 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6513 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
6514 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
6515 double dx = xorigin - x1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6516 double dy = yorigin - y1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6517 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
6518
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6519 /* Prepare to draw */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6520 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
6521 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
6522 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6523 /* 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
6524 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
6525 [aPath fill];
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6526 else
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6527 [aPath stroke];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6528 }
2435
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6529 if(context)
7d6c8b7f41d9 iOS: Implement graphic context pushing and popping during draw.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2434
diff changeset
6530 UIGraphicsPopContext();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6531 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6532 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6533
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6534 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6535 * 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
6536 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6537 * 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
6538 * resource file.
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6539 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6540 * 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
6541 */
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6542 DW_FUNCTION_DEFINITION(dw_tree_new, HWND, ULONG cid)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6543 DW_FUNCTION_ADD_PARAM1(cid)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6544 DW_FUNCTION_RETURN(dw_tree_new, HWND)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6545 DW_FUNCTION_RESTORE_PARAM1(cid, ULONG)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6546 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6547 DW_FUNCTION_INIT;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6548 DWTree *tree = [[[DWTree alloc] init] retain];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6549 [tree setTag:cid];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6550 [tree autorelease];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6551 DW_FUNCTION_RETURN_THIS(tree);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6552 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6553
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 * 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
6556 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6557 * 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
6558 * 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
6559 * 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
6560 * 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
6561 * 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
6562 * 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
6563 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6564 * 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
6565 */
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6566 DW_FUNCTION_DEFINITION(dw_tree_insert_after, HTREEITEM, HWND handle, HTREEITEM item, const char *title, HICN icon, HTREEITEM parent, void *itemdata)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6567 DW_FUNCTION_ADD_PARAM6(handle, item, title, icon, parent, itemdata)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6568 DW_FUNCTION_RETURN(dw_tree_insert_after, HTREEITEM)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6569 DW_FUNCTION_RESTORE_PARAM6(handle, HWND, item, HTREEITEM, title, char *, icon, HICN, parent, HTREEITEM, itemdata, void *)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6570 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6571 DW_FUNCTION_INIT;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6572 DWTree *tree = handle;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6573 DWTreeItem *treeparent = item ? item : parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6574 DWTreeItem *treeitem = [[[DWTreeItem alloc] initWithIcon:icon
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6575 Title:[NSString stringWithUTF8String:(title ? title : "")]
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6576 andData:itemdata] retain];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6577 if(treeparent)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6578 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6579 if(item)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6580 [treeparent insertChildAfter:treeitem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6581 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6582 [treeparent appendChild:treeitem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6583 }
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6584 else
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6585 [tree insertTreeItem:treeitem];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6586 [treeitem autorelease];
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6587 DW_FUNCTION_RETURN_THIS(treeitem);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6588 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6589
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6590 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6591 * 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
6592 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6593 * 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
6594 * 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
6595 * 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
6596 * 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
6597 * 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
6598 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6599 * 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
6600 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6601 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
6602 {
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6603 return dw_tree_insert_after(handle, NULL, title, icon, parent, itemdata);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6604 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6605
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6606 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6607 * 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
6608 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6609 * 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
6610 * 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
6611 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6612 * 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
6613 */
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6614 DW_FUNCTION_DEFINITION(dw_tree_get_title, char *, HWND handle, HTREEITEM item)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6615 DW_FUNCTION_ADD_PARAM2(handle, item)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6616 DW_FUNCTION_RETURN(dw_tree_get_title, char *)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6617 DW_FUNCTION_RESTORE_PARAM2(DW_UNUSED(handle), HWND, item, HTREEITEM)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6618 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6619 DW_FUNCTION_INIT;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6620 char *title = NULL;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6621 DWTreeItem *treeitem = item;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6622 if(treeitem)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6623 title = strdup([treeitem.title UTF8String]);
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6624 DW_FUNCTION_RETURN_THIS(title);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6625 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6626
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6627 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6628 * 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
6629 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6630 * 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
6631 * 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
6632 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6633 * 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
6634 */
2765
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6635 DW_FUNCTION_DEFINITION(dw_tree_get_parent, HTREEITEM, HWND handle, HTREEITEM item)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6636 DW_FUNCTION_ADD_PARAM2(handle, item)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6637 DW_FUNCTION_RETURN(dw_tree_get_parent, HTREEITEM)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6638 DW_FUNCTION_RESTORE_PARAM2(DW_UNUSED(handle), HWND, item, HTREEITEM)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6639 {
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6640 DW_FUNCTION_INIT;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6641 DWTreeItem *treeparent = nil;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6642 DWTreeItem *treeitem = item;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6643 if(treeitem)
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6644 treeparent = treeitem.parent;
f734185664cc iOS: Initial tree view implementation for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2764
diff changeset
6645 DW_FUNCTION_RETURN_THIS(treeparent);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6646 }
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 * 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
6650 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6651 * 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
6652 * 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
6653 * 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
6654 * 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
6655 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6656 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
6657 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6658 /* 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
6659
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6660 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6661
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6662 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6663 * 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
6664 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6665 * 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
6666 * 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
6667 * 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
6668 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6669 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
6670 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6671 /* 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
6672
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6673 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6674
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6675 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6676 * 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
6677 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6678 * 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
6679 * 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
6680 * Returns:
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6681 * 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
6682 */
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6683 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
6684 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6685 /* 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
6686 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6687 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6688
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6689 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6690 * 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
6691 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6692 * 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
6693 * 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
6694 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6695 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
6696 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6697 /* 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
6698 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6701 * 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
6702 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6703 * 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
6704 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6705 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
6706 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6707 /* 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
6708 }
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 * 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
6712 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6713 * 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
6714 * 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
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 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
6717 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6718 /* 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
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 * 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
6723 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6724 * handle: Handle to the tree window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6725 * 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
6726 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6727 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
6728 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6729 /* 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
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 * 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
6734 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6735 * 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
6736 * 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
6737 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6738 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
6739 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
6740 /* 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
6741 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6742
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6743 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6744 * 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
6745 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6746 * 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
6747 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6748 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6749 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
6750 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
6751 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
6752 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
6753 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6754 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6755 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
6756 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
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 * 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
6761 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6762 * 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
6763 * 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
6764 * 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
6765 * 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
6766 * 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
6767 * (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
6768 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6769 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
6770 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
6771 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
6772 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
6773 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6774 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6775 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
6776 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6777
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6778 [cont setup];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6779
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6780 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
6781 {
2387
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
6782 /* 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
6783 * 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
6784 */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6785 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
6786
deb2345f4518 iOS: Implement the UITableViewDataSource protocol so DWContainer doesn't
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2385
diff changeset
6787 [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
6788 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6789 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
6790 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6791
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 * 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
6794 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6795 * 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
6796 * 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
6797 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6798 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
6799 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6800 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
6801
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6802 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
6803 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6804
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6805 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6806 * 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
6807 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6808 * 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
6809 * 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
6810 * 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
6811 * 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
6812 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6813 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
6814 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6815 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
6816 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
6817 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
6818 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6819
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6820 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
6821
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6822 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
6823
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6824 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
6825 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
6826
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6827 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
6828 [cont setFilesystem:YES];
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 if(coltitle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6831 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6832 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
6833 free(coltitle);
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 free(newtitles);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6836 free(newflags);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6837 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6838 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6839
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6840 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6841 * 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
6842 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6843 * 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
6844 * 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
6845 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6846 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
6847 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
6848 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
6849 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
6850 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6851 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6852 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6853 [cont addRows:rowcount];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6854 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
6855 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6856
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6857 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6858 * 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
6859 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6860 * 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
6861 * 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
6862 * 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
6863 * 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
6864 * 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
6865 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6866 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
6867 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
6868 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
6869 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
6870 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6871 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6872 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6873 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
6874 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
6875 int lastadd = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6876
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6877 /* 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
6878 if(pointer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6879 lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6880
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6881 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6882 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6883 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
6884 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6885 icon = *((UIImage **)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6886 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6887 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
6888 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6889 char *str = *((char **)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6890 text = [ NSString stringWithUTF8String:str ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6891 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6892 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6893 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6894 char textbuffer[101] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6895
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6896 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
6897 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6898 ULONG tmp = *((ULONG *)data);
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 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
6901 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6902 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
6903 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6904 struct tm curtm;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6905 CDATE cdate = *((CDATE *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6906
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6907 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
6908 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
6909 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
6910 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
6911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6912 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
6913 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6914 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
6915 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6916 struct tm curtm;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6917 CTIME ctime = *((CTIME *)data);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6918
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6919 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
6920 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
6921 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
6922 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
6923
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6924 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
6925 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6926 if(textbuffer[0])
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6927 text = [ NSString stringWithUTF8String:textbuffer ];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6928 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6931 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
6932
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6933 /* 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
6934 if([object isMemberOfClass:[UITableViewCell class]])
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6935 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6936 UITableViewCell *cell = object;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
6937
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6938 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
6939 [[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
6940 else
2417
ccfc4ee9c4a7 iOS: Missed a few other DWContainer fixes in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2416
diff changeset
6941 [[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
6942 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6943 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
6944 [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
6945 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6946 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6949 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6950 * 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
6951 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6952 * 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
6953 * 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
6954 * 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
6955 * 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
6956 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6957 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
6958 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6959 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
6960 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6961
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6962 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6963 * 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
6964 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6965 * 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
6966 * 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
6967 * 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
6968 * 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
6969 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6970 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
6971 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6972 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
6973 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6974
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6975 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6976 * 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
6977 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6978 * 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
6979 * 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
6980 * 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
6981 * 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
6982 * 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
6983 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6984 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
6985 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6986 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
6987 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6988
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6989 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6990 * 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
6991 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6992 * 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
6993 * 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
6994 * 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
6995 * 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
6996 * 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
6997 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
6998 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
6999 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
7000 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
7001 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
7002 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7003 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7004 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7005 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
7006 int lastadd = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7007
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7008 /* 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
7009 if(pointer)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7010 lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7011
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7012 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
7013
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7014 /* 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
7015 if([object isMemberOfClass:[UITableViewCell class]])
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7016 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7017 UITableViewCell *cell = object;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7018
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7019 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
7020 [[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
7021 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
7022 [[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
7023 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7024 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
7025 [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
7026 [cont setNeedsDisplay];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7027 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7028 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7029
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7030 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7031 * 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
7032 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7033 * 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
7034 * 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
7035 * 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
7036 * 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
7037 * 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
7038 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7039 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
7040 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7041 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
7042 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7043
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7044 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7045 * 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
7046 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7047 * 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
7048 * column: Zero based column.
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 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
7051 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
7052 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
7053 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
7054 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7055 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7056 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7057 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7058 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
7059 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
7060 rc = DW_CFA_BITMAPORICON;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7061 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
7062 rc = DW_CFA_STRING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7063 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
7064 rc = DW_CFA_ULONG;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7065 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
7066 rc = DW_CFA_DATE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7067 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
7068 rc = DW_CFA_TIME;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7069 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7070 rc = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7071 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
7072 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7073
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7074 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7075 * 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
7076 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7077 * 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
7078 * column: Zero based column.
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 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
7081 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7082 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
7083 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7084
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7085 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7086 * 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
7087 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7088 * 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
7089 * 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
7090 * 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
7091 * 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
7092 * 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
7093 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7094 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
7095 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
7096 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
7097 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
7098 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7099 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7100 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7101 [cont setRowBgOdd:oddcolor
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7102 andEven:evencolor];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7103 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7106 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7107 * 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
7108 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7109 * 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
7110 * 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
7111 * 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
7112 */
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7113 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
7114 {
2372
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7118 * 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
7119 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7120 * 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
7121 * 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
7122 * 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
7123 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7124 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
7125 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
7126 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
7127 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
7128 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7129 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7130 DWContainer *cont = pointer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7131 int lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7132 [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
7133 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7134 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7135
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7136
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7137 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7138 * 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
7139 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7140 * 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
7141 * 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
7142 * data: Data pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7143 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7144 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
7145 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
7146 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
7147 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
7148 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7149 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7150 DWContainer *cont = pointer;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7151 int lastadd = [cont lastAddPoint];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7152 [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
7153 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7154 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7155
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7156
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7157 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7158 * 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
7159 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7160 * 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
7161 * 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
7162 * 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
7163 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7164 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
7165 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
7166 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
7167 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
7168 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7169 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7170 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7171 [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
7172 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7173 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7174
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7175 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7176 * 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
7177 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7178 * 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
7179 * 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
7180 * data: Data pointer.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7181 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7182 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
7183 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
7184 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
7185 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
7186 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7187 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7188 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7189 [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
7190 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7191 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7192
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7193 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7194 * 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
7195 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7196 * 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
7197 * 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
7198 * 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
7199 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7200 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
7201 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
7202 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
7203 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
7204 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7205 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7206 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7207 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7208 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7209 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7210
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7211 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7212 * 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
7213 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7214 * 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
7215 * 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
7216 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7217 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
7218 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
7219 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
7220 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
7221 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7222 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7223 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7224 [cont clear];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7225 if(redraw)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7226 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7227 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7228 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7229
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7230 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7231 * 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
7232 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7233 * 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
7234 * 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
7235 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7236 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
7237 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
7238 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
7239 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
7240 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7241 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7242 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7243 int x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7244
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7245 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
7246 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7247 [cont removeRow:0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7248 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7249 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7250 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7251 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7252
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7253 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7254 * 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
7255 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7256 * 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
7257 * 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
7258 * 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
7259 * 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
7260 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
7261 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
7262 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
7263 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
7264 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
7265 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7266 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7267 DWContainer *cont = handle;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
7268 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
7269 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
7270
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7271 /* Safety check */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7272 if(rowcount < 1)
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 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7275 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7276
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7277 switch(direction)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7278 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7279 case DW_SCROLL_TOP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7280 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7281 offset.y = 0;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7282 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7283 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7284 case DW_SCROLL_BOTTOM:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7285 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
7286 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
7287 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7288 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
7289 /* 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
7290 case DW_SCROLL_UP:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7291 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
7292 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
7293 break;
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 case DW_SCROLL_DOWN:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7296 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
7297 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
7298 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7299 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7300 }
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7301 if(offset.y < 0)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7302 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
7303 [cont setContentOffset:offset];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7304 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7305 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7306
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7307 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7308 * 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
7309 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7310 * 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
7311 * 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
7312 * 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
7313 * 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
7314 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7315 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
7316 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
7317 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
7318 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
7319 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7320 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7321 DWContainer *cont = handle;
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7322 NSArray *selected = [cont indexPathsForSelectedRows];
2381
3777ea1cccdb iOS: Continuing conversion...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2380
diff changeset
7323 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
7324 void *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7325
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7326 if(result)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7327 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7328 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
7329 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
7330 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7331 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7332 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
7333 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7334 retval = strdup(temp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7335 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7336 [cont setLastQueryPoint:1];
2372
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 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
7339 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7342 * 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
7343 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7344 * 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
7345 * 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
7346 * 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
7347 * 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
7348 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7349 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
7350 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
7351 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
7352 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
7353 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7354 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7355 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7356 int lastQueryPoint = [cont lastQueryPoint];
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7357 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
7358 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
7359 void *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7360
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7361 if(result)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7362 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7363 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
7364 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
7365 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7366 {
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7367 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
7368 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7369 retval = strdup(temp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7370 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
7371 [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
7372 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7373 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
7374 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7375
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7376 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7377 * 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
7378 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7379 * 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
7380 * 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
7381 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7382 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
7383 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
7384 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
7385 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
7386 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7387 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7388 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7389 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7390 char *thistext;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
7391 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
7392
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7393 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
7394 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7395 thistext = [cont getRowTitle:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7396
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7397 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
7398 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7399 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
7400
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7401 [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
7402 animated:NO
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7403 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7404 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7405 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7406 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7407 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7408 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7409 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7410 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7411
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7412 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7413 * 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
7414 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7415 * 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
7416 * 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
7417 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7418 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
7419 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
7420 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
7421 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
7422 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7423 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7424 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7425 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7426 void *thisdata;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
7427 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
7428
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7429 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
7430 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7431 thisdata = [cont getRowData:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7432
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7433 if(thisdata == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7434 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7435 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
7436
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7437 [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
7438 animated:NO
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
7439 scrollPosition:UITableViewScrollPositionNone];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7440 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7441 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7442 }
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 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7445 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7446 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7447
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7448 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7449 * 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
7450 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7451 * 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
7452 * 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
7453 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7454 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
7455 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
7456 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
7457 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
7458 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7459 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7460 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7461 char *thistext;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
7462 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
7463
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7464 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
7465 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7466 thistext = [cont getRowTitle:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7467
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7468 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
7469 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7470 [cont removeRow:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7471 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7472 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7473 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7474 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7475 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7476 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7477 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7478
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7479 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7480 * 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
7481 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7482 * 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
7483 * data: Data specified.
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_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
7486 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
7487 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
7488 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
7489 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7490 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7491 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7492 void *thisdata;
2388
d84cd4227b21 iOS: Switch to UITableViewDataSource method numberOfRowsInSection:
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2387
diff changeset
7493 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
7494
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7495 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
7496 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7497 thisdata = [cont getRowData:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7498
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7499 if(thisdata == data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7500 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7501 [cont removeRow:x];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7502 [cont reloadData];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7503 x=count;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7504 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7505 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7506 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7507 DW_FUNCTION_RETURN_NOTHING;
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 * 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
7512 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7513 * 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
7514 */
2379
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
7515 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
7516 {
e35887009bb5 iOS: Remove tree functionality, combobox and radio button... include links
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2378
diff changeset
7517 /* 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
7518 }
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 * 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
7522 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7523 * 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
7524 * 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
7525 * 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
7526 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7527 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
7528 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
7529 /* Taskbar unsupported on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7530 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7531
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 * 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
7534 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7535 * 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
7536 * 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
7537 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7538 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
7539 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
7540 /* Taskbar unsupported on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7541 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7542
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7543 /* Internal function to keep HICNs from getting too big */
2705
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7544 UIImage *_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
7545 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7546 if(image)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7547 {
2373
8d6ab1f46a29 iOS: Converting more types and classes to the iOS equivalents.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2372
diff changeset
7548 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
7549 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
7550 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7551 if(size.width > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7552 size.width = 24;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7553 if(size.height > 24)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7554 size.height = 24;
2705
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7555 // Pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7556 // Pass 1.0 to force exact pixel size.
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7557 UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7558 [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7559 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7560 UIGraphicsEndImageContext();
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7561 return newImage;
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7562 }
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7563 }
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7564 return image;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7565 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7566
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7567 /* 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
7568 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
7569 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7570 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7571 NSString *respath = [bundle resourcePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7572 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
7573 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
7574 return image;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7575 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7578 * 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
7579 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7580 * 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
7581 * 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
7582 * 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
7583 * to an embedded XPM.
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 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
7586 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7587 UIImage *image = _dw_icon_load(resid);
2705
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7588 return _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
7589 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7590
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 * 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
7593 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7594 * 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
7595 * 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
7596 * (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
7597 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7598 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
7599 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7600 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
7601
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7602 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
7603 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
7604 if(!image && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7605 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7606 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
7607 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
7608 }
2705
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7609 return _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
7610 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7611
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7612 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7613 * 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
7614 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7615 * 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
7616 * 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
7617 * (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
7618 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7619 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
7620 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7621 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
7622 UIImage *image = [[UIImage alloc] initWithData:thisdata];
2705
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
7623 return _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
7624 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7625
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7626 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7627 * 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
7628 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7629 * 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
7630 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7631 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
7632 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7633 UIImage *image = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7634 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7635 [image release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7636 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7637 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7638
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7639 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7640 * 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
7641 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7642 * 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
7643 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7644 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
7645 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7646 /* 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
7647 * 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
7648 * 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
7649 * similar behavior.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7650 */
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
7651 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
7652 [mdi setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7653 return mdi;
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 * 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
7658 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7659 * 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
7660 * 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
7661 * 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
7662 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7663 * 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
7664 */
2641
608598b9fed9 iOS: UISplitViewController may not be the right way to implement DWSplitBar.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2640
diff changeset
7665 DW_FUNCTION_DEFINITION(dw_splitbar_new, HWND, 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
7666 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
7667 DW_FUNCTION_RETURN(dw_splitbar_new, HWND)
2641
608598b9fed9 iOS: UISplitViewController may not be the right way to implement DWSplitBar.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2640
diff changeset
7668 DW_FUNCTION_RESTORE_PARAM4(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
7669 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7670 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7671 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
7672 DWSplitBar *split = [[DWSplitBar alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7673 dw_box_pack_start(tmpbox, topleft, 0, 0, TRUE, TRUE, 0);
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
7674 [split setTopLeft:tmpbox];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7675 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
7676 dw_box_pack_start(tmpbox, bottomright, 0, 0, TRUE, TRUE, 0);
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
7677 [split setBottomRight:tmpbox];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7678 [split setPercent:50.0];
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
7679 [split setType:type];
2641
608598b9fed9 iOS: UISplitViewController may not be the right way to implement DWSplitBar.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2640
diff changeset
7680 [split setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7681 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
7682 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7683
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7684 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7685 * 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
7686 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7687 * 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
7688 * 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
7689 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7690 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
7691 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
7692 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
7693 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
7694 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7695 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7696 DWSplitBar *split = handle;
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
7697 [split setPercent:percent];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7698 DW_FUNCTION_RETURN_NOTHING;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7701 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7702 * 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
7703 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7704 * 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
7705 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7706 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
7707 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7708 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
7709 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
7710
2646
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
7711 if(split)
42bc7ddd6751 iOS: Reimplement DWSplitBar as a UIView subclass.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2641
diff changeset
7712 retval = [split percent];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7713 return retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7714 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7715
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7716 /* 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
7717 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
7718 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7719 UIFont *font = DWDefaultFont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7720
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7721 if(fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7722 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7723 char *name = strchr(fontname, '.');
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7724
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7725 if(name && (name++))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7726 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7727 UIFontDescriptorSymbolicTraits traits = 0;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7728 UIFontDescriptor* fd;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7729 int size = atoi(fontname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7730 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
7731 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
7732 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
7733 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
7734
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7735 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
7736 strncpy(newname, name, len);
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7737
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7738 if(Bold)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7739 traits |= UIFontDescriptorTraitBold;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7740 if(Italic)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7741 traits |= UIFontDescriptorTraitItalic;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7742
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7743 fd = [UIFontDescriptor
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7744 fontDescriptorWithFontAttributes:@{UIFontDescriptorFamilyAttribute:[NSString stringWithUTF8String:newname],
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7745 UIFontDescriptorTraitsAttribute: @{UIFontSymbolicTrait:[NSNumber numberWithInteger:traits]}}];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7746 NSArray* matches = [fd matchingFontDescriptorsWithMandatoryKeys:
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7747 [NSSet setWithObjects:UIFontDescriptorFamilyAttribute, UIFontDescriptorTraitsAttribute, nil]];
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7748 if(matches.count != 0)
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7749 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
7750 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7751 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7752 return font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7753 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7754
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7755 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7756 * 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
7757 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7758 * 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
7759 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7760 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
7761 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
7762 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
7763 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
7764 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7765 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
7766 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
7767 [bitmap setTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7768 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
7769 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7770
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7771 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7772 * 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
7773 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7774 * 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
7775 * 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
7776 * 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
7777 * 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
7778 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7779 * 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
7780 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7781 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
7782 {
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7783 HPIXMAP pixmap = NULL;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7784
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7785 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
7786 {
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7787 pixmap->width = width;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7788 pixmap->height = height;
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7789 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
7790 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
7791 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7792 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7793 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7794
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7795 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7796 * 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
7797 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7798 * 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
7799 * 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
7800 * 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
7801 * (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
7802 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7803 * 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
7804 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7805 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
7806 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7807 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7808 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7809 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
7810
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7811 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
7812 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7813 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7814 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7815 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7816 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
7817 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
7818 if(!tmpimage && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7819 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7820 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
7821 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
7822 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7823 if(!tmpimage)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7824 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7825 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7826 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7827 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7828 pixmap->width = [tmpimage size].width;
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7829 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
7830 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
7831 pixmap->handle = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7832 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7833 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7834 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7835
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7836 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7837 * 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
7838 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7839 * 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
7840 * 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
7841 * (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
7842 * le: length of data
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7843 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7844 * 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
7845 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7846 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
7847 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7848 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7849 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7850
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7851 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
7852 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7853 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7854 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7855 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7856 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
7857 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
7858 if(!tmpimage)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7859 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7860 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7861 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7862 }
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7863 pixmap->width = [tmpimage size].width;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7864 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
7865 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
7866 pixmap->handle = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7867 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7868 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7869 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7870
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7871 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7872 * 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
7873 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7874 * 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
7875 * dw_pixmap_new..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7876 * color: transparent color
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7877 * 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
7878 * is handled automatically
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7879 */
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
7880 void API dw_pixmap_set_transparent_color(HPIXMAP pixmap, ULONG color)
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
7881 {
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
7882 /* Don't do anything, all images support transparency on iOS */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7883 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7884
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7885 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7886 * 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
7887 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7888 * 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
7889 * 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
7890 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7891 * 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
7892 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7893 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
7894 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7895 HPIXMAP pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7896 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7897
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7898 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
7899 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7900 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7901 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7902 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7903
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7904 NSBundle *bundle = [NSBundle mainBundle];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7905 NSString *respath = [bundle resourcePath];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7906 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
7907 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
7908
2382
41a04e6b3e8e iOS: More conversion... mostly drawing related changes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2381
diff changeset
7909 if(tmpimage)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7910 {
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7911 pixmap->width = [tmpimage size].width;
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
7912 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
7913 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
7914 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
7915 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
7916 return pixmap;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7917 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7918 free(pixmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7919 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7920 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7921 }
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 * 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
7925 * 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
7926 * 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
7927 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7928 * 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
7929 * 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
7930 * 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
7931 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7932 * 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
7933 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7934 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
7935 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7936 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7937 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7938 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
7939
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7940 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7941 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7942 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7943 UIFont *oldfont = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7944 [font retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7945 pixmap->font = font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7946 if(oldfont)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7947 [oldfont release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7948 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7949 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7950 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7951 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7952 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7953 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7954
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7955 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7956 * Destroys an allocated pixmap.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7957 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7958 * 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
7959 * dw_pixmap_new..
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7960 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7961 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
7962 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7963 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7964 {
2434
404d9e9f1f08 iOS: Second attempt at a DWImage class that will actually work....
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2433
diff changeset
7965 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
7966 UIFont *font = pixmap->font;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7967 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7968 [image release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7969 [font release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7970 free(pixmap);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7971 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7972 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7973 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7974
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7975 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7976 * 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
7977 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7978 * dest: Destination window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7979 * 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
7980 * 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
7981 * 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
7982 * 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
7983 * 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
7984 * src: Source window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7985 * 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
7986 * 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
7987 * 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
7988 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7989 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
7990 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7991 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
7992 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7993
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7994 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7995 * 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
7996 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7997 * dest: Destination window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
7998 * 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
7999 * 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
8000 * 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
8001 * 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
8002 * 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
8003 * src: Source window handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8004 * 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
8005 * 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
8006 * 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
8007 * 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
8008 * 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
8009 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8010 * 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
8011 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8012 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
8013 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8014 DWBitBlt *bltinfo;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8015 NSValue* bi;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8016 DW_LOCAL_POOL_IN;
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 /* Sanity checks */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8019 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
8020 ((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
8021 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8022 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8023 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8024 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8025
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8026 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
8027 bi = [NSValue valueWithPointer:bltinfo];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8028
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8029 /* Fill in the information */
2436
ab36fbb50fe5 iOS: Fixes to get cachedImage functionality working.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2435
diff changeset
8030 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
8031 bltinfo->src = src;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8032 bltinfo->xdest = xdest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8033 bltinfo->ydest = ydest;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8034 bltinfo->width = width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8035 bltinfo->height = height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8036 bltinfo->xsrc = xsrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8037 bltinfo->ysrc = ysrc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8038 bltinfo->srcwidth = srcwidth;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8039 bltinfo->srcheight = srcheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8040
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8041 if(srcp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8042 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8043 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
8044 [object retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8045 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8046 [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
8047 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8048 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8049 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8050
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8051 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8052 * 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
8053 * 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
8054 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8055 * 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
8056 * 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
8057 */
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
8058 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
8059 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
8060 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
8061 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
8062 {
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
8063 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
8064 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
8065 [calendar setPreferredDatePickerStyle:UIDatePickerStyleInline];
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
8066 } else {
1d2f5c4eccc5 iOS: Implement keyboard handling for iOS 13.4 and later.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2577
diff changeset
8067 // 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
8068 // 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
8069 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8070 [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
8071 [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
8072 [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
8073 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
8074 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8075
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8076 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8077 * 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
8078 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8079 * 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
8080 * year...
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8081 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8082 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
8083 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
8084 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
8085 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
8086 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8087 DWCalendar *calendar = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8088 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
8089 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
8090
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8091 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
8092
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8093 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
8094 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
8095
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8096 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
8097 [calendar setDate:date];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8098 [date release];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8099 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
8100 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8101
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8102 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8103 * 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
8104 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8105 * 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
8106 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8107 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
8108 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
8109 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
8110 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
8111 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8112 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
8113 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
8114 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
8115 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
8116 *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
8117 *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
8118 *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
8119 [mycalendar release];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
8120 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
8121 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8124 * 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
8125 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8126 * 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
8127 * 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
8128 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
8129 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
8130 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
8131 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
8132 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
8133 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8134 DWWebView *html = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8135 switch(action)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8136 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8137 case DW_HTML_GOBACK:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8138 [html goBack];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8139 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8140 case DW_HTML_GOFORWARD:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8141 [html goForward];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8142 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8143 case DW_HTML_GOHOME:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8144 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
8145 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8146 case DW_HTML_SEARCH:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8147 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8148 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
8149 [html reload];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8150 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8151 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
8152 [html stopLoading];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8153 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8154 case DW_HTML_PRINT:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8155 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8156 }
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
8157 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
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 * 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
8162 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8163 * 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
8164 * 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
8165 * be rendered.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8166 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8167 * 0 on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8168 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
8169 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
8170 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
8171 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
8172 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
8173 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8174 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
8175 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
8176 [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
8177 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
8178 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8179
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8180 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8181 * 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
8182 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8183 * 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
8184 * 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
8185 * 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
8186 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8187 * 0 on success.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8188 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
8189 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
8190 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
8191 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
8192 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
8193 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8194 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
8195 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
8196 [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
8197 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
8198 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8199
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8200 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8201 * 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
8202 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8203 * 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
8204 * 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
8205 * 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
8206 * 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
8207 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8208 * 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
8209 */
2404
d4a044d24529 iOS: Fix crashes with full dwtest run. More thread safety.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2402
diff changeset
8210 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
8211 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
8212 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
8213 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
8214 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8215 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
8216 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
8217 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8218
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8219 [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
8220 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8221 void *params[2] = { result, scriptdata };
2622
07c504257e42 iOS: Switch to using internal event message constants.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2616
diff changeset
8222 _dw_event_handler(html, (id)params, _DW_EVENT_HTML_RESULT);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8223 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8224 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
8225 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
8226 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8227
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8228 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8229 * 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
8230 * 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
8231 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8232 * 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
8233 * 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
8234 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8235 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
8236 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
8237 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
8238 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
8239 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8240 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
8241 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
8242 web.navigationDelegate = web;
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8243 [web setTag:cid];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8244 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
8245 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8246
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8247 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8248 * 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
8249 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8250 * 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
8251 * 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
8252 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8253 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
8254 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8255 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8256 {
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
8257 *x = (long)_dw_event_point.x;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8258 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8259 if(y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8260 {
2606
6c30fcc79402 iOS: Implement context menus on DWRender widgets.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2605
diff changeset
8261 *y = (long)_dw_event_point.y;
2372
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8265 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8266 * 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
8267 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8268 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8269 * y: Y coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8270 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8271 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
8272 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8273 /* 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
8274 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8275
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8276 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8277 * 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
8278 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8279 * 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
8280 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8281 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8282 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
8283 {
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8284 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
8285 return menu;
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
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 * 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
8290 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8291 * 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
8292 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8293 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
8294 {
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
8295 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
8296 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
8297
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
8298 [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
8299 return menu;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8300 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8301
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 * 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
8304 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8305 * 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
8306 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8307 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
8308 {
2615
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8309 if(menu)
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8310 {
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8311 DWMenu *thismenu = *menu;
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8312 DW_LOCAL_POOL_IN;
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8313 [thismenu release];
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8314 DW_LOCAL_POOL_OUT;
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8315 *menu = NULL;
ac51cbdcfbe5 dw_menu_destroy() should zero out the handle passed, GTK does this already.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2612
diff changeset
8316 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8317 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8318
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8319 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8320 * 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
8321 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8322 * 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
8323 * 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
8324 * x: X coordinate.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8325 * y: Y coordinate.
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 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
8328 {
2616
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8329 if(menu)
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8330 {
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8331 DWMenu *thismenu = (DWMenu *)*menu;
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8332 id object = parent;
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8333 DWWindow *window = [object isMemberOfClass:[DWWindow class]] ? object : (DWWindow *)[object window];
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8334 [window setPopupMenu:thismenu];
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8335 *menu = nil;
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8336 }
2372
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
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
8339 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
8340 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8341 int z, cur=0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8342 char accel = '\0';
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 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
8345 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8346 if(src[z] != '~')
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 dest[cur] = src[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8349 cur++;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8350 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8351 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8352 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8353 accel = src[z+1];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8354 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8355 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8356 dest[cur] = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8357 return accel;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8358 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8359
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8360 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8361 * 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
8362 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8363 * 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
8364 * 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
8365 * 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
8366 * 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
8367 * 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
8368 * 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
8369 * 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
8370 * 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
8371 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8372 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
8373 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8374 DWMenu *menu = menux;
2604
4671ac4ad3c6 iOS: Had to switch from UIKeyCommand to UIAction for DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2603
diff changeset
8375 __block DWMenuItem *item = nil;
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8376 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
8377 [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
8378 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8379 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8380 char accel[2];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8381 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
8382 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
8383
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
8384 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
8385 accel[1] = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8386
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8387 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
8388 free(newtitle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8389
2616
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8390 item = [DWMenuItem actionWithTitle:nstr image:nil identifier:nil
2604
4671ac4ad3c6 iOS: Had to switch from UIKeyCommand to UIAction for DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2603
diff changeset
8391 handler:^(__kindof UIAction * _Nonnull action) {
4671ac4ad3c6 iOS: Had to switch from UIKeyCommand to UIAction for DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2603
diff changeset
8392 [DWObj menuHandler:item];
2616
a256caa5034c iOS: Fix a context menu related crash by removing autorelease from DWMenuItem.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2615
diff changeset
8393 }];
2602
cc5013e626f7 iOS: Code cleanup, make sure menu items are enabled on creation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2601
diff changeset
8394 /* Don't set the tag if the ID is 0 or -1 */
2601
3201f9e9067b iOS: Actually implement disabled menu items using UIMenuElementAttributesDisabled.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2600
diff changeset
8395 if(itemid != DW_MENU_AUTO && itemid != DW_MENU_POPUP)
3201f9e9067b iOS: Actually implement disabled menu items using UIMenuElementAttributesDisabled.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2600
diff changeset
8396 [item setTag:itemid];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8397 [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
8398
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8399 if(check)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8400 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8401 [item setCheck:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8402 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
8403 [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
8404 }
2602
cc5013e626f7 iOS: Code cleanup, make sure menu items are enabled on creation.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2601
diff changeset
8405 [item setEnabled:(flags & DW_MIS_DISABLED ? NO : YES)];
2463
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8406
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8407 if(submenux)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8408 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8409 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
8410
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8411 [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
8412 [item setSubmenu:submenu];
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
8413 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8414 return item;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8415 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8416 return item;
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8420 * 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
8421 * 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
8422 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8423 * 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
8424 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8425 * 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
8426 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8427 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
8428 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8429 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
8430 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
8431
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8432 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8433 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8434 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
8435 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8436 else
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8437 [menuitem setState:UIMenuElementStateOff];
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8440
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8441 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8442 * 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
8443 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8444 * 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
8445 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8446 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8447 * 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
8448 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8449 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
8450 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8451 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
8452 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
8453
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8454 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8455 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8456 [menu removeItem:menuitem];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8457 return DW_ERROR_NONE;
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 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8460 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8463 * 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
8464 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8465 * 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
8466 * id: Menuitem id.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8467 * 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
8468 * 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
8469 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8470 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
8471 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8472 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
8473 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
8474
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8475 if(menuitem != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8476 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8477 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
8478 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8479 [menuitem setState:UIMenuElementStateOn];
2372
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 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
8482 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8483 [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
8484 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8485 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
8486 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8487 [menuitem setEnabled:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8488 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8489 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
8490 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8491 [menuitem setEnabled:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8492 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8493 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8496 /* Gets the notebook page from associated ID */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
8497 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
8498 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8499 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
8500 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
8501 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8502 if([notepage pageid] == pageid)
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 return notepage;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8505 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8506 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8507 return nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8508 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8509
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8510 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8511 * 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
8512 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8513 * 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
8514 * resource file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8515 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
8516 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
8517 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
8518 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
8519 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
8520 {
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
8521 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
8522 [[notebook tabs] addTarget:notebook
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8523 action:@selector(pageChanged:)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8524 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
8525 [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
8526 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
8527 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8528
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8529 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8530 * 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
8531 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8532 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8533 * 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
8534 * 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
8535 */
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
8536 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
8537 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
8538 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
8539 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
8540 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8541 DWNotebook *notebook = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8542 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
8543 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
8544 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
8545 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
8546
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8547 [notepage setPageid:(int)page];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8548 if(front)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8549 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8550 [[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
8551 [views addObject:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8552 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8553 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8554 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8555 [[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
8556 [views addObject:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8557 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8558 [notebook addSubview:notepage];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8559 [notepage autorelease];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8560 [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
8561
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8562 if([views count] != 1)
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8563 {
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8564 /* Otherwise hide the page */
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8565 [notepage setHidden:YES];
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8566 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8567
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
8568 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
8569 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
8570 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8571
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8572 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8573 * 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
8574 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8575 * 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
8576 * 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
8577 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8578 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
8579 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
8580 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
8581 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
8582 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8583 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
8584 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
8585 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8586
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8587 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8588 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8589 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
8590 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
8591
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8592 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
8593 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8594 [[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
8595 [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
8596 [views removeObject:notepage];
2693
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8597 index--;
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8598 if(index >= 0 && index < [views count])
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8599 [[notebook tabs] setSelectedSegmentIndex:index];
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8600 else if([views count] > 0)
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8601 [[notebook tabs] setSelectedSegmentIndex:0];
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8602 [notebook pageChanged:nil];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8603 [notepage release];
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8604 }
2372
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_LOCAL_POOL_OUT;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8607 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
8608 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8609
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8610 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8611 * 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
8612 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8613 * 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
8614 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8615 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
8616 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
8617 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
8618 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
8619 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8620 DWNotebook *notebook = handle;
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8621 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
8622 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
8623
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
8624 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
8625 {
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
8626 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
8627 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
8628
8727ad1a19c3 iOS: Fix notebook relayout on rotation. Also fix autosizing of controls.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2412
diff changeset
8629 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
8630 }
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8631 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
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 * 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
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 notebook widget.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8638 * 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
8639 */
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
8640 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
8641 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
8642 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
8643 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
8644 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8645 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
8646 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
8647
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8648 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8649 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8650 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
8651 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
8652
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
8653 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
8654 {
65ff339e9cd2 iOS: A number of fixes, notebook layout select first page if none selected.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2417
diff changeset
8655 [[notebook tabs] setSelectedSegmentIndex:index];
2693
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8656 [notebook pageChanged:nil];
2409
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
8657 }
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
8658 }
2ab3e88e5d68 iOS: Implement dw_notebook_page_set(). Fix statusbar offset location.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2408
diff changeset
8659 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
8660 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8661
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8662 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8663 * 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
8664 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8665 * handle: Notebook handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8666 * 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
8667 * 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
8668 */
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
8669 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
8670 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
8671 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
8672 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
8673 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8674 DWNotebook *notebook = handle;
2693
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8675 DWNotebookPage *notepage = _dw_notepage_from_id(notebook, pageid);
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8676
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8677 if(notepage != nil)
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8678 {
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8679 NSMutableArray<DWNotebookPage *> *views = [notebook views];
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8680 NSUInteger index = [views indexOfObject:notepage];
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8681
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8682 if(index != -1)
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8683 [[notebook tabs] setTitle:[NSString stringWithUTF8String:text] forSegmentAtIndex:index];
0dac724f890f iOS: Fixes for notebook pages. Wasn't always using the pageID.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2680
diff changeset
8684 }
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
8685 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
8686 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8687
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 * 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
8690 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8691 * handle: Notebook handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8692 * 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
8693 * 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
8694 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8695 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
8696 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
8697 /* Not supported here... do nothing */
2372
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8700 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8701 * 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
8702 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8703 * 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
8704 * 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
8705 * 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
8706 */
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8707 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
8708 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
8709 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
8710 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
8711 {
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8712 DWNotebook *notebook = handle;
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
8713 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
8714
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8715 if(notepage != nil)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8716 {
2408
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8717 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
8718 }
795056df9efd iOS: Initial functional implmentation of the notebook/tabbed control.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2407
diff changeset
8719 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
8720 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8721
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8722 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8723 * 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
8724 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8725 * 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
8726 * title: The Window title.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8727 * 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
8728 */
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
8729 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
8730 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
8731 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
8732 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
8733 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8734 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
8735 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
8736 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
8737 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
8738 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
8739
2599
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
8740 /* 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
8741 if(style != UIUserInterfaceStyleUnspecified)
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
8742 [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
8743 [window setWindowLevel:UIWindowLevelNormal];
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8744 [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
8745 [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
8746 [[[window rootViewController] view] addSubview:view];
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8747 [_dw_toplevel_windows addObject:window];
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8748
2598
4a5364fe65b7 iOS: Add some code to include DWViewController in the UIResponder chain.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2593
diff changeset
8749 /* 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
8750 * 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
8751 */
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8752 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
8753 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
8754 [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
8755 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
8756 {
2570
2c2941e01b67 iOS: Slight refactoring to handle the possibility that the status bar
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2569
diff changeset
8757 NSInteger sbheight = [[[window windowScene] statusBarManager] statusBarFrame].size.height;
2674
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8758 CGRect navrect = CGRectMake(0, sbheight, screenrect.size.width, 44);
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8759 UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:navrect];
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
8760 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
8761
2674
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8762 /* Double check the intrinsic height... */
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8763 CGSize navdefault = [navbar intrinsicContentSize];
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8764 if(navdefault.height != navrect.size.height)
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8765 {
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8766 navrect.size.height = navdefault.height;
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8767 navbar.frame = navrect;
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8768 }
dd0b29320a3d iOS: Use the claimed default value for the navigation bar of 44 points.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2673
diff changeset
8769
2673
a39e2ea6fa14 iOS: Only add the "Back" button to the Navigation Bar if the window has the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2649
diff changeset
8770 /* We maintain a list of top-level windows...If there is more than one window,
a39e2ea6fa14 iOS: Only add the "Back" button to the Navigation Bar if the window has the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2649
diff changeset
8771 * and our window has the close button style, add a Back button that will close it.
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8772 */
2673
a39e2ea6fa14 iOS: Only add the "Back" button to the Navigation Bar if the window has the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2649
diff changeset
8773 if([_dw_toplevel_windows count] > 1 && flStyle & DW_FCF_CLOSEBUTTON)
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8774 {
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8775 UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back"
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8776 style:UIBarButtonItemStylePlain
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8777 target:window
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8778 action:@selector(closeWindow:)];
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8779
2639
0be4b2e21885 iOS: Fix display of the Back button... closing the window seems to cause
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2638
diff changeset
8780 navItem.leftBarButtonItem = back;
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
8781 }
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
8782 [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
8783 [[[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
8784 }
32728f6f7ccd iOS: Add UINavigationBar and DWView to the rootViewController's view.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2598
diff changeset
8785 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8786 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
8787 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8788
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8789 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8790 * 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
8791 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8792 * 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
8793 * 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
8794 * 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
8795 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8796 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
8797 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8798 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
8799 NSValue *v;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8800 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8801 v = [NSValue valueWithPointer:params];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8802 params[0] = function;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8803 params[1] = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8804 [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
8805 free(params);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8806 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8807 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8808
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 * 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
8812 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8813 * 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
8814 * 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
8815 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8816 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
8817 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8818 /* 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
8819 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8820
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8821 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8822 * Makes the window visible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8823 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8824 * 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
8825 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8826 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
8827 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
8828 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
8829 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
8830 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8831 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
8832 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
8833
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
8834 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
8835 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8836 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
8837 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
8838
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8839 /* 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
8840 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
8841 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8842 /* Determine the contents size */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8843 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
8844 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8845 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
8846 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
8847 [window makeKeyAndVisible];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8848 [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
8849 }
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8850 else
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
8851 [window setHidden:NO];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8852 }
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8853 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
8854 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8855
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8856 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8857 * Makes the window invisible.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8858 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8859 * 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
8860 */
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8861 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
8862 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
8863 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
8864 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
8865 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8866 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
8867 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
8868
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8869 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
8870 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8871 UIWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8872
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8873 [window setHidden:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8874 }
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
8875 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8879 * 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
8880 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8881 * 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
8882 * 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
8883 * 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
8884 */
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
8885 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
8886 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
8887 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
8888 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
8889 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8890 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
8891 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
8892 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
8893 UIColor *fg = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8894 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
8895 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
8896
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8897 /* 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
8898 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
8899 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8900 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
8901 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8902 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
8903 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8904 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
8905 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8906
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8907 /* 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
8908 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
8909 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8910 object = [object textfield];
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 /* 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
8913 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
8914 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8915 [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
8916 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8917 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
8918 {
2385
a126b04b9996 iOS: dwcompat now builds on iOS as well... Fixes for running dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2384
diff changeset
8919 [[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
8920 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8921 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
8922 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8923 [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
8924 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8925 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
8926 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8927 DWBox *box = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8928
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
8929 [box setBackgroundColor:bg];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8930 }
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8931 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
8932 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8933 DWContainer *cont = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8934
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8935 [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
8936 [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
8937 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8938 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
8939 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8940 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
8941 [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
8942 [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
8943 }
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
8944 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
8945 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8946
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8947 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8948 * 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
8949 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8950 * 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
8951 * 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
8952 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8953 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
8954 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
8955 /* No overlapping windows on iOS, unsupported */
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
8956 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
8957 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8958
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8959 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8960 * 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
8961 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8962 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8963 * 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
8964 * 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
8965 */
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
8966 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
8967 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
8968 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
8969 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
8970 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
8971 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
8972
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
8973 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
8974 {
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
8975 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
8976
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
8977 [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
8978 if(mask & DW_DT_VCENTER)
2705
ddcbed595a84 iOS: Implement HICN resizing and text/label vertical centering.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2704
diff changeset
8979 [label setBaselineAdjustment:(style & DW_DT_VCENTER ? UIBaselineAdjustmentAlignCenters : UIBaselineAdjustmentNone)];
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
8980 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
8981 {
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
8982 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
8983 [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
8984 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
8985 [label setLineBreakMode:NSLineBreakByTruncatingTail];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8986 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8987 }
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8988 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
8989 {
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8990 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
8991 [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
8992 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8993 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
8994 {
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
8995 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
8996
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8997 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
8998 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
8999 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
9000 [menuitem setState:UIMenuElementStateOn];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9001 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
9002 [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
9003 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9004 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
9005 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9006 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
9007 [menuitem setEnabled:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9008 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
9009 [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
9010 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9011 }
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
9012 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
9013 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9016 * 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
9017 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9018 * 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
9019 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9020 * 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
9021 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
9022 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
9023 DW_FUNCTION_ADD_PARAM1(handle)
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
9024 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
9025 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
9026 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9027 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9028
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
9029 [object becomeFirstResponder];
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
9030 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
9031 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9032
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9033 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9034 * 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
9035 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9036 * 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
9037 * 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
9038 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9039 * 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
9040 */
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
9041 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
9042 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
9043 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
9044 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
9045 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9046 DWWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9047 id object = defaultitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9048
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9049 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
9050 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
9051 [object becomeFirstResponder];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9052 }
2400
5e454dfab0db iOS: More thread safety, remove some debug code.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2399
diff changeset
9053 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
9054 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9057 * 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
9058 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9059 * 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
9060 * 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
9061 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9062 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
9063 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
9064 /* 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
9065 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9066
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 * 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
9069 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9070 * 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
9071 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9072 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
9073 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9074 /* 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
9075 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9076
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9077 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9078 * Releases previous mouse capture.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9079 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9080 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
9081 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9082 /* 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
9083 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9084
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9085 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9086 * 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
9087 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9088 * 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
9089 * 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
9090 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9091 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
9092 {
2383
a410d42d9e36 iOS: Implement classes for encapsulating immutable UIImage and UIMenu so the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2382
diff changeset
9093 /* 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
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 /* 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
9097 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9098 * currfont: current font
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 * 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
9101 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9102 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
9103 {
2414
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9104 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
9105 char *font = NULL;
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9106
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9107 [params addPointer:(void *)currfont];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9108 [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
9109 if([params count] > 1)
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9110 font = [params pointerAtIndex:1];
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9111
5e5fab842901 iOS: Implement dw_font_choose() and dw_color_choose().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2413
diff changeset
9112 return font;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9113 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9114
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9115 /* 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
9116 * 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
9117 */
2391
a7bfb97fd80e iOS: Switch to using UIApplicationMain() in dw_main().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2390
diff changeset
9118 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
9119 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9120 /* 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
9121 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
9122 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9123 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
9124
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
9125 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
9126 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9127 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9128 Item *thisitem = thisbox->items;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9129 int z;
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 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
9132 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9133 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
9134 return &thisitem[z];
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9137 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9138 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9139 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9140
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9141 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9142 * 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
9143 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9144 * 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
9145 * 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
9146 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9147 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
9148 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9149 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
9150 (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
9151
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9152 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9153 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
9154 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
9155 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
9156 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9157 DWMLE *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9158
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9159 [mle setFont:font];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9160 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9161 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
9162 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9163 [object setFont:font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9164 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9165 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
9166 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9167 DWRender *render = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9168
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9169 [render setFont:font];
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9172 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9173 /* 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
9174 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
9175
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9176 /* Check to see if any of the sizes need to be recalculated */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9177 if(item && (item->origwidth == DW_SIZE_AUTO || item->origheight == DW_SIZE_AUTO))
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9178 {
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9179 _dw_control_size(handle, item->origwidth == DW_SIZE_AUTO ? &item->width : NULL, item->origheight == DW_SIZE_AUTO ? &item->height : NULL);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9180 /* 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
9181 _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
9182 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9183 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9184 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9185 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9186 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9189 * 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
9190 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9191 * 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
9192 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9193 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
9194 {
2416
353581ebf4a5 iOS: Fix display of widgets. DWMLE and DWContainer are subclasses of UIScrollView.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2415
diff changeset
9195 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
9196 UIFont *font = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9197
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
9198 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
9199 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9200 font = [object font];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9201 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9202 if(font)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9203 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9204 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
9205 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
9206 return strdup([output UTF8String]);
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 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9209 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9210
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 * 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
9213 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9214 * 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
9215 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9216 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
9217 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
9218 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
9219 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
9220 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9221 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9222 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9223 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9224 int retval = 0;
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 /* Handle destroying a top-level window */
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
9227 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
9228 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9229 DWWindow *window = handle;
2640
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9230 [window setHidden:YES];
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
9231 [_dw_toplevel_windows removeObject:window];
2640
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9232 [[[window rootViewController] view] removeFromSuperview];
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9233 [window setRootViewController:nil];
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9234 /* Releasing the window is causing crashes....
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9235 * TODO: Figure out if this is needed... or why it is crashing.
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9236 * [window release];
cee87daaf150 iOS: New method of removing DWWindow from the hierarchy.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2639
diff changeset
9237 */
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9238 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9239 /* 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
9240 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
9241 {
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
9242 DWMenuItem *item = object;
79c7bf492bc1 iOS: Attempt to get context menus working for iOS 13+.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2459
diff changeset
9243 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
9244
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9245 [menu removeItem:object];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9246 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9247 /* 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
9248 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
9249 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9250 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
9251
2377
6393d8c10569 iOS: More progress on converting Mac to iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2373
diff changeset
9252 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
9253 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9254 id window = [object window];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9255 Box *thisbox = [parent box];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9256 int z, index = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9257 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
9258
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9259 if(!thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9260 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9261
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9262 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
9263 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9264 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
9265 index = z;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9266 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9267
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9268 if(index != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9269 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9270 [object removeFromSuperview];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9271
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9272 if(thisbox->count > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9273 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9274 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
9275
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9276 /* 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
9277 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
9278 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9279 tmpitem[z] = thisitem[z];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9280 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9281 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
9282 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9283 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
9284 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9285 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9286
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9287 thisbox->items = tmpitem;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9288 if(thisitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9289 free(thisitem);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9290 if(tmpitem)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9291 thisbox->count--;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9292 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9293 thisbox->count = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9294
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9295 /* 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
9296 _dw_redraw(window, TRUE);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9297 }
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 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9301 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
9302 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9305 * 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
9306 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9307 * 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
9308 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9309 * 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
9310 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9311 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
9312 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
9313 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
9314 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
9315 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9316 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
9317 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
9318 id control = handle;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9319 char *retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9320
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
9321 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
9322 {
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
9323 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
9324
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
9325 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
9326 }
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
9327 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
9328 {
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9329 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
9330
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9331 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
9332 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9333 #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
9334 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
9335 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9336 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
9337 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
9338
2425
60a459df758d iOS: Account for the special area at the bottom of certain devies.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2424
diff changeset
9339 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
9340 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
9341 }
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9342 #endif
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9343 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
9344 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9345
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9346 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9347 * 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
9348 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9349 * 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
9350 * 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
9351 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9352 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
9353 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
9354 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
9355 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
9356 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9357 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
9358 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
9359 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
9360 Item *item = NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9361
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
9362 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
9363 {
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
9364 [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
9365 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
9366 }
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
9367 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
9368 {
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9369 [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
9370 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
9371 }
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
9372 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
9373 {
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
9374 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
9375 NSArray *array = [window subviews];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
9376 NSString *nstr = [NSString stringWithUTF8String:text];
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
9377
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
9378 [window setLargeContentTitle:nstr];
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
9379
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
9380 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
9381 {
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
9382 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
9383 {
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
9384 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
9385 UINavigationItem *item = [[nav items] firstObject];
2591
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
9386
f3d423cdbc2e iOS: Collection of various fixes...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2589
diff changeset
9387 [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
9388 }
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
9389 }
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
9390 }
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9391 #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
9392 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
9393 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9394 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
9395 [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
9396 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
9397 }
2427
4f078d24fe83 iOS: Correct _dw_text_handle() behavior. Add UILabel/UITextView to controls
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2426
diff changeset
9398 #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
9399 /* 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
9400 * 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
9401 */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9402 if(item && (item->origwidth == DW_SIZE_AUTO || item->origheight == DW_SIZE_AUTO))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9403 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9404 int newwidth, newheight;
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 _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
9407
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9408 /* Only update the item and redraw the window if it changed */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9409 if((item->origwidth == DW_SIZE_AUTO && item->width != newwidth) ||
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9410 (item->origheight == DW_SIZE_AUTO && item->height != newheight))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9411 {
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9412 if(item->origwidth == DW_SIZE_AUTO)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9413 item->width = newwidth;
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9414 if(item->origheight == DW_SIZE_AUTO)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9415 item->height = newheight;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9416 /* 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
9417 _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
9418 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9419 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9420 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9421 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9422
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9423 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9424 * 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
9425 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9426 * 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
9427 * 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
9428 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9429 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
9430 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9431 /* 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
9432 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9433
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 * Disables given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9436 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9437 * 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
9438 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9439 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
9440 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
9441 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
9442 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
9443 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9444 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9445 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9446
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9447 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
9448 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9449 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
9450 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
9451 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9452 }
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
9453 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
9454 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9455 [object setEnabled:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9456 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9457 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
9458 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9459 UITextView *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9460
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9461 [mle setEditable:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9462 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9463 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9464 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9467 * Enables given window (widget).
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9468 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9469 * 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
9470 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9471 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
9472 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
9473 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
9474 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
9475 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9476 DW_FUNCTION_INIT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9477 id object = handle;
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 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
9480 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9481 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
9482 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
9483 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9484 }
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
9485 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
9486 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9487 [object setEnabled:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9488 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9489 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
9490 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9491 UITextView *mle = object;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9492
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9493 [mle setEditable:YES];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9494 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9495 DW_FUNCTION_RETURN_NOTHING;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9496 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9499 * 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
9500 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9501 * 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
9502 * 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
9503 * (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
9504 * 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
9505 * 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
9506 * 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
9507 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9508 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
9509 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9510 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9511
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
9512 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
9513 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9514 if(data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9515 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9516 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9517 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
9518 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
9519
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9520 if(pixmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9521 {
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
9522 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
9523 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
9524 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
9525 [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
9526 }
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
9527 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
9528 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
9529 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
9530 [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
9531 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9532 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9533 /* 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
9534 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
9535
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9536 /* Check to see if any of the sizes need to be recalculated */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9537 if(item && (item->origwidth == DW_SIZE_AUTO || item->origheight == DW_SIZE_AUTO))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9538 {
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9539 _dw_control_size(handle, item->origwidth == DW_SIZE_AUTO ? &item->width : NULL, item->origheight == DW_SIZE_AUTO ? &item->height : NULL);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9540 /* 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
9541 _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
9542 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9543 DW_LOCAL_POOL_OUT;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9546 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
9547 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9548 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9549
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9550 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9551 * 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
9552 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9553 * 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
9554 * 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
9555 * (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
9556 * 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
9557 * 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
9558 * 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
9559 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9560 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
9561 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9562 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9563 DW_LOCAL_POOL_IN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9564
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
9565 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
9566 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9567 UIImage *bitmap = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9568
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9569 if(filename)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9570 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9571 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
9572 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
9573
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9574 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
9575
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9576 if(!bitmap && ext)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9577 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9578 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
9579 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
9580 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9581 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9582 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
9583 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9584 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
9585 }
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 if(bitmap)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9588 {
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
9589 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
9590 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
9591 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
9592 [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
9593 }
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
9594 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
9595 {
2c03987c95bd iOS: Fix dw_window_set_bitmap*() on buttons... uses a different method on
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2449
diff changeset
9596 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
9597 [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
9598 }
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 /* 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
9601 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
9602
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9603 /* Check to see if any of the sizes need to be recalculated */
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9604 if(item && (item->origwidth == DW_SIZE_AUTO || item->origheight == DW_SIZE_AUTO))
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9605 {
2740
9be24001d288 Style update. Add DW_SIZE_AUTO (-1) for passing automatic sizing to packing.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2739
diff changeset
9606 _dw_control_size(handle, item->origwidth == DW_SIZE_AUTO ? &item->width : NULL, item->origheight == DW_SIZE_AUTO ? &item->height : NULL);
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9607 /* 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
9608 _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
9609 }
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9612 DW_LOCAL_POOL_OUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9613 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9614
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9615 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9616 * 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
9617 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9618 * 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
9619 * 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
9620 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9621 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
9622 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9623 /* 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
9624 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9627 * 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
9628 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9629 * 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
9630 * 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
9631 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9632 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
9633 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9634 NSObject *object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9635 UIView *view = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9636 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
9637 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9638 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
9639 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
9640 view = [subviews firstObject];
2372
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 return [view viewWithTag:cid];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9643 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9646 * 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
9647 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9648 * 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
9649 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9650 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
9651 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9652 /* TODO: Not sure if we should do anything here on iOS */
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9653 return DW_ERROR_GENERAL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9654 }
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 /* 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
9657 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9658 * 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
9659 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9660 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
9661 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9662 DWWindow *window = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9663 [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
9664 [window setShown:YES];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9665 [window setRedraw:NO];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9666 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9667
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9668 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9669 * Makes the window topmost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9670 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9671 * 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
9672 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9673 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
9674 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9675 /* TODO: Not sure if we should do anything here on iOS */
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9676 return DW_ERROR_GENERAL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9677 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9678
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 * Makes the window bottommost.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9681 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9682 * 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
9683 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9684 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
9685 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9686 /* TODO: Not sure if we should do anything here on iOS */
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9687 return DW_ERROR_GENERAL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9688 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9689
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9690 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9691 * 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
9692 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9693 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9694 * 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
9695 * 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
9696 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9697 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
9698 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9699 /* 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
9700 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9701
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9702 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9703 * 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
9704 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9705 * 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
9706 * 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
9707 * 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
9708 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9709 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
9710 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9711 id object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9712
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9713 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
9714 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9715 Box *thisbox;
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 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
9718 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9719 int depth = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9720
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9721 /* 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
9722 _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
9723
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9724 /* Return what was requested */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9725 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
9726 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
9727 }
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9730 _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
9731 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9734 * 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
9735 * 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
9736 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9737 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9738 * 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
9739 * 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
9740 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9741 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
9742 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9743 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
9744 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
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9748 * 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
9749 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9750 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9751 * 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
9752 * 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
9753 */
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9754 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
9755 {
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9756 /* 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
9757 }
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 * 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
9761 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9762 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9763 * 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
9764 * 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
9765 * 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
9766 * 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
9767 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9768 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
9769 {
2711
00e42b9c9ebc iOS: Similarly update the comments on unimplmented functions... a unofficial
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2705
diff changeset
9770 /* 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
9771 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9774 * 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
9775 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9776 * handle: Window (widget) handle.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9777 * 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
9778 * 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
9779 * 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
9780 * 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
9781 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9782 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
9783 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9784 NSObject *object = handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9785
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
9786 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
9787 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9788 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
9789 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
9790 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9791 *x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9792 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
9793 *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
9794 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9795 *width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9796 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9797 *height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9798 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9799 }
2542
bb75e64e6138 Android: Implement dw_screen_* and dw_environment_query().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2541
diff changeset
9800 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
9801 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9802 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
9803 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
9804 if(x)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9805 *x = rect.origin.x;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9806 if(y)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9807 *y = rect.origin.y;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9808 if(width)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9809 *width = rect.size.width;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9810 if(height)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9811 *height = rect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9812 return;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9815
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9816 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9817 * 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
9818 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9819 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
9820 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9821 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
9822 return screenRect.size.width;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9825 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9826 * 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
9827 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9828 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
9829 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9830 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
9831 return screenRect.size.height;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9832 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9833
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9834 /* 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
9835 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
9836 {
2384
32ebd33be56b iOS: First building version. Yay! Still lots to do but progress.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2383
diff changeset
9837 /* 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
9838 return 32;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9839 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9840
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9841 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9842 * 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
9843 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9844 * 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
9845 * 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
9846 * 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
9847 * 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
9848 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9849 * 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
9850 * 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
9851 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9852 * 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
9853 * 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
9854 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9855 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
9856 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9857 char outbuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9858 HWND retval = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9859
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9860 if(description)
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 va_list args;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9863
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9864 va_start(args, description);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9865 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
9866 va_end(args);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9867 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9868
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9869 /* 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
9870 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
9871 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9872 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
9873 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9874 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
9875
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9876 if(notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9877 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9878 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
9879 if(description)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9880 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
9881 if(imagepath)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9882 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9883 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
9884 NSError *error;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9885 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
9886 URL:url
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9887 options:nil
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9888 error:&error];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9889 if(attachment)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9890 notification.attachments = @[attachment];
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 retval = notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9893 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9894 }
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 return retval;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9897 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9898
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9899 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9900 * 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
9901 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9902 * 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
9903 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9904 * 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
9905 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9906 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
9907 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9908 if(notification)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9909 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9910 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
9911
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9912 /* Schedule the notification. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9913 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
9914 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9915 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
9916 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9917 UNMutableNotificationContent* content = (UNMutableNotificationContent *)notification;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9918 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
9919
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9920 UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9921 [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
9922 }
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 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9925 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9926 return DW_ERROR_UNKNOWN;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9927 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9928
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9929
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9930 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9931 * 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
9932 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9933 * 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
9934 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9935 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
9936 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9937 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
9938 strcpy(env->osName, "iOS");
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 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
9941 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
9942 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
9943 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
9944 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
9945 #ifdef VER_REV
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9946 env->DWSubVersion = VER_REV;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9947 #else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9948 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
9949 #endif
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 env->MajorVersion = DWOSMajor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9952 env->MinorVersion = DWOSMinor;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9953 env->MajorBuild = DWOSBuild;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9956 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9957 * Emits a beep.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9958 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9959 * freq: Frequency.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9960 * dur: Duration.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9961 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9962 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
9963 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
9964 AudioServicesPlayAlertSound((SystemSoundID)1104);
2372
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9967 /* 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
9968 * 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
9969 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9970 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
9971 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9972 /* 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
9973 [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
9974 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9975
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9976 /* 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
9977 * 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
9978 * dw_window_get_data().
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9979 */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9980 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
9981 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9982 UserData *tmp = *root;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9983
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9984 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9985 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9986 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
9987 return tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9988 tmp = tmp->next;
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 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9991 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9992
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9993 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
9994 {
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
9995 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
9996
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9997 if(new)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9998 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
9999 new->data = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10000 return TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10001 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10002 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10003 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10004 new = malloc(sizeof(UserData));
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10005 if(new)
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 new->varname = strdup(varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10008 new->data = data;
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 new->next = NULL;
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 if (!*root)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10013 *root = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10014 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10015 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10016 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
10017
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10018 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10019 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10020 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10021 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10022 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10023 prev->next = new;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10024 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10025 return TRUE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10026 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10027 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10028 return FALSE;
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
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10031 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
10032 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10033 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
10034
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10035 while(tmp)
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 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
10038 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10039 if(!prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10040 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10041 *root = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10042 free(tmp->varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10043 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10044 if(!all)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10045 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10046 tmp = *root;
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10049 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10050 /* 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
10051 * never get here.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10052 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10053 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10054 free(tmp->varname);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10055 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10056 return 0;
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 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10059 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10060 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10061 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10062 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10063 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10064 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10065 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10066 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10067
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10068 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10069 * 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
10070 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10071 * 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
10072 * 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
10073 * 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
10074 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10075 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
10076 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
10077 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
10078 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
10079 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10080 id object = window;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10081 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
10082 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10083 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
10084 NSArray *subviews = [win subviews];
2739
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10085 for(id obj in subviews)
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10086 {
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10087 if([obj isMemberOfClass:[DWView class]])
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10088 {
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10089 object = obj;
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10090 break;
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10091 }
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10092 }
2372
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 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
10095 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10096 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
10097 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
10098 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10099 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10100 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
10101
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10102 if(!blah)
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 if(!dataname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10105 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10106
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10107 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
10108 [object setUserdata:blah];
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 if(data)
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10112 _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
10113 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10114 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10115 if(dataname)
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10116 _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
10117 else
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10118 _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
10119 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10120 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
10121 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10122
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10123 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10124 * 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
10125 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10126 * 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
10127 * 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
10128 * 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
10129 */
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10130 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
10131 DW_FUNCTION_ADD_PARAM2(window, dataname)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10132 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
10133 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
10134 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10135 id object = window;
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10136 void *retval = NULL;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10137
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10138 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
10139 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10140 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
10141 NSArray *subviews = [win subviews];
2739
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10142 for(id obj in subviews)
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10143 {
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10144 if([obj isMemberOfClass:[DWView class]])
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10145 {
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10146 object = obj;
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10147 break;
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10148 }
02c53dd5e21d iOS: I used to save the user data on the DWView subview of a DWWindow...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2738
diff changeset
10149 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10150 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10151 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
10152 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10153 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
10154 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
10155 object = [subviews firstObject];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10156 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10157 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
10158
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10159 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
10160 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10161 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
10162 if(ud)
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10163 retval = ud->data;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10164 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10165 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
10166 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10167
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
10168 /*
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
10169 * 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
10170 * 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
10171 * 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
10172 * 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
10173 * 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
10174 * 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
10175 */
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
10176 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
10177 {
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
10178 /* 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
10179 * 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
10180 */
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
10181 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
10182 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
10183 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
10184 }
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
10185
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10186 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10187 * 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
10188 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10189 * 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
10190 * 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
10191 * 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
10192 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10193 * 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
10194 */
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10195 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
10196 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
10197 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
10198 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
10199 {
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10200 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
10201
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10202 if(sigfunc)
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10203 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10204 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
10205
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10206 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
10207 _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
10208 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10209 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
10210 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10211
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10212 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10213 * Removes timer callback.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10214 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10215 * 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
10216 */
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10217 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
10218 DW_FUNCTION_ADD_PARAM1(timerid)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10219 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
10220 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
10221 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
10222 DWSignalHandler *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
10223
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10224 /* 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
10225 if(timerid)
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10226 {
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10227 NSTimer *thistimer = timerid;
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10228
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10229 [thistimer invalidate];
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10230
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10231 while(tmp)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10232 {
2584
2acc7ba5dea0 Add HTIMER type and change dw_timer_() functions to use it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2583
diff changeset
10233 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
10234 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10235 if(prev)
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10236 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10237 prev->next = tmp->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10238 free(tmp);
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10239 tmp = prev->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10240 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10241 else
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10242 {
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10243 DWRoot = tmp->next;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10244 free(tmp);
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10245 tmp = DWRoot;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10246 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10247 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10248 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10249 {
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10250 prev = tmp;
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10251 tmp = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10252 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10253 }
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10254 }
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
10255 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
10256 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10257
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10258 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10259 * 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
10260 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10261 * 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
10262 * 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
10263 * 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
10264 * 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
10265 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10266 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
10267 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10268 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
10269 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10270
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10271 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10272 * 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
10273 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10274 * 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
10275 * 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
10276 * 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
10277 * 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
10278 * 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
10279 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10280 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
10281 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10282 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
10283
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10284 /* 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
10285 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
10286 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10287 window = DWApp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10288 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10289
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10290 if(window && signame && sigfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10291 {
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10292 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
10293 {
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10294 _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
10295 }
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 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10300 * 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
10301 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10302 * 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
10303 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10304 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
10305 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
10306 DWSignalHandler *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
10307 ULONG message;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10308
2390
2613d1533f1a iOS: Fix initial window display and handle resize/rotation events.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2389
diff changeset
10309 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
10310 return;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10311
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10312 while(tmp)
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 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
10315 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10316 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
10317
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10318 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10319 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10320 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
10321 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10322
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10323 if(prev)
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 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10326 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10327 tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10328 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10329 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10330 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10331 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10332 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10333 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10334 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10335 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10336 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10337 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10338 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10339 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10340 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10341 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10342 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10343
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10344 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10345 * 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
10346 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10347 * 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
10348 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10349 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
10350 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
10351 DWSignalHandler *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
10352
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10353 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10354 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10355 if(tmp->window == window)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10356 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10357 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
10358
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10359 if(discfunc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10360 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10361 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
10362 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10363
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10364 if(prev)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10365 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10366 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10367 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10368 tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10369 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10370 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10371 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10372 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10373 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10374 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10375 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10376 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10377 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10378 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10379 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10380 tmp = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10381 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10382 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10383 }
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 * 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
10387 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10388 * 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
10389 * 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
10390 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10391 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
10392 {
2626
401a3b9f21ba Massive continuation of code style standardization.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2622
diff changeset
10393 DWSignalHandler *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
10394
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10395 while(tmp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10396 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10397 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
10398 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10399 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
10400
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10401 if(discfunc)
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 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
10404 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10405
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10406 if(prev)
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 prev->next = tmp->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10409 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10410 tmp = prev->next;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10411 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10412 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10413 {
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10414 DWRoot = tmp->next;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10415 free(tmp);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10416 tmp = DWRoot;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10417 }
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 else
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 prev = tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10422 tmp = tmp->next;
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 }
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
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10427 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
10428 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10429 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
10430
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10431 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
10432 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10433 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
10434 buf[z] -= 'A' - 'a';
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10438 /* 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
10439 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10440 * 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
10441 * 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
10442 * 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
10443 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10444 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
10445 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10446 int len;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10447 char *newname;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10448 char errorbuf[1025];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10449
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10450
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10451 if(!handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10452 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10453
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10454 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
10455 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10456
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10457 /* Lenth + "lib" + ".dylib" + NULL */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10458 newname = malloc(len + 10);
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(!newname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10461 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10462
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10463 sprintf(newname, "lib%s.dylib", name);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10464 _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
10465
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10466 *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
10467 if(*handle == NULL)
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 strncpy(errorbuf, dlerror(), 1024);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10470 printf("%s\n", errorbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10471 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
10472 *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
10473 }
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 free(newname);
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 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
10478 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10479
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10480 /* 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
10481 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10482 * 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
10483 * 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
10484 * 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
10485 * the address.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10486 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10487 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
10488 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10489 if(!func || !name)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10490 return -1;
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 if(strlen(name) == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10493 return -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10494
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10495 *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
10496 return (NULL == *func);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10497 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10498
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10499 /* 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
10500 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10501 * 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
10502 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10503 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
10504 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10505 if(handle)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10506 return dlclose(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10507 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10508 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10509
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10510 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10511 * 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
10512 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10513 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
10514 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10515 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
10516
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10517 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
10518 return mutex;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10519 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10522 * 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
10523 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10524 * 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
10525 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10526 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
10527 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10528 if(mutex)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10529 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10530 pthread_mutex_destroy(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10531 free(mutex);
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10536 * 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
10537 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10538 * 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
10539 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10540 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
10541 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10542 /* 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
10543 * 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
10544 * 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
10545 * 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
10546 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10547 if(DWThread == pthread_self())
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 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
10550 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10551 /* Process any pending events */
2635
3ec675648cf5 iOS: _dw_main_iteration() never seems to return NO.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2626
diff changeset
10552 _dw_main_iteration([NSDate dateWithTimeIntervalSinceNow:0.01]);
2372
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 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10556 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10557 pthread_mutex_lock(mutex);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10558 }
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10561 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10562 * 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
10563 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10564 * 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
10565 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10566 * 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
10567 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10568 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
10569 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10570 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
10571 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10572 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10573 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10574
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10575 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10576 * 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
10577 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10578 * 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
10579 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10580 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
10581 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10582 pthread_mutex_unlock(mutex);
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10585 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10586 * 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
10587 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10588 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
10589 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10590 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
10591
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10592 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10593 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10594
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10595 /* 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
10596 * 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
10597 * 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
10598 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10599 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
10600 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
10601 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
10602
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10603 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
10604 eve->alive = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10605 eve->posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10606
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10607 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10608 }
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 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10611 * 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
10612 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10613 * 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
10614 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10615 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
10616 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10617 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10618 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
10619
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10620 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
10621 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
10622 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
10623 eve->posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10624 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
10625 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10626 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10627
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10628 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10629 * 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
10630 * 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
10631 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10632 * 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
10633 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10634 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
10635 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10636 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10637 return FALSE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10638
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10639 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
10640 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
10641 eve->posted = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10642 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
10643 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10644 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10645
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10646 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10647 * 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
10648 * 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
10649 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10650 * 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
10651 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10652 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
10653 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10654 int rc;
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 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10657 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
10658
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10659 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
10660
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10661 if(eve->posted)
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 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
10664 return DW_ERROR_NONE;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10667 if(timeout != -1)
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 struct timeval now;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10670 struct timespec timeo;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10671
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10672 gettimeofday(&now, 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10673 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
10674 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
10675 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
10676 }
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 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
10679 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
10680 if(!rc)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10681 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10682 if(rc == ETIMEDOUT)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10683 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10684 return DW_ERROR_GENERAL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10685 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10686
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 * 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
10689 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10690 * 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
10691 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10692 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
10693 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10694 if(!eve || !(*eve))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10695 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
10696
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10697 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
10698 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
10699 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
10700 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
10701 free(*eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10702 *eve = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10703
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10704 return DW_ERROR_NONE;
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 struct _seminfo {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10708 int fd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10709 int waiting;
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
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10712 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
10713 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10714 fd_set rd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10715 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
10716 int listenfd = tmpsock[0];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10717 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
10718 char command;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10719 sigset_t mask;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10720
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10721 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
10722 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
10723
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10724 /* problems */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10725 if(tmpsock[1] == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10726 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10727 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10728 return;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10731 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
10732 array[0].waiting = 0;
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 /* 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
10735 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10736
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10737 while(1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10738 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10739 FD_ZERO(&rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10740 FD_SET(listenfd, &rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10741
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10742 maxfd = listenfd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10743
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10744 /* 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
10745 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
10746 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10747 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
10748 maxfd = array[z].fd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10749
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10750 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
10751 }
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 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
10754 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10755 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10756 return;
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
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10759 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
10760 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10761 struct _seminfo *newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10762 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
10763
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10764 if(newfd > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10765 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10766 /* 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
10767 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
10768 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
10769
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10770 newarray[connectcount].fd = newfd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10771 newarray[connectcount].waiting = 0;
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 connectcount++;
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 /* 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
10776 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10777 array = newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10778 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10779 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10780
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10781 /* 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
10782 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
10783 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10784 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
10785 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10786 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
10787 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10788 struct _seminfo *newarray = NULL;
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 /* 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
10791 if(connectcount > 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10792 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10793 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
10794 if(!z)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10795 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
10796 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10797 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10798 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
10799 if(z!=(connectcount-1))
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10800 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
10801 }
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 connectcount--;
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 /* 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
10806 free(array);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10807 array = newarray;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10808 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10809 else if(bytesread == 1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10810 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10811 switch(command)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10812 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10813 case 0:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10814 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10815 /* Reset */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10816 posted = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10817 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10818 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10819 case 1:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10820 /* Post */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10821 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10822 int s;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10823 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10824
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10825 posted = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10826
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10827 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
10828 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10829 /* 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
10830 * 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
10831 * continue.
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 if(array[s].waiting)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10834 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
10835 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10836 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10837 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10838 case 2:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10839 /* Wait */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10840 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10841 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10842
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10843 array[z].waiting = 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10844
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10845 /* 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
10846 if(posted)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10847 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
10848 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10849 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10850 case 3:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10851 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10852 /* Done Waiting */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10853 array[z].waiting = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10854 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10855 break;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10856 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10857 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10858 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10859 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10860 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10861 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10862
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10863 /* 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
10864 /* 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
10865 * opened from other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10866 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10867 * 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
10868 * 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
10869 * by other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10870 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10871 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
10872 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10873 struct sockaddr_un un;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10874 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
10875 HEV eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10876 DWTID dwthread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10877
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10878 if(!tmpsock)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10879 return NULL;
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 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
10882
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10883 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10884 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10885 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10886 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10887 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10888
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10889 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
10890 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
10891 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
10892 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
10893 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
10894 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
10895 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
10896
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10897 /* 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
10898 * to support multiple instances.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10899 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10900 remove(un.sun_path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10901
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10902 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
10903 listen(tmpsock[0], 0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10904 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
10905 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
10906
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10907 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
10908 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10909 if(tmpsock[0] > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10910 close(tmpsock[0]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10911 if(tmpsock[1] > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10912 close(tmpsock[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10913 if(ev > -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10914 close(ev);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10915 free(tmpsock);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10916 free(eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10917 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10918 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10919
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10920 /* Create a thread to handle this event semaphore */
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
10921 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
10922 eve->alive = ev;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10923 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10924 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10925
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10926 /* 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
10927 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10928 * 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
10929 * 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
10930 * by other processes.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10931 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10932 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
10933 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10934 struct sockaddr_un un;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10935 HEV eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10936 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
10937 if(ev < 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10938 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10939
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10940 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
10941
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10942 if(!eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10943 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10944 close(ev);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10945 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10946 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10947
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10948 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
10949 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
10950 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
10951 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
10952 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
10953 eve->alive = ev;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10954 return eve;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10955 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10956
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10957 /* 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
10958 * 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
10959 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10960 * 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
10961 * 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
10962 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10963 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
10964 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10965 /* signal reset */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10966 char tmp = (char)0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10967
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10968 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
10969 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10970
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10971 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
10972 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10973 return 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10974 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10975
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10976 /* 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
10977 * 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
10978 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10979 * 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
10980 * 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
10981 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10982 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
10983 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10984
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10985 /* signal post */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10986 char tmp = (char)1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10987
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10988 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
10989 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10990
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10991 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
10992 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10993 return 1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10994 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10995
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10996 /* 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
10997 * 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
10998 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
10999 * 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
11000 * 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
11001 * 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
11002 * or -1 if indefinite.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11003 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11004 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
11005 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11006 fd_set rd;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11007 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
11008 int retval = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11009 char tmp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11010
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11011 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
11012 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
11013
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11014 /* 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
11015 if(timeout != -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11016 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11017 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
11018 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
11019
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11020 useme = &tv;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11021 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11022
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11023 FD_ZERO(&rd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11024 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
11025
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11026 /* Signal wait */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11027 tmp = (char)2;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11028 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
11029
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11030 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
11031
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11032 /* Signal done waiting. */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11033 tmp = (char)3;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11034 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
11035
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11036 if(retval == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11037 return DW_ERROR_TIMEOUT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11038 else if(retval == -1)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11039 return DW_ERROR_INTERRUPT;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11040
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11041 /* 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
11042 * 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
11043 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11044 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
11045 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11046 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11047
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11048 /* 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
11049 * 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
11050 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11051 * 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
11052 * 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
11053 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11054 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
11055 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11056 /* Finally close the domain socket,
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
11057 * 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
11058 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11059 if(eve)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11060 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11061 close(eve->alive);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11062 free(eve);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11063 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11064 return 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11065 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11066
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11067 /* 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
11068 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
11069 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11070 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
11071 [pool drain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11072 pool = [[NSAutoreleasePool alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11073 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
11074 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11075
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11076 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11077 * 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
11078 * 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
11079 * 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
11080 * 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
11081 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11082 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
11083 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11084 /* 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
11085 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
11086 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
11087 _dw_init_colors();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11088 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11089
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11090 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11091 * 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
11092 * 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
11093 * 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
11094 * 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
11095 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11096 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
11097 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11098 UIColor *color;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11099
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11100 /* 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
11101 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
11102 [color release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11103 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
11104 [color release];
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
11105 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
11106 [pool drain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11107 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11108
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11109 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11110 * Setup thread independent pools.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11111 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11112 void _dwthreadstart(void *data)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11113 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11114 void (*threadfunc)(void *) = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11115 void **tmp = (void **)data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11116
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11117 _dw_init_thread();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11118
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11119 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
11120
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11121 /* Start our thread function */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11122 threadfunc(tmp[1]);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11123
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11124 free(tmp);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11125
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11126 _dw_deinit_thread();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11127 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11128
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11129 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11130 * 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
11131 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11132 * 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
11133 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11134 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
11135 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11136 UIFont *oldfont = DWDefaultFont;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11137 DWDefaultFont = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11138 if(fontname)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11139 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11140 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
11141 [DWDefaultFont retain];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11142 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11143 [oldfont release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11144 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11145
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11146 /* 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
11147 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
11148 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11149 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
11150 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
11151 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
11152
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11153 _dwmain(argc, argv);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11154 free(data);
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11155 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11156
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11157 /* 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
11158 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
11159 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11160 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
11161 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
11162 /* 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
11163 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
11164 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
11165 DWObj = [[DWObject alloc] init];
2407
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
11166 /* Create object for handling timers */
6336244aa895 iOS: Fix timers and implement dw_beep().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2405
diff changeset
11167 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
11168 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
11169 /* 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
11170 DWThread = (DWTID)-1;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11171 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11172
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11173 /* 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
11174 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
11175 {
2396
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11176 /* 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
11177 * 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
11178 * 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
11179 * 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
11180 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11181 while(!DWApp)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11182 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11183 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
11184
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11185 if(DWMainEvent && !posted)
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11186 {
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11187 /* 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
11188 * 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
11189 * the UIApplication sharedApplication.
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11190 */
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11191 posted = TRUE;
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11192 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
11193 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11194 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
11195 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
11196 }
5bb3491ceba2 iOS: Get iOS basic funcionality working by creating dwmain() macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2395
diff changeset
11197 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
11198 [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
11199 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11200
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11201 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11202 * 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
11203 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11204 * 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
11205 * 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
11206 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11207 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
11208 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11209 char *lang = getenv("LANG");
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11210
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11211 /* 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
11212 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
11213 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11214 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
11215 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
11216 char *binname = strrchr(pathcopy, '/');
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11217
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11218 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
11219 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11220 /* 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
11221 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
11222 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11223 if(app)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11224 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11225 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
11226 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
11227
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11228 if(len > 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11229 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11230 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
11231 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11232 *app = 0;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11233
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11234 getcwd(pathbuf, PATH_MAX);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11235
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11236 /* 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
11237 if(strcmp(pathbuf, "/") == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11238 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11239 char *pos = strrchr(pathcopy, '/');
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11240
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11241 if(pos)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11242 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11243 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
11244 chdir(pathbuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11245 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11246 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11247 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11248 if(pathcopy)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11249 free(pathcopy);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11250 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11251
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11252 /* 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
11253 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
11254 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
11255
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11256 /* 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
11257 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
11258 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
11259 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
11260 /* 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
11261 * 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
11262 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11263 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
11264 /* Create the application object */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11265 _dw_app_init();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11266 pthread_key_create(&_dw_pool_key, NULL);
2393
6669e152e30b iOS: More namespace cleanup.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2391
diff changeset
11267 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
2638
b7cc83cf70fa iOS: Attempt to add "Back" button to secondaries windows to allow them to
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2635
diff changeset
11268 _dw_toplevel_windows = [[NSMutableArray new] retain];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11269 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
11270 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
11271 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
11272 _dw_init_colors();
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11273 DWDefaultFont = nil;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11274 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
11275 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11276 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
11277 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11278 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11279 if(center)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11280 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11281 [center requestAuthorizationWithOptions:UNAuthorizationOptionAlert|UNAuthorizationOptionSound
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11282 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
11283 if (granted)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11284 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11285 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
11286 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11287 else
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11288 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11289 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
11290 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11291 }];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11292 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11293 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11294 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11295 _DWDirtyDrawables = [[NSMutableArray alloc] init];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11296 /* 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
11297 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
11298 [thread start];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11299 [thread release];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11300 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
11301 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11302 /* 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
11303 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
11304 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11305 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11306 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11307
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11308 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11309 * 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
11310 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11311 * 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
11312 * 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
11313 * 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
11314 * 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
11315 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11316 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
11317 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11318 char namebuf[1025] = {0};
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11319 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
11320
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11321 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
11322 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
11323
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11324 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
11325 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11326 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11327 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11328 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11329
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11330 ftruncate(handle->fd, size);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11331
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11332 /* 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
11333 *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
11334
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11335 if(*dest == MAP_FAILED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11336 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11337 close(handle->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11338 *dest = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11339 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11340 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11341 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11342
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11343 handle->size = size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11344 handle->sid = getsid(0);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11345 handle->path = strdup(namebuf);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11346
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11347 return handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11348 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11349
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11350 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11351 * 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
11352 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11353 * 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
11354 * 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
11355 * 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
11356 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11357 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
11358 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11359 char namebuf[1025];
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11360 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
11361
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11362 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
11363 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
11364
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11365 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
11366 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11367 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11368 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11369 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11370
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11371 /* 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
11372 *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
11373
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11374 if(*dest == MAP_FAILED)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11375 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11376 close(handle->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11377 *dest = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11378 free(handle);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11379 return NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11380 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11381
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11382 handle->size = size;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11383 handle->sid = -1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11384 handle->path = NULL;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11385
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11386 return handle;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11387 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11388
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11389 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11390 * 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
11391 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11392 * 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
11393 * 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
11394 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11395 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
11396 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11397 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
11398 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
11399
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11400 close(h->fd);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11401 if(h->path)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11402 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11403 /* 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
11404 * creator of the file.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11405 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11406 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
11407 remove(h->path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11408 free(h->path);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11409 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11410 return rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11411 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11412
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11413 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11414 * 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
11415 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11416 * 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
11417 * 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
11418 * 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
11419 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11420 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
11421 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11422 DWTID thread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11423 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
11424 int rc;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11425
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11426 tmp[0] = func;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11427 tmp[1] = data;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11428
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11429 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
11430 if(rc == 0)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11431 return thread;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11432 return (DWTID)-1;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11433 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11434
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11435 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11436 * 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
11437 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11438 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
11439 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11440 pthread_exit(NULL);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11441 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11442
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11443 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11444 * 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
11445 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11446 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
11447 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11448 return (DWTID)pthread_self();
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11449 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11450
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11451 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11452 * 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
11453 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11454 * 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
11455 * 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
11456 * 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
11457 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11458 * 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
11459 */
2698
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11460 int API dw_exec(const char *program, int type, char **params)
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11461 {
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11462 int retval = DW_ERROR_UNKNOWN;
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11463 pid_t pid;
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11464
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11465 /* Launch the application directly using posix_spawnp()
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11466 * Might need to use openURLs to open DW_EXEC_GUI.
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11467 */
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11468 if(posix_spawnp(&pid, program, NULL, NULL, params, NULL) == 0)
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11469 {
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11470 if(pid > 0)
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11471 retval = pid;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11472 else
2698
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11473 retval = DW_ERROR_NONE;
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11474 }
5c43d1ee9736 iOS: Implement dw_exec() using posix_spawnp(). Fix a few warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2693
diff changeset
11475 return retval;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11476 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11477
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11478 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11479 * 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
11480 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11481 * url: Uniform resource locator.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11482 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11483 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
11484 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11485 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
11486 [DWApp openURL:myurl options:@{}
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
11487 completionHandler:^(BOOL success) {}];
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11488 return DW_ERROR_NONE;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11489 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11490
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11491 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11492 * 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
11493 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11494 * 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
11495 * 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
11496 * 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
11497 * 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
11498 * 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
11499 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11500 * 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
11501 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11502 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
11503 {
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11504 if(drawfunc)
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11505 {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11506 UIPrintInfo *pi = [UIPrintInfo alloc];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11507 DWPrintPageRenderer *renderer = [DWPrintPageRenderer new];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11508 NSMutableArray *pa = [[[NSMutableArray alloc] initWithObjects:pi, renderer, nil] retain];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11509
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11510 if(!jobname)
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11511 jobname = "Dynamic Windows Print Job";
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11512
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11513 [pi setOutputType:UIPrintInfoOutputGeneral];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11514 [pi setJobName:[NSString stringWithUTF8String:jobname]];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11515 [pi setOrientation:UIPrintInfoOrientationPortrait];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11516 [renderer setDrawFunc:drawfunc];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11517 [renderer setDrawData:drawdata];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11518 [renderer setPages:pages];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11519 [renderer setFlags:flags];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11520 [renderer setPrint:pa];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11521 return pa;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11522 }
2380
93424ad710de iOS: Remove printing and file browsing... more conversion.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2379
diff changeset
11523 return NULL;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11524 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11525
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11526 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11527 * 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
11528 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11529 * 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
11530 * 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
11531 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11532 * 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
11533 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11534 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
11535 {
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11536 int retval = DW_ERROR_UNKNOWN;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11537
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11538 if(print)
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11539 {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11540 NSMutableArray *pa = print;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11541
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11542 [pa addObject:[NSNumber numberWithUnsignedLong:flags]];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11543 [DWObj safeCall:@selector(printDialog:) withObject:pa];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11544 retval = (int)[[pa lastObject] integerValue];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11545 [pa release];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11546 }
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11547 return retval;
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11548 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11549
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11550 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11551 * 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
11552 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11553 * 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
11554 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11555 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
11556 {
2726
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11557 if(print)
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11558 {
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11559 NSMutableArray *pa = print;
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11560 UIPrintInteractionController *pc = [UIPrintInteractionController sharedPrintController];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11561
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11562 [pc dismissAnimated:YES];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11563 [pa release];
7a15401e73f4 iOS: Initial print support for iOS.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2725
diff changeset
11564 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11565 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11566
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11567 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11568 * 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
11569 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11570 * 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
11571 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11572 * 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
11573 * or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11574 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11575 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
11576 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11577 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
11578 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
11579 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11580 mbstowcs(temp, utf8string, buflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11581 return temp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11582 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11583
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11584 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11585 * 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
11586 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11587 * wstring: Wide source string.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11588 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11589 * 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
11590 * or NULL on failure.
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11591 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11592 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
11593 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11594 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
11595 char *temp = malloc(bufflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11596 if(temp)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11597 wcstombs(temp, wstring, bufflen);
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11598 return temp;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11599 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11600
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11601 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11602 * 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
11603 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11604 * 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
11605 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11606 * 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
11607 * 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
11608 * 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
11609 * 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
11610 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11611 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
11612 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11613 switch(feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11614 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11615 case DW_FEATURE_NOTIFICATION:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11616 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
11617 case DW_FEATURE_HTML:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11618 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
11619 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
11620 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
11621 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
11622 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
11623 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
11624 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11625 if(DWObj)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11626 {
2458
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
11627 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
11628 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
11629 NSNumber *number;
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
11630
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
11631 [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
11632 number = [array lastObject];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
11633 if(number)
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
11634 retval = [number intValue];
689261c29745 iOS: DWContainer should generate selection event on deselect too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2457
diff changeset
11635 return retval;
2456
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11636 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11637 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
11638 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11639 default:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11640 return DW_FEATURE_UNSUPPORTED;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11641 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11642 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11643
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11644 /*
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11645 * 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
11646 * Parameters:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11647 * 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
11648 * 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
11649 * Returns:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11650 * 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
11651 * 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
11652 * 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
11653 * Remarks:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11654 * 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
11655 * 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
11656 */
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11657 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
11658 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11659 switch(feature)
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11660 {
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11661 /* 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
11662 case DW_FEATURE_NOTIFICATION:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11663 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
11664 case DW_FEATURE_HTML:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11665 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
11666 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
11667 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
11668 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
11669 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
11670 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
11671 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11672 /* 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
11673 if(DWObj)
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11674 {
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11675 /* 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
11676 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
11677 [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
11678 /* 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
11679 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
11680 [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
11681 /* 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
11682 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
11683 [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
11684 }
54f760a257f3 iOS: initial support for iOS Dark Mode... untested. Part 2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents: 2450
diff changeset
11685 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
11686 _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
11687 }
2372
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11688 default:
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11689 return DW_FEATURE_UNSUPPORTED;
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11690 }
df0a66945296 iOS: Initial commit of iOS source... based on MacOS code...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
diff changeset
11691 }