summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/cocoaint/src/foundation/NSInvocation.inc
blob: 3a5fdd5547210e84057bdf8cbdee8d82276f80f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{ Parsed from Foundation.framework NSInvocation.h }

{$ifdef TYPES}
{$ifndef NSINVOCATION_PAS_T}
{$define NSINVOCATION_PAS_T}

{ Constants }

const
  NSObjCNoType = 0;

{$endif}
{$endif}

{$ifdef RECORDS}
{$ifndef NSINVOCATION_PAS_R}
{$define NSINVOCATION_PAS_R}

{ Records }
type
  value = record
    _type: NSInteger;
    charValue: char;
    shortValue: cshort;
    longValue: clong;
    longlongValue: clonglong;
    floatValue: single;
    doubleValue: double;
    boolValue: bool;
    selectorValue: SEL;
    objectValue: id;
    pointerValue: Pointer;
    structLocation: Pointer;
    cStringLocation: PChar;
  end deprecated 'in Mac OS X 10.5 and later';
valuePtr = ^value;


{$endif}
{$endif}

{$ifdef FUNCTIONS}
{$ifndef NSINVOCATION_PAS_F}
{$define NSINVOCATION_PAS_F}

{$endif}
{$endif}

{$ifdef EXTERNAL_SYMBOLS}
{$ifndef NSINVOCATION_PAS_S}
{$define NSINVOCATION_PAS_S}

{$endif}
{$endif}

{$ifdef FORWARD}
  NSInvocation = objcclass;
  NSInvocationPointer = ^NSInvocation;
  NSInvocationPtr = NSInvocationPointer;

{$endif}

{$ifdef CLASSES}
{$ifndef NSINVOCATION_PAS_C}
{$define NSINVOCATION_PAS_C}

{ NSInvocation }
  NSInvocation = objcclass external (NSObject)
  private
    _frame: Pointer;
    _retdata: Pointer;
    _signature: id;
    _container: id;
    _retainedArgs: cuint8;
    _reserved: array[0..(15)-1] of cuint8;
    
  public
    class function invocationWithMethodSignature(sig: NSMethodSignature): NSInvocation; message 'invocationWithMethodSignature:';
    function methodSignature: NSMethodSignature; message 'methodSignature';
    procedure retainArguments; message 'retainArguments';
    function argumentsRetained: Boolean; message 'argumentsRetained';
    function target: id; message 'target';
    procedure setTarget(target_: id); message 'setTarget:';
    function selector: SEL; message 'selector';
    procedure setSelector(selector_: SEL); message 'setSelector:';
    procedure getReturnValue(retLoc: Pointer); message 'getReturnValue:';
    procedure setReturnValue(retLoc: Pointer); message 'setReturnValue:';
    procedure getArgument_atIndex(argumentLocation: Pointer; idx: NSInteger); message 'getArgument:atIndex:';
    procedure setArgument_atIndex(argumentLocation: Pointer; idx: NSInteger); message 'setArgument:atIndex:';
    procedure invoke; message 'invoke';
    procedure invokeWithTarget(target_: id); message 'invokeWithTarget:';
  end;

{$endif}
{$endif}