Mercurial > hg > xemacs-beta
view etc/Emacs.ad @ 939:025200a2163c
[xemacs-hg @ 2002-07-31 07:23:39 by michaels]
2002-07-17 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
Markus Kaltenbach <makalten@informatik.uni-tuebingen.de>
Mike Sperber <mike@xemacs.org>
configure flag to turn these changes on: --use-kkcc
First we added a dumpable flag to lrecord_implementation. It shows,
if the object is dumpable and should be processed by the dumper.
* lrecord.h (struct lrecord_implementation): added dumpable flag
(MAKE_LRECORD_IMPLEMENTATION): fitted the different makro definitions
to the new lrecord_implementation and their calls.
Then we changed mark_object, that it no longer needs a mark method for
those types that have pdump descritions.
* alloc.c:
(mark_object): If the object has a description, the new mark algorithm
is called, and the object is marked according to its description.
Otherwise it uses the mark method like before.
These procedures mark objects according to their descriptions. They
are modeled on the corresponding pdumper procedures.
(mark_with_description):
(get_indirect_count):
(structure_size):
(mark_struct_contents):
These procedures still call mark_object, this is needed while there are
Lisp_Objects without descriptions left.
We added pdump descriptions for many Lisp_Objects:
* extents.c: extent_auxiliary_description
* database.c: database_description
* gui.c: gui_item_description
* scrollbar.c: scrollbar_instance_description
* toolbar.c: toolbar_button_description
* event-stream.c: command_builder_description
* mule-charset.c: charset_description
* device-msw.c: devmode_description
* dialog-msw.c: mswindows_dialog_id_description
* eldap.c: ldap_description
* postgresql.c: pgconn_description
pgresult_description
* tooltalk.c: tooltalk_message_description
tooltalk_pattern_description
* ui-gtk.c: emacs_ffi_description
emacs_gtk_object_description
* events.c:
* events.h:
* event-stream.c:
* event-Xt.c:
* event-gtk.c:
* event-tty.c:
To write a pdump description for Lisp_Event, we converted every struct
in the union event to a Lisp_Object. So we created nine new
Lisp_Objects: Lisp_Key_Data, Lisp_Button_Data, Lisp_Motion_Data,
Lisp_Process_Data, Lisp_Timeout_Data, Lisp_Eval_Data,
Lisp_Misc_User_Data, Lisp_Magic_Data, Lisp_Magic_Eval_Data.
We also wrote makro selectors and mutators for the fields of the new
designed Lisp_Event and added everywhere these new abstractions.
We implemented XD_UNION support in (mark_with_description), so
we can describe exspecially console/device specific data with XD_UNION.
To describe with XD_UNION, we added a field to these objects, which
holds the variant type of the object. This field is initialized in
the appendant constructor. The variant is an integer, it has also to
be described in an description, if XD_UNION is used.
XD_UNION is used in following descriptions:
* console.c: console_description
(get_console_variant): returns the variant
(create_console): added variant initialization
* console.h (console_variant): the different console types
* console-impl.h (struct console): added enum console_variant contype
* device.c: device_description
(Fmake_device): added variant initialization
* device-impl.h (struct device): added enum console_variant devtype
* objects.c: image_instance_description
font_instance_description
(Fmake_color_instance): added variant initialization
(Fmake_font_instance): added variant initialization
* objects-impl.h (struct Lisp_Color_Instance): added color_instance_type
* objects-impl.h (struct Lisp_Font_Instance): added font_instance_type
* process.c: process_description
(make_process_internal): added variant initialization
* process.h (process_variant): the different process types
author | michaels |
---|---|
date | Wed, 31 Jul 2002 07:23:39 +0000 |
parents | abe6d1db359e |
children | c55a519aa13f |
line wrap: on
line source
! This is the app-defaults file for XEmacs. ! ! This used to be identical to sample.Xdefaults, but the resources ! below have been rewritten to be as general as possible to avoid ! overriding user resources. Other than the form rewriting, both ! files should be kept in sync. ! ! The resources below are loaded into the XEmacs executable at compile-time: ! changes to .../etc/Emacs.ad made after XEmacs has been built will have no ! effect. ! ! However, you may copy .../etc/Emacs.ad to /usr/lib/X11/app-defaults/Emacs ! (or whatever the standard app-defaults directory is at your site) to cause ! it to be consulted at run-time. (Do this only for site-wide customizations: ! personal customizations should be put into ~/.Xdefaults instead.) ! Note that the file must be named Emacs, not XEmacs. ! ! See the NEWS file (C-h n) or XEmacs manual (C-h i) for a description of ! the various resources and the syntax for setting them. ! Colors and backgrounds. ! ====================== ! The contrasts of these colors will cause them to map to the appropriate ! one of "black" or "white" on monochrome systems. ! ! The valid color names on your system can be found by looking in the file ! `rgb.txt', usually found in /usr/lib/X11/ or /usr/openwin/lib/X11/. ! Set the modeline colors. !Emacs.modeline*attributeForeground: Black !Emacs.modeline*attributeBackground: Gray75 ! Set the color of the text cursor. !Emacs.text-cursor*attributeBackground: Red3 ! If you want to set the color of the mouse pointer, do this: ! Emacs.pointer*attributeForeground: Black ! If you want to set the background of the mouse pointer, do this: ! Emacs.pointer*attributeBackground: White ! Note that by default, the pointer foreground and background are the same ! as the default face. ! Set the menubar colors. This overrides the default foreground and ! background colors specified above. *menubar*Foreground: Gray30 *menubar*Background: Gray80 ! This is for buttons in the menubar. ! Yellow would be better, but that would map to white on monochrome. *menubar*buttonForeground: Blue *XlwMenu*highlightForeground: Red *XlwMenu*titleForeground: Maroon *XlwMenu*selectColor: ForestGreen *XmToggleButton*selectColor: ForestGreen ! Specify the colors of popup menus. *popup*Foreground: Black *popup*Background: Gray80 ! Specify the colors of the various sub-widgets of the dialog boxes. *dialog*Foreground: Black ! #A5C0C1 is a shade of blue *dialog*Background: #A5C0C1 ! The following three are for Motif dialog boxes ... *dialog*XmTextField*Background: WhiteSmoke *dialog*XmText*Background: WhiteSmoke *dialog*XmList*Background: WhiteSmoke ! While this one is for Athena dialog boxes. *dialog*Command*Background: WhiteSmoke ! Xlw Scrollbar colors *XlwScrollBar*Foreground: Gray30 *XlwScrollBar*Background: Gray80 *XmScrollBar*Foreground: Gray30 *XmScrollBar*Background: Gray80 ! ! The Lucid Scrollbar supports two added resources, SliderStyle is either ! "plain" (default) or "dimple". Dimple puts a small dimple in the middle ! of the slider that depresses when the slider is clicked on. ArrowPosition is ! either "opposite" (default) or "same". Opposite puts the arrows at opposite ! of the scrollbar, same puts both arrows at the same end, like the Amiga. ! ! Emacs*XlwScrollBar.SliderStyle: dimple ! Emacs*XlwScrollBar.ArrowPosition: opposite ! ! If you want to turn off a toolbar, set its height or width to 0. ! The correct size value is not really arbitrary. We only control it ! this way in order to avoid excess frame resizing when turning the ! toolbars on and off. ! ! To change the heights and widths of the toolbars: ! ! Emacs.topToolBarHeight: 37 ! Emacs.bottomToolBarHeight: 0 ! Emacs.leftToolBarWidth: 0 ! Emacs.rightToolBarWidth: 0 !*topToolBarShadowColor: Gray90 !*bottomToolBarShadowColor: Gray40 !*backgroundToolBarColor: Gray80 *toolBarShadowThickness: 2 ! If you want to turn off vertical scrollbars, or change the default ! pixel width of the vertical scrollbars, do it like this (0 width ! means no vertical scrollbars): ! ! Emacs.scrollBarWidth: 0 ! ! To change it for a particular frame, do this: ! ! Emacs*FRAME-NAME.scrollBarWidth: 0 ! If you want to turn off horizontal scrollbars, or change the default ! pixel height of the horizontal scrollbars, do it like this (0 height ! means no horizontal scrollbars): ! ! Emacs.scrollBarHeight: 0 ! ! To change it for a particular frame, do this: ! ! Emacs*FRAME-NAME.scrollBarHeight: 0 ! To dynamically change the labels used for menubar buttons... ! ! Emacs*XlwMenu.resourceLabels: True ! Emacs*XlwMenu.newFrame.labelString: Open Another Window ! To have the Motif scrollbars on the left instead of the right, do this: ! ! Emacs*scrollBarPlacement: BOTTOM_LEFT ! ! To have the Athena scrollbars on the right, use `BOTTOM_RIGHT' instead ! To have Motif scrollbars act more like Xt scrollbars... ! ! Emacs*XmScrollBar.translations: #override \n\ ! <Btn1Down>: PageDownOrRight(0) \n\ ! <Btn3Down>: PageUpOrLeft(0) ! Fonts. ! ====== ! XEmacs requires the use of XLFD (X Logical Font Description) format font ! names, which look like ! ! *-courier-medium-r-*-*-*-120-*-*-*-*-*-* ! ! if you use any of the other, less strict font name formats, some of which ! look like ! lucidasanstypewriter-12 ! and fixed ! and 9x13 ! ! then XEmacs won't be able to guess the names of the bold and italic versions. ! All X fonts can be referred to via XLFD-style names, so you should use those ! forms. See the man pages for X(1), xlsfonts(1), and xfontsel(1). ! The default font for the text area of XEmacs is chosen at run-time ! by lisp code which tries a number of different possibilities in order ! of preference. If you wish to override it, use this: ! ! Emacs.default.attributeFont: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* ! If you choose a font which does not have an italic version, you can specify ! some other font to use for it here: ! ! Emacs.italic.attributeFont: -*-courier-medium-o-*-*-*-120-*-*-*-*-iso8859-* ! ! And here is how you would set the background color of the `highlight' face, ! but only on the screen named `debugger': ! ! Emacs*debugger.highlight.attributeBackground: PaleTurquoise ! ! See the NEWS file (C-h n) for a more complete description of the resource ! syntax of faces. ! Font of the modeline, menubar and pop-up menus. ! Note that the menubar resources do not use the `face' syntax, since they ! are X toolkit widgets and thus outside the domain of XEmacs proper. ! ! When X Font Sets are enabled with ./configure --with-xfs (eg, for ! multilingual menubars and XIM), some .font resources (those specific to ! the Lucid widget set) are ignored in favor of .fontSet resources. This ! example shows how to add fonts for Japanese menubars: ! ! *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ ! -*-*-*-*-*-*-*-120-*-jisx0208.1983-0 ! *menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* ! Gui elements share this font ! Emacs.gui-element.attributeFont: -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-* ! Font in the Motif dialog boxes. ! (Motif uses `fontList' while most other things use `font' - if you don't ! know why you probably don't want to.) ! *XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* *XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* *XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* *XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-* ! Font in the Athena dialog boxes. ! I think 14-point looks nicer than 12-point. ! Some people use 12-point anyway because you get more text, but ! there's no purpose at all in doing this for dialog boxes. *Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-* ! Dialog box translations. ! ======================= ! This accelerator binds <return> in a dialog box to <activate> on button1 *dialog*button1.accelerators:#override\ <KeyPress>Return: ArmAndActivate()\n\ <KeyPress>KP_Enter: ArmAndActivate()\n\ Ctrl<KeyPress>m: ArmAndActivate()\n ! Translations to make the TextField widget behave more like XEmacs *XmTextField*translations: #override\n\ !<Key>osfBackSpace: delete-previous-character()\n\ !<Key>osfDelete: delete-previous-character()\n\ !Ctrl<Key>h: delete-previous-character()\n\ !Ctrl<Key>d: delete-next-character()\n\ !Meta<Key>osfDelete: delete-previous-word()\n\ !Meta<Key>osfBackSpace: delete-previous-word()\n\ !Meta<Key>d: delete-next-word()\n\ !Ctrl<Key>k: delete-to-end-of-line()\n\ !Ctrl<Key>g: process-cancel()\n\ !Ctrl<Key>b: backward-character()\n\ !<Key>osfLeft: backward-character()\n\ !Ctrl<Key>f: forward-character()\n\ !<Key>osfRight: forward-character()\n\ !Meta<Key>b: backward-word()\n\ !Meta<Key>osfLeft: backward-word()\n\ !Meta<Key>f: forward-word()\n\ !Meta<Key>osfRight: forward-word()\n\ !Ctrl<Key>e: end-of-line()\n\ !Ctrl<Key>a: beginning-of-line()\n\ !Ctrl<Key>w: cut-clipboard()\n\ !Meta<Key>w: copy-clipboard()\n\ <Btn2Up>: copy-primary()\n ! With the XEmacs typeahead it's better to not have space be bound to ! ArmAndActivate() for buttons that appear in dialog boxes. This is ! not 100% Motif compliant but the benefits far outweight the ! compliancy problem. *dialog*XmPushButton*translations:#override\n\ <Btn1Down>: Arm()\n\ <Btn1Down>,<Btn1Up>: Activate()\ Disarm()\n\ <Btn1Down>(2+): MultiArm()\n\ <Btn1Up>(2+): MultiActivate()\n\ <Btn1Up>: Activate()\ Disarm()\n\ <Key>osfSelect: ArmAndActivate()\n\ <Key>osfActivate: ArmAndActivate()\n\ <Key>osfHelp: Help()\n\ ~Shift ~Meta ~Alt <Key>Return: ArmAndActivate()\n\ <EnterWindow>: Enter()\n\ <LeaveWindow>: Leave()\n ! Native Widget translations ! ======================= Emacs*Text*translations: #override\n\ <Btn1Down>: widget-focus-in() select-start()\n ! XIM input method style ! ======================= ! ximStyles is a (whitespace or comma-separated) list of XIMStyles in ! order of user's preference. ! Choose a subset of the following styles or reorder to taste *ximStyles: XIMPreeditPosition|XIMStatusArea\ XIMPreeditPosition|XIMStatusNothing\ XIMPreeditPosition|XIMStatusNone\ XIMPreeditNothing|XIMStatusArea\ XIMPreeditNothing|XIMStatusNothing\ XIMPreeditNothing|XIMStatusNone\ XIMPreeditNone|XIMStatusArea\ XIMPreeditNone|XIMStatusNothing\ XIMPreeditNone|XIMStatusNone ! XIM Preedit and Status foreground and background *EmacsFrame.ximForeground: black *EmacsFrame.ximBackground: white ! XIM fontset (defaults to system fontset default) ! *EmacsFrame.FontSet: -dt-interface user-medium-r-normal-s*-*-*-*-*-*-*-*-*