Mercurial > hg > xemacs-beta
view lisp/gdk.el @ 938:0391335b65dc
[xemacs-hg @ 2002-07-31 07:14:49 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:14:49 +0000 |
parents | 7039e6323819 |
children | 308d34e9f07d |
line wrap: on
line source
;;; gdk.el --- Import GDK functions into XEmacs ;; Copyright (C) 2000 Free Software Foundation ;; Maintainer: William Perry <wmperry@gnu.org> ;; Keywords: extensions, dumped ;; This file is part of XEmacs. ;; XEmacs is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; XEmacs is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with XEmacs; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ;; 02111-1307, USA. ;;; Synched up with: Not in FSF ;;; Commentary: ;; This file is dumped with XEmacs. (eval-and-compile (require 'gtk-ffi)) (globally-declare-fboundp '(gtk-import-function-internal gtk-call-function)) (gtk-import-function nil gdk_set_show_events (gboolean . show_events)) (gtk-import-function nil gdk_set_use_xshm (gboolean . use_xshm)) (gtk-import-function GtkString gdk_get_display) (gtk-import-function nil gdk_flush) (gtk-import-function nil gdk_beep) (gtk-import-function nil gdk_key_repeat_disable) (gtk-import-function nil gdk_key_repeat_restore) (gtk-import-function gint gdk_visual_get_best_depth) (gtk-import-function GdkVisualType gdk_visual_get_best_type) (gtk-import-function GdkVisual gdk_visual_get_system) (gtk-import-function GdkVisual gdk_visual_get_best) (gtk-import-function GdkVisual gdk_visual_get_best_with_depth (gint . depth)) (gtk-import-function GdkVisual gdk_visual_get_best_with_type (GdkVisualType . visual_type)) (gtk-import-function GdkVisual gdk_visual_get_best_with_both (gint . depth) (GdkVisualType . visual_type)) (gtk-import-function gboolean gdk_window_is_visible (GdkWindow . window)) (gtk-import-function gboolean gdk_window_is_viewable (GdkWindow . window)) (gtk-import-function gboolean gdk_window_set_static_gravities (GdkWindow . window) (gboolean . use_static)) (gtk-import-function nil gdk_window_set_cursor (GdkWindow . window) (GdkCursor . cursor)) (gtk-import-function GdkVisual gdk_window_get_visual (GdkWindow . window)) (gtk-import-function GdkWindowType gdk_window_get_type (GdkWindow . window)) (gtk-import-function GdkWindow gdk_window_get_parent (GdkWindow . window)) (gtk-import-function GdkWindow gdk_window_get_toplevel (GdkWindow . window)) (gtk-import-function GdkEventMask gdk_window_get_events (GdkWindow . window)) (gtk-import-function none gdk_window_set_events (GdkWindow . window) (GdkEventMask . events)) (gtk-import-function none gdk_window_set_icon (GdkWindow . window) (GdkWindow . icon_window) (GdkPixmap . pixmap) (GdkBitmap . mask)) (gtk-import-function none gdk_window_set_icon_name (GdkWindow . window) (GtkString . name)) (gtk-import-function none gdk_window_set_group (GdkWindow . window) (GdkWindow . leader)) (gtk-import-function none gdk_window_set_decorations (GdkWindow . window) (GdkWMDecoration . decorations)) (gtk-import-function none gdk_window_set_functions (GdkWindow . window) (GdkWMFunction . functions)) ;; Cursors are handled by glyphs in XEmacs ;; GCs are handled by faces in XEmacs ;; Pixmaps are handled by glyphs in XEmacs ;; Images are handled by glyphs in XEmacs ;; Colors are handled natively by XEmacs ;; Fonts are handled natively by XEmacs (gtk-import-function none gdk_draw_point (GdkDrawable . drawable) (GdkGC . gc) (gint . x) (gint . y)) (gtk-import-function none gdk_draw_line (GdkDrawable . drawable) (GdkGC . gc) (gint . x1) (gint . y1) (gint . x2) (gint . y2)) (gtk-import-function none gdk_draw_rectangle (GdkDrawable . drawable) (GdkGC . gc) (gboolean . filled) (gint . x) (gint . y) (gint . width) (gint . height)) (gtk-import-function none gdk_draw_arc (GdkDrawable . drawable) (GdkGC . gc) (gboolean . filled) (gint . x) (gint . y) (gint . width) (gint . height) (gint . angle1) (gint . angle2)) (gtk-import-function none gdk_draw_string (GdkDrawable . drawable) (GdkFont . font) (GdkGC . gc) (gint . x) (gint . y) (GtkString . string)) (gtk-import-function none gdk_draw_text (GdkDrawable . drawable) (GdkFont . font) (GdkGC . gc) (gint . x) (gint . y) (GtkString . string) (gint . text_length)) (gtk-import-function none gdk_draw_pixmap (GdkDrawable . drawable) (GdkGC . gc) (GdkImage . image) (gint . xsrc) (gint . ysrc) (gint . xdest) (gint . ydest) (gint . width) (gint . height)) ;; Selections are handled natively by XEmacs (provide 'gdk)