| // Copyright 2016 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package objcpkg |
| |
| import ( |
| "ObjC/Foundation" |
| gopkg "ObjC/Objcpkg" |
| "ObjC/UIKit" |
| ) |
| |
| const ( |
| DescriptionStr = "Descriptrion from Go" |
| Hash = 42 |
| ) |
| |
| type GoNSDate struct { |
| Foundation.NSDate |
| } |
| |
| func (d *GoNSDate) Hash(self gopkg.GoNSDate) int { |
| return Hash |
| } |
| |
| func (d *GoNSDate) Description(self gopkg.GoNSDate) string { |
| // Test self call |
| if h := self.Hash(); h != Hash { |
| panic("hash mismatch") |
| } |
| return DescriptionStr |
| } |
| |
| func (d *GoNSDate) GetSelf(self gopkg.GoNSDate) Foundation.NSDate { |
| return self |
| } |
| |
| func NewGoNSDate() *GoNSDate { |
| return new(GoNSDate) |
| } |
| |
| type GoNSObject struct { |
| C Foundation.NSObjectC // The class |
| P Foundation.NSObjectP // The protocol |
| UseSelf bool |
| } |
| |
| func (o *GoNSObject) Description(self gopkg.GoNSObject) string { |
| if o.UseSelf { |
| return DescriptionStr |
| } else { |
| return self.Super().Description() |
| } |
| } |
| |
| func DupNSDate(date Foundation.NSDate) Foundation.NSDate { |
| return date |
| } |
| |
| type GoUIResponder struct { |
| UIKit.UIResponder |
| Called bool |
| } |
| |
| func (r *GoUIResponder) PressesBegan(_ Foundation.NSSet, _ UIKit.UIPressesEvent) { |
| r.Called = true |
| } |
| |
| // Check that implicitly referenced types are wrapped. |
| func implicitType(r UIKit.UIResponder) { |
| r.MotionBegan(0, nil) |
| } |