Mercurial > emacs
annotate nextstep/DEV-NOTES @ 97045:bfcc88f3efea
add developer notes file
| author | Adrian Robert <Adrian.B.Robert@gmail.com> |
|---|---|
| date | Sun, 27 Jul 2008 19:33:38 +0000 |
| parents | |
| children | 3d0115eb5d66 |
| rev | line source |
|---|---|
|
97045
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
1 This file summarizes primary aspects of the NS port architecture. If |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
2 possible, it should be updated for changes. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
3 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
4 Currently it summarizes the state as of: |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
5 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
6 summer 2008 shortly after merging to trunk |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
7 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
8 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
9 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
10 Startup |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
11 ------- |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
12 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
13 Init sequence: |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
14 emacs.c: ns_alloc_autorelease_pool() nsterm.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
15 emacs.c: ns_init_paths() nsterm.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
16 - override EMACSLOADPATH, etc. so resources can be found in-bundle |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
17 emacs.c: init_display() dispnew.c |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
18 - sets Vwindow_system (window-system) to 'ns |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
19 emacs.c: loadup.el -> startup.el -> ns-initialize-window-system |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
20 -> x-open-connection (nsfns.m) |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
21 - ns-list-services |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
22 -> nsterm.m: ns_term_init() |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
23 - EmacsApp sharedApplication |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
24 - read NS defaults (org.gnu.Emacs.plist) |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
25 - init X-style color list |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
26 - ns_create_terminal() |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
27 - NSApp run (goes to applicationDidFinishLaunching which terminates |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
28 event loop -- see below) |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
29 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
30 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
31 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
32 Event Loop |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
33 ---------- |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
34 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
35 In an NS application, the event loop is normally managed by system and all |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
36 user code is event-driven. [NSApp run] is called by user and never returns. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
37 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
38 In Emacs, the event loop is managed by emacs itself. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
39 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
40 The NS port mediates between these two styles by intercepting the NS event |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
41 dispatch at [NSApp sendEvent]. If a special event is detected, the event loop |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
42 is broken, and control returned to Emacs. This special event is sent by |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
43 ns_send_appdefined, which is called under these circumstances: |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
44 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
45 - if a user input event is received |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
46 - when a timeout fires |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
47 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
48 NS event processing is instigated from Emacs through ns_select() and |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
49 ns_read_socket() in nsterm.m. Parts of the codepaths leading to these |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
50 functions are: |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
51 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
52 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
53 keyboard.c:read_avail_input() |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
54 -> ns_read_socket (ns_send_appdefined) -> [NSApp run] |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
55 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
56 process.c:wait_reading_process_output() |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
57 -> ns_select -> gobble_input (global inNsSelect=1) |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
58 -> ns_read_socket (ns_send_appdefined if !expected) -> [NSApp run] |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
59 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
60 sysdep.c:sys_select() -> read_input_waiting() |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
61 -> ns_read_socket (send_appdefined) -> [NSApp run] |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
62 [this codepath may not be used] |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
63 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
64 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
65 Currently ctrl-g is not detected in as many circumstances as other emacsen. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
66 It is not certain whether this is due to the means of event loop integration, |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
67 or errors of omission in the NS code. One area for exploration is the |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
68 NO_SOCK_SIGIO define. When it is defined, ctrl-g seems to be picked up more |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
69 often, but there are some annoying side effects. Currently it is left off by |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
70 default, unless the --enable-cocoa-experimental-ctrl-g option is passed to |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
71 configure. (Has no effect under GNUstep.) This is an area for improvement. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
72 Also, see the article here and its containing thread: |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
73 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
74 http://article.gmane.org/gmane.emacs.devel/92021/match=handling%5fsignal |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
75 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
76 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
77 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
78 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
79 Text Rendering and Font Handling |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
80 -------------------------------- |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
81 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
82 nsfont.m implements the font driver, responsible for managing fonts and |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
83 rendering text. Fonts are obtained through NSFontManager. Rendering must be |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
84 done at a low level due to emacs' fine control over this process, therefore |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
85 there are different approachs under Cocoa and GNUstep. Under GNUstep, the |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
86 original NeXT Display PostScript (DPS) APIs are available and used. Under |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
87 Cocoa, these were removed and Quartz drawing functions replaced them. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
88 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
89 In both cases, font glyphs are accessed through UTF8 character |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
90 representations. It would be preferable to use unicode indices, but prior |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
91 attempts at this have failed. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
92 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
93 Multi-script fontsets are auto-created in nsfont_make_fontset_for_font() using |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
94 the facilities of NSTextStorage and NSLayoutManager. |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
95 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
96 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
97 Object Architecture |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
98 ------------------- |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
99 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
100 Unlike the other GUIs, the NS interface is based on a high-level and |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
101 object-oriented API. This creates some tension in the code because emacs |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
102 itself has been architected around the low-level Xlib and Xt APIs. The NS |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
103 port tries to strike a balance between simplifying code on its side using OO |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
104 features, and keeping code as similar as possible to other ports to ease |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
105 maintenance. The following are the main classes (see nsterm.h): |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
106 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
107 EmacsApp : NSApplication |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
108 - event loop integration, interapp comms point for Finder (NSWorkspace) msgs, |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
109 Services |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
110 - one global instance (NSApp) |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
111 - nsterm.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
112 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
113 EmacsView : NSView <TextInput> |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
114 - handles rendering of text and fringe, interapp comms for drag/drop |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
115 - instance for each frame |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
116 - child of window's content view |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
117 - nsterm.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
118 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
119 EmacsWindow : NSWindow |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
120 - utility override for resize handling |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
121 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
122 EmacsScroller : NSScroller |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
123 - instance for each emacs window, renders scrollbar |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
124 - child of window's content view |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
125 - nsterm.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
126 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
127 EmacsImage : NSImage |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
128 - image rendering, toolbar icons, stippling, fringe bitmaps |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
129 - instance for each image |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
130 - nsimage.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
131 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
132 EmacsMenu : NSMenu |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
133 - menu management |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
134 - one tree of instances for menubar, one instance for each popup menu |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
135 - nsmenu.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
136 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
137 EmacsToolbar : NSToolbar |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
138 - toolbar management, one instance for each frame |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
139 - nsmenu.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
140 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
141 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
142 EmacsDialogPanel : NSPanel |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
143 - popup dialogs, one instance for each |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
144 - nsmenu.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
145 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
146 EmacsTooltip : NSObject |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
147 - tooltip popups, one instance for each |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
148 - nsmenu.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
149 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
150 EmacsGlyphStorage : NSObject <NSGlyphStorage> |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
151 - utility for text rendering |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
152 - nsfont.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
153 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
154 EmacsPrefsController : NSObject |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
155 - utility for preferences panel management, one global instance |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
156 - nsterm.m |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
157 - nextstep/Cocoa/Emacs.base/Contents/Resources/preferences.nib |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
158 - nextstep/GNUstep/Emacs.base/Resources/preferences.gorm |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
159 |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
160 EmacsSavePanel : NSSavePanel |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
161 EmacsOpenPanel : NSOpenPanel |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
162 - utility override for panel notifications |
|
bfcc88f3efea
add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
163 |
