annotate nextstep/DEV-NOTES @ 104664:50fdf250e26b

* mh-e/mh-comp.el (mh-send-letter): * mail/sendmail.el (mail-recover-1): * international/mule-diag.el (describe-current-coding-system-briefly) (describe-current-coding-system): * international/mule-cmds.el (select-safe-coding-system) (select-message-coding-system) (set-language-environment-coding-systems, set-locale-environment): * hexl.el (hexl-insert-multibyte-char): * dos-w32.el (find-buffer-file-type-coding-system): * simple.el (what-cursor-position): Replace uses of default-buffer-file-coding-system with (default-value 'buffer-file-coding-system).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 28 Aug 2009 04:21:14 +0000
parents 3d0115eb5d66
children d268237e3481
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
101913
3d0115eb5d66 --enable-cocoa-experimental-ctrl-g was removed.
Glenn Morris <rgm@gnu.org>
parents: 97045
diff changeset
71 configure [option removed Feb 2009]. (Has no effect under GNUstep.)
3d0115eb5d66 --enable-cocoa-experimental-ctrl-g was removed.
Glenn Morris <rgm@gnu.org>
parents: 97045
diff changeset
72 This is an area for improvement. Also, see the article here and its
3d0115eb5d66 --enable-cocoa-experimental-ctrl-g was removed.
Glenn Morris <rgm@gnu.org>
parents: 97045
diff changeset
73 containing thread:
97045
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
74
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
75 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
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
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
80 Text Rendering and Font Handling
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
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
83 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
84 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
85 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
86 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
87 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
88 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
89
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
90 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
91 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
92 attempts at this have failed.
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
93
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
94 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
95 the facilities of NSTextStorage and NSLayoutManager.
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
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
98 Object Architecture
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
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
101 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
102 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
103 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
104 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
105 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
106 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
107
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
108 EmacsApp : NSApplication
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
109 - 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
110 Services
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
111 - one global instance (NSApp)
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
112 - nsterm.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
113
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
114 EmacsView : NSView <TextInput>
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
115 - 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
116 - instance for each frame
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
117 - child of window's content view
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
118 - nsterm.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
119
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
120 EmacsWindow : NSWindow
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
121 - utility override for resize handling
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
122
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
123 EmacsScroller : NSScroller
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
124 - instance for each emacs window, renders scrollbar
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
125 - child of window's content view
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
126 - nsterm.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
127
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
128 EmacsImage : NSImage
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
129 - image rendering, toolbar icons, stippling, fringe bitmaps
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
130 - instance for each image
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
131 - nsimage.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
132
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
133 EmacsMenu : NSMenu
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
134 - menu management
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
135 - 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
136 - nsmenu.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
137
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
138 EmacsToolbar : NSToolbar
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
139 - toolbar management, one instance for each frame
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
140 - nsmenu.m
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
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
143 EmacsDialogPanel : NSPanel
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
144 - popup dialogs, one instance for each
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
145 - nsmenu.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
146
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
147 EmacsTooltip : NSObject
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
148 - tooltip popups, one instance for each
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
149 - nsmenu.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
150
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
151 EmacsGlyphStorage : NSObject <NSGlyphStorage>
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
152 - utility for text rendering
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
153 - nsfont.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
154
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
155 EmacsPrefsController : NSObject
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
156 - utility for preferences panel management, one global instance
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
157 - nsterm.m
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
158 - nextstep/Cocoa/Emacs.base/Contents/Resources/preferences.nib
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
159 - nextstep/GNUstep/Emacs.base/Resources/preferences.gorm
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
160
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
161 EmacsSavePanel : NSSavePanel
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
162 EmacsOpenPanel : NSOpenPanel
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
163 - utility override for panel notifications
bfcc88f3efea add developer notes file
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff changeset
164