Thread View: gnu.epoch.misc
1 messages
1 total messages
Started by kinstrey
Fri, 19 Apr 1991 20:01
mouse-double-click.el
Author: kinstrey
Date: Fri, 19 Apr 1991 20:01
Date: Fri, 19 Apr 1991 20:01
116 lines
5665 bytes
5665 bytes
;;; Copyright (C) 1990 General Electric Company.
;;; Written by Michael A. Kinstrey, for the
;;; DICE (DARPA Initiative in Concurrent Engineering) project.
;;;
;;; This file is for use with GNU Emacs 18.55 or later,
;;; or Epoch, a modified version of GNU Emacs.
;;; Requires Epoch 3.2 or later.
;;;
;;; This code is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY. No author or distributor accepts
;;; responsibility to anyone for the consequences of using this code
;;; or for whether it serves any particular purpose or works at all,
;;; unless explicitly stated in a written agreement. Refer to the
;;; GNU Emacs General Public License for full details.
;;;
;;; Everyone is granted permission to copy, modify and redistribute
;;; this code, but only under the conditions described in the
;;; GNU Emacs General Public License.
;;; Among other things, the copyright notice and this notice
;;; must be preserved on all copies.
(cond (running-epoch (require 'mouse)) ;; epoch mouse-support
((string-equal window-system "x")
(require 'x-mouse)) ;; xemacs mouse-support
(t (message "mouse features not installed"))) ;; regular emacs running?
(require 'mouse-double-click-functions) ;; this will load only once
;; DO NOT do a (provide 'mouse-double-click) anymore, because
;; the variables are all local now, so when a
;; (require 'mouse-double-click) is done, a local set of
;; vars are installed each time
(make-local-variable 'single-mouse-map)
(make-local-variable 'double-mouse-map)
(make-local-variable 'double-clicks-allowed)
(if running-epoch
(setq double-mouse-map (create-mouse-map mouse::global-map))
(setq single-mouse-map (copy-keymap mouse-map))
(setq double-mouse-map (copy-keymap mouse-map)))
(make-local-variable 'current_click_time)
(make-local-variable 'prev_click_time)
(make-local-variable 'prev_click_list)
(make-local-variable 'prev_screen)
(make-local-variable 'double_button_click)
(make-local-variable 'prev_local_mouse_map)
(make-local-variable 'single-mouse-map-before-hooks)
(make-local-variable 'single-mouse-map-after-hooks)
(make-local-variable 'double-mouse-map-before-hooks)
(make-local-variable 'double-mouse-map-after-hooks)
(make-local-variable 'run-hooks-on-mouse-down-event)
;; initialize all variables everytime this file is loaded
(setq double-clicks-allowed t)
(setq current_click_time nil)
(setq prev_click_time nil)
(setq prev_click_list nil)
(setq prev_screen nil)
(setq double_button_click nil)
(setq prev_local_mouse_map nil)
(setq single-mouse-map-before-hooks nil)
(setq single-mouse-map-after-hooks nil)
(setq double-mouse-map-before-hooks nil)
(setq double-mouse-map-after-hooks nil)
(setq run-hooks-on-mouse-down-event nil)
;; ------------------------------------------------------------------
;; ------------ VERSION-SPECIFIC EVENT_HANDLER INSTALLATION ---------
;; ------------------------------------------------------------------
(cond (running-epoch
;; epoch mouse set-up
(push-event 'button 'mouse::double-click-handler) ;;
install epoch event-handler
(setq epoch::mouse-events t)) ;; make epoch realize the change
((string-equal window-system "x")
;; X-mouse set-up
(define-key mouse-map x-button-left 'x-double-click)))
;; install xemacs event-handler
;; ------------------------------------------------------------------
;; ------------ CALL-BACK FUNCTIONS ---------------------------------
;; ------------------------------------------------------------------
;; two example call-backs
(defun single-click (&optional arg button)
(message "single-click function called...")(sleep-for 1))
(defun double-click (&optional arg button)
(message "double-click function called...")(sleep-for 1))
;; ------------------------------------------------------------------
;; ----------- CALL-BACK INSTALLATION -------------------------------
;; ------------------------------------------------------------------
;; list of functions to execute before/after actual call-back is executed
(setq single-mouse-map-before-hooks nil)
(setq single-mouse-map-after-hooks nil)
(setq double-mouse-map-before-hooks nil)
(setq double-mouse-map-after-hooks nil)
(setq run-hooks-on-mouse-down-event nil) ;; not applicable under
Xemacs- can't distinguish up vs. down.
(cond (running-epoch ;; epoch configuration
(define-mouse double-mouse-map mouse-left mouse-down 'double-click))
((string-equal window-system "x") ;; xemacs configuration
(define-key single-mouse-map x-button-left
'x-mouse-set-point) ;; defaults
(define-key single-mouse-map x-button-middle
'x-paste-text) ;; put into
(define-key single-mouse-map x-button-right 'x-cut-text)
;; single-mouse map
(define-key double-mouse-map x-button-left 'double-click)))
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads