]> asedeno.scripts.mit.edu Git - PuTTY_svn.git/blob - macosx/osxclass.h
Replace some 'sfree' calls of bignums with the proper 'freebn'.
[PuTTY_svn.git] / macosx / osxclass.h
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 */