Merge mime-def.el of WEMI.
authormorioka <morioka>
Mon, 13 Apr 1998 17:59:05 +0000 (17:59 +0000)
committermorioka <morioka>
Mon, 13 Apr 1998 17:59:05 +0000 (17:59 +0000)
semi-def.el

index f69e83f..c852586 100644 (file)
@@ -1,11 +1,11 @@
-;;; semi-def.el --- definition module for SEMI
+;;; semi-def.el --- definition module for WEMI
 
 ;; Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: definition, MIME, multimedia, mail, news
 
-;; This file is part of SEMI (Spadework for Emacs MIME Interfaces).
+;; This file is part of WEMI (Widget based Emacs MIME Interfaces).
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
   :group 'mime
   :type 'face)
 
-(defsubst mime-add-button (from to function &optional data)
-  "Create a button between FROM and TO with callback FUNCTION and DATA."
-  (let ((overlay (make-overlay from to)))
-    (and mime-button-face
-        (overlay-put overlay 'face mime-button-face))
-    (and mime-button-mouse-face
-        (overlay-put overlay 'mouse-face mime-button-mouse-face))
-    (add-text-properties from to (list 'mime-button-callback function))
-    (and data
-        (add-text-properties from to (list 'mime-button-data data)))
-    ;;(add-text-properties from to (list 'keymap widget-keymap))
-    ))
-
 (defsubst mime-insert-button (string function &optional data)
   "Insert STRING as button with callback FUNCTION and DATA."
   (save-restriction
     (narrow-to-region (point)(point))
-    (insert (concat "[" string "]"))
-    ;; (widget-push-button-value-create
-    ;;  (widget-convert 'push-button
-    ;;                  :notify (lambda (&rest ignore)
-    ;;                            (mime-preview-play-current-entity)
-    ;;                            )
-    ;;                  string))
+    (widget-create 'push-button
+                  :action `(lambda (widget &optional event)
+                             (,function)
+                             )
+                  :mouse-down-action `(lambda (widget event)
+                                        (let (buf point)
+                                          (save-window-excursion
+                                            (mouse-set-point event)
+                                            (setq buf (current-buffer)
+                                                  point (point)))
+                                          (save-excursion
+                                            (set-buffer buf)
+                                            (goto-char point)
+                                            (,function)
+                                            )))
+                  string)
     (insert "\n")
-    (mime-add-button (point-min)(point-max) function data)
+    ;;(mime-add-button (point-min)(point-max) function data)
     ))
 
 (defvar mime-button-mother-dispatcher nil)