86ff14b533
A few small fixes.
2019-05-24 15:40:01 -04:00
34fbcec965
Subclasses can have new methods in addition to overriding existing
...
methods (first draft).
2019-05-24 12:36:01 -04:00
38c7856b89
Bug fix and start improvements to subclassing.
2019-05-24 00:12:46 -04:00
a616761475
Change Go types to plain structs instead of pointers to structs.
...
Add methods for protocols that Objective-C interfaces claim to
implement. Separate class methods from instance methods in
internal data structures. Add layout constraints with visual
formats to examples/app. Fix typedefs for wrapped objective-c
object types.
2019-05-23 16:31:47 -04:00
4f6930002d
First draft that handles subclasses and improvements to delegate
...
implementation.
2019-05-21 16:26:52 -04:00
8de87cddb7
Performance improvements (do not parse addresses or locations unless
...
location tracking is enabled). Allow profiling option. Add some
comments and clean-ups to types/*.go.
2019-05-11 23:03:56 -04:00
49fd749fe3
Use C.GoBytes() in examples/bluetooth.
2019-05-10 02:35:52 -04:00
2fe435f137
Bug fix: delete exports.go if it is not needed.
...
Clean up some warnings around deprecated methods and sending
the "initialize" message to NSObject.
2019-05-10 02:23:07 -04:00
dcb7105fca
Complete the Delegates wrapper. Disambiguate polymorphic methods.
...
Bluetooth example is now a functioning heart rate monitor. Additional
bug fixes in Go types (instances where *Id needs to be used instead
of NSObject).
2019-05-10 02:00:56 -04:00
0de9249e6a
Update .gitignore.
2019-05-09 22:35:21 -04:00
e7e2c2c7b6
Begin moving the bluetooth example to the new delegates system.
2019-05-09 22:33:06 -04:00
44b3b75e23
Complete implementation of delegates. Update app example with an
...
NSApplicationDelegate.
2019-05-09 22:05:04 -04:00
0d2321d516
Add autorelease helpers.
2019-05-09 13:33:28 -04:00
b00ecd4ac0
Switch from toml to yaml for configuration files. Begin scaffolding
...
for Protocols and Delegates.
2019-05-09 12:25:45 -04:00
cccbfbbc00
Autorelease all objective-C objects constructed using "alloc".
...
Clean up type-related comments in generated code. Do not use
pointers to Go interfaces as receivers, use pointer to Id instead.
2019-05-09 08:52:35 -04:00
ea34821fe6
Add a button to examples/app.
2019-05-07 15:49:43 -04:00
1c5c61308c
Add SelectorHelpers() so you can send named selectors to Objective-C.
2019-05-07 15:17:23 -04:00
8ed05fb451
Work around cgo (or Clang dwarf) bug with incorrect struct size
...
calculation by returning void pointers for NS object constructors.
Expand examples/app to start building menus.
2019-05-07 14:48:06 -04:00
511f2f1968
Improve type handling for enums. Handle "__kindof" qualifiers.
...
Add examples/app. Allow VisibilityAttr "Hidden".
2019-05-06 13:21:36 -04:00
959b87342e
Return Golang bools from Objective-C functions that return BOOL.
...
Move nswrap command to cmd/nswrap.
2019-05-06 09:00:38 -04:00
717c7e76fe
Change name of New* functions to *Alloc to mimic Objective-C's
...
nested alloc/init call idiom.
2019-05-04 23:32:57 -04:00
eced251710
Create GoString helper methods for anything that has a "WithString"
...
method. Multiple bug fixes in type system, fixed parsing of id,
instancename and instancetype, allow NullableAnnotations after
generic lists (e.g. "id<ObjectType> _Nullable"). Helper function
to identify types that are function pointers.
2019-05-03 13:14:30 -04:00
8ea3d57cf0
Fix bug in examples/bluetooth/ble/ble_delegate: deleted references
...
to unused scanCallback property.
2019-05-02 14:22:20 -04:00
c5a523a8b8
Add bluetooth example.
2019-05-02 14:17:11 -04:00
758ea40679
Add constants for C enum types. Add NSEnumerator helper. Fix
...
bugs in Go class names. Add "Frameworks" option to nswrap.toml.
Improve handling of ast.EnumDecl and ast.EnumConstantDecl.
2019-05-02 14:14:29 -04:00
9b71889a69
Include type qualifiers and nullability attributes in Objective-C
...
function return types. Add NSEnumerator to examples/foundation.
2019-05-01 13:58:20 -04:00
11366be6d0
Convert *Id to any wrapped type. Shorten names for class methods
...
that return an instance of the class. Fix return types for Go
interfaces.
2019-05-01 12:34:29 -04:00
57ad898945
Bug fix: Process types before converting to go function parameter
...
lists.
2019-05-01 11:01:50 -04:00
be92b200ad
Handle functions identified by regexp in nswrap.toml config
...
file. Handle inherited class methods.
2019-05-01 10:58:29 -04:00
380fee39bf
Update foundation example to query whether the array contains
...
specified objects.
2019-04-30 10:34:56 -04:00
e6232bdccb
Fix VaArgs configuration.
2019-04-30 09:21:54 -04:00
3573aa9144
Change Go types to simple unsafe Pointers instead of pointers
...
wrapped in structs. It could be possible to handle pointers to
pointers now.
2019-04-30 09:14:25 -04:00
0e89d2c29a
Do not memoize type parser as it causes bugs with typedefs,
...
'instancetype' etc. Clean up typedefs and type parameters as
soon as Types are created.
2019-04-30 06:59:05 -04:00
d78e055008
Handle Objective-C methods with variadic arguments.
2019-04-29 16:14:45 -04:00
57232548fa
Go type declarations should point to C typedefs. Add parser for
...
C enum types.
2019-04-29 13:31:13 -04:00
c03e37bd54
Make a Go Interface instead of a struct for top level objects.
...
Use a new struct Id as a concrete version of that type.
2019-04-29 11:46:48 -04:00
c0c17e88d1
Fix to go type declarations.
2019-04-29 10:37:43 -04:00
500b457d32
Fix type wrapping and procesing so duplicate types do not get
...
declared.
2019-04-27 22:24:05 -04:00
977a09e77e
Better handling of multiple classes and input files. Handle
...
Objective C type parameter declarations. Check Typedefs when
determining if a Type is a pointer or a function.
2019-04-26 22:44:30 -04:00
6135381cc7
Allow #pragma directives to be provided in the config file.
2019-04-26 15:41:29 -04:00
009a974a1a
Rename to nswrap, put configuration in a toml file, allow imports
...
and sysimports.
2019-04-26 15:34:36 -04:00
ead1623d4b
Eliminate unnecessary code from wrap/main.go. Include full attributes
...
in return types of C functions to reduce compiler warnings.
2019-04-26 15:08:44 -04:00
b93ba4c01f
Fix handling of signed, unsigned, complex, and long long types
...
in Go type declarations.
2019-04-26 14:15:18 -04:00
4f260dda0e
Fix handling of id and void* types. Add helper functions to convert
...
char* to and from Go strings. Parse block (^) types. Skip methods
with functions as parameters. Fix passing pointers go C code.
2019-04-26 14:08:43 -04:00
98e19ca726
Fix handling of wrapped types. Use new type system for go
...
function declarations. Working wrapper for simple test case.
2019-04-26 10:56:00 -04:00
e143dbb6a7
Fixed type wrapping, further conversion to new type system. The
...
Go side looks pretty good at this point.
2019-04-26 10:07:34 -04:00
fb21881a8b
Add type conversion functions to types package. Start moving the
...
wrapper to the new type system. Intermediate commit before I rip
out the old stuff, not working yet.
2019-04-26 09:04:53 -04:00
885658b67b
Implement new type system. Working wrapper for simple Objective-C
...
interfaces.
2019-04-23 15:48:11 -04:00
4867bb80f4
Memoize types/TypeName() for performance.
...
types/Parse() returns an error if the parse is incomplete.
2019-04-18 14:40:02 -04:00
da2008c597
Function to print text version of a C TypeName. Fix bugs in Nest(),
...
ZeroOrMore(), OneOrMore() and Objective-C Generics parsers.
2019-04-18 14:04:01 -04:00