Mercurial > hg > xemacs-beta
comparison src/console-xlike-inc.h @ 4917:fce43cb76a1c
xlike cleanup, documentation
-------------------- ChangeLog entries follow: --------------------
man/ChangeLog addition:
2010-02-03 Ben Wing <ben@xemacs.org>
* internals/internals.texi (Top):
* internals/internals.texi (Evaluation; Stack Frames; Bindings):
* internals/internals.texi (Ben's README):
* internals/internals.texi (Consoles; Devices; Frames; Windows):
* internals/internals.texi (Window Hierarchy):
* internals/internals.texi (The Window Object):
* internals/internals.texi (Modules for the Basic Displayable Lisp Objects):
* internals/internals.texi (Window-System Support):
* internals/internals.texi (Creating a Window-System Type):
* internals/internals.texi (Discussion -- Garbage Collection):
Update the part at the top about how to maintain the file with
more tips.
Add a chapter on "window-system support" describing in a general
way how the support for different window systems/device types
works, including the separation between device-independent and
device-dependent parts, device methods, the specific device types
and the "xlike" pseudo-type.
src/ChangeLog addition:
2010-02-03 Ben Wing <ben@xemacs.org>
* Makefile.in.in:
* Makefile.in.in (x_objs):
* Makefile.in.in (gtk_gui_objs):
* console-xlike-inc.h:
* depend:
* device-x.c:
* emacs.c:
* gccache-gtk.h:
* gccache-gtk.h (gc_cache_lookup):
* gccache-x.c:
* gccache-x.c (GCCACHE_HASH):
* gccache-x.h:
* toolbar-gtk.c:
* toolbar-gtk.c (gtk_initialize_frame_toolbars):
* toolbar-x.c:
* toolbar-x.c (x_initialize_frame_toolbars):
* toolbar-xlike.c:
* toolbar-xlike.c (xlike_draw_blank_toolbar_button):
* toolbar-xlike.c (xlike_output_toolbar_button):
* toolbar-xlike.c (xlike_get_button_size):
* toolbar-xlike.c (XLIKE_OUTPUT_BUTTONS_LOOP):
* toolbar-xlike.c (xlike_output_toolbar):
* toolbar-xlike.c (xlike_clear_toolbar):
* toolbar-xlike.c (xlike_output_frame_toolbars):
* toolbar-xlike.c (xlike_clear_frame_toolbars):
* toolbar-xlike.c (xlike_redraw_exposed_toolbar):
* toolbar-xlike.c (xlike_redraw_exposed_toolbars):
* toolbar-xlike.c (xlike_redraw_frame_toolbars):
* toolbar-xlike.h:
* toolbar-xlike.h (xlike_clear_frame_toolbars):
Rename some files to make them consistent with general naming rules:
xgccache.c -> gccache-x.c
xgccache.h -> gccache-x.h
toolbar-common.c -> toolbar-xlike.c
toolbar-common.h -> toolbar-xlike.h
Fix include-file references. Also change the names of functions
in now-named toolbar-xlike.c to be xlike_foo() instead of common_foo().
Add a longish comment in console-xlike-inc.h describing the "xlike"
system, how it works and what the various files are used for.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Wed, 03 Feb 2010 02:46:50 -0600 |
parents | a6c778975d7d |
children | 5502045ec510 8b2f75cecb89 |
comparison
equal
deleted
inserted
replaced
4916:a6c778975d7d | 4917:fce43cb76a1c |
---|---|
32 on the level of individual library functions, constants and types, of | 32 on the level of individual library functions, constants and types, of |
33 which there are large number. Abstracting them into device methods | 33 which there are large number. Abstracting them into device methods |
34 would lead to a large number of very small functions and very | 34 would lead to a large number of very small functions and very |
35 hard-to-read code. | 35 hard-to-read code. |
36 | 36 |
37 Instead, we handle the situation by having only one copy, placed in a | 37 Instead, we handle the situation by the following: |
38 file called *-xlike-inc.c (e.g. redisplay-xlike-inc.c) and | 38 |
39 conditionalizing using ifdefs. Because we can compile with both X and | 39 (1) In cases where there are lots of individual differences, we have |
40 GTK at once, we include this file inside of the appropriate | 40 only one copy, placed in a file called *-xlike-inc.c |
41 device-specific file (e.g. redisplay-gtk.c or redisplay-x.c). The `inc' | 41 (e.g. redisplay-xlike-inc.c), and conditionalize using ifdefs. Because |
42 in *-xlike-inc.c indicates that this is a file meant to be included in | 42 we can compile with both X and GTK at once, we include this file inside |
43 another file, despite the fact that it is a .c file. | 43 of the appropriate device-specific file (e.g. redisplay-gtk.c or |
44 redisplay-x.c). The `inc' in *-xlike-inc.c indicates that this is a | |
45 file meant to be included in another file, despite the fact that it is a | |
46 .c file. | |
44 | 47 |
45 To signal which variety of "xlike" we are compiling for, either | 48 To signal which variety of "xlike" we are compiling for, either |
46 THIS_IS_X or THIS_IS_GTK needs to be defined, prior to including the | 49 THIS_IS_X or THIS_IS_GTK needs to be defined, prior to including the |
47 *-xlike-inc.c file. */ | 50 *-xlike-inc.c file. |
51 | |
52 (2) For code that is identical in both versions, or where it's possible | |
53 to have only one copy at runtime through some other means, we name | |
54 the file *-xlike.c. This is a normal file, not included in some other | |
55 file. An example of "other means" is toolbar-xlike.c, where all | |
56 functions are passed a frame or device, and it's possible to do run-time | |
57 conditionalization based on the device type. (This isn't currently the | |
58 case but will be soon once the related changes from my `hg-fixup' | |
59 workspace are checked in. --ben) */ | |
48 | 60 |
49 | 61 |
50 /* About the representation of color below: | 62 /* About the representation of color below: |
51 | 63 |
52 X has two ways of representing a color: (a) as an unsigned long | 64 X has two ways of representing a color: (a) as an unsigned long |
70 #endif | 82 #endif |
71 | 83 |
72 #ifdef THIS_IS_X | 84 #ifdef THIS_IS_X |
73 # include "console-x-impl.h" | 85 # include "console-x-impl.h" |
74 # ifdef NEED_GCCACHE_H | 86 # ifdef NEED_GCCACHE_H |
75 # include "xgccache.h" | 87 # include "gccache-x.h" |
76 # endif | 88 # endif |
77 # ifdef NEED_GLYPHS_H | 89 # ifdef NEED_GLYPHS_H |
78 # include "glyphs-x.h" | 90 # include "glyphs-x.h" |
79 # endif | 91 # endif |
80 # ifdef NEED_OBJECTS_IMPL_H | 92 # ifdef NEED_OBJECTS_IMPL_H |