]>
Commit | Line | Data |
---|---|---|
1c1af145 | 1 | /* |
2 | * Header file for the Objective-C parts of Mac OS X PuTTY. This | |
3 | * file contains the class definitions, which would cause compile | |
4 | * failures in the pure C modules if they appeared in osx.h. | |
5 | */ | |
6 | ||
7 | #ifndef PUTTY_OSXCLASS_H | |
8 | #define PUTTY_OSXCLASS_H | |
9 | ||
10 | #include "putty.h" | |
11 | ||
12 | /* | |
13 | * The application controller class, defined in osxmain.m. | |
14 | */ | |
15 | @interface AppController : NSObject | |
16 | { | |
17 | NSTimer *timer; | |
18 | } | |
19 | - (void)newSessionConfig:(id)sender; | |
20 | - (void)newTerminal:(id)sender; | |
21 | - (void)newSessionWithConfig:(id)cfg; | |
22 | - (void)setTimer:(long)next; | |
23 | @end | |
24 | extern AppController *controller; | |
25 | ||
26 | /* | |
27 | * The SessionWindow class, defined in osxwin.m. | |
28 | */ | |
29 | ||
30 | struct alert_queue { | |
31 | struct alert_queue *next; | |
32 | NSAlert *alert; | |
33 | void (*callback)(void *, int); | |
34 | void *ctx; | |
35 | }; | |
36 | ||
37 | @class SessionWindow; | |
38 | @class TerminalView; | |
39 | ||
40 | @interface SessionWindow : NSWindow | |
41 | { | |
42 | Terminal *term; | |
43 | TerminalView *termview; | |
44 | struct unicode_data ucsdata; | |
45 | void *logctx; | |
46 | Config cfg; | |
47 | void *ldisc; | |
48 | Backend *back; | |
49 | void *backhandle; | |
50 | int exited; | |
51 | /* | |
52 | * The following two members relate to the currently active | |
53 | * alert sheet, if any. They are NULL if there isn't one. | |
54 | */ | |
55 | void (*alert_callback)(void *, int); | |
56 | void *alert_ctx; | |
57 | /* This queues future alerts that need to be shown. */ | |
58 | struct alert_queue *alert_qhead, *alert_qtail; | |
59 | } | |
60 | - (id)initWithConfig:(Config)cfg; | |
61 | - (void)drawStartFinish:(BOOL)start; | |
62 | - (void)setColour:(int)n r:(float)r g:(float)g b:(float)b; | |
63 | - (Config *)cfg; | |
64 | - (void)doText:(wchar_t *)text len:(int)len x:(int)x y:(int)y | |
65 | attr:(unsigned long)attr lattr:(int)lattr; | |
66 | - (int)fromBackend:(const char *)data len:(int)len isStderr:(int)is_stderr; | |
67 | - (int)fromBackendUntrusted:(const char *)data len:(int)len; | |
68 | - (void)startAlert:(NSAlert *)alert | |
69 | withCallback:(void (*)(void *, int))callback andCtx:(void *)ctx; | |
70 | - (void)endSession:(int)clean; | |
71 | - (void)notifyRemoteExit; | |
72 | - (Terminal *)term; | |
73 | @end | |
74 | ||
75 | /* | |
76 | * The ConfigWindow class, defined in osxdlg.m. | |
77 | */ | |
78 | ||
79 | @class ConfigWindow; | |
80 | ||
81 | @interface ConfigWindow : NSWindow | |
82 | { | |
83 | NSOutlineView *treeview; | |
84 | struct controlbox *ctrlbox; | |
85 | void *dv; | |
86 | Config cfg; | |
87 | } | |
88 | - (id)initWithConfig:(Config)cfg; | |
89 | @end | |
90 | ||
91 | /* | |
92 | * Functions exported by osxctrls.m. (They have to go in this | |
93 | * header file and not osx.h, because some of them have Cocoa class | |
94 | * types in their prototypes.) | |
95 | */ | |
96 | #define HSPACING 12 /* needed in osxdlg.m and osxctrls.m */ | |
97 | #define VSPACING 8 | |
98 | ||
99 | void *fe_dlg_init(void *data, NSWindow *window, NSObject *target, SEL action); | |
100 | void fe_dlg_free(void *dv); | |
101 | void create_ctrls(void *dv, NSView *parent, struct controlset *s, | |
102 | int *minw, int *minh); | |
103 | int place_ctrls(void *dv, struct controlset *s, int leftx, int topy, | |
104 | int width); /* returns height used */ | |
105 | void select_panel(void *dv, struct controlbox *b, const char *name); | |
106 | ||
107 | #endif /* PUTTY_OSXCLASS_H */ |