Mercurial > emacs
annotate nextstep/DEV-NOTES @ 107321:9b814b3ee348
Fix bug in decoding emacs-mule encoding.
coding.c (decode_coding_emacs_mule): Fixup pointers to buffer
text that could be relocated inside the call to emacs_mule_char.
(emacs_mule_char): Use CODING_DECODE_CHAR instead of DECODE_CHAR.
(CODING_DECODE_CHAR): Add a comment describing its purpose.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Tue, 02 Mar 2010 22:35:44 +0200 |
parents | 3d0115eb5d66 |
children | d268237e3481 |
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 |