Mercurial > hg > xemacs-beta
diff lisp/scrollbar.el @ 428:3ecd8885ac67 r21-2-22
Import from CVS: tag r21-2-22
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:28:15 +0200 |
parents | |
children | 8de8e3f6228a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/scrollbar.el Mon Aug 13 11:28:15 2007 +0200 @@ -0,0 +1,138 @@ +;;; scrollbar.el --- Scrollbar support for XEmacs + +;; Copyright (C) 1995, 1997 Free Software Foundation, Inc. + +;; Maintainer: XEmacs Development Team +;; Keywords: internal, 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, 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Synched up with: Not in FSF. (Completely divergent from FSF scroll-bar.el) + +;;; Commentary: + +;; This file is dumped with XEmacs (when scrollbar support is compiled in). + +;;; Code: + +;; added for the options menu - dverna +(defcustom scrollbars-visible-p t + "Whether the scrollbars are globally visible. +This variable can be customized through the options menu." + :type 'boolean + :set (lambda (var val) + (set-specifier vertical-scrollbar-visible-p val) + (set-specifier horizontal-scrollbar-visible-p val) + (setq-default scrollbars-visible-p val)) + :group 'display) + +(defun init-scrollbar-from-resources (locale) + (when (and (featurep 'x) + (or (eq locale 'global) + (eq 'x (device-or-frame-type locale)))) + (x-init-scrollbar-from-resources locale)) + (when (and (featurep 'mswindows) + (or (eq locale 'global) + (eq 'mswindows (device-or-frame-type locale)))) + (mswindows-init-scrollbar-metrics locale))) + +;; +;; vertical scrollbar functions +;; + +;;; ### Move functions from C into Lisp here! + +;; +;; horizontal scrollbar functions +;; + +(defun scrollbar-char-left (window) + "Function called when the char-left arrow on the scrollbar is clicked. +This is the little arrow to the left of the scrollbar. One argument is +passed, the scrollbar's window. You can advise this function to +change the scrollbar behavior." + (when (window-live-p window) + (scrollbar-set-hscroll window (- (window-hscroll window) 1)) + (setq zmacs-region-stays t) + nil)) + +(defun scrollbar-char-right (window) + "Function called when the char-right arrow on the scrollbar is clicked. +This is the little arrow to the right of the scrollbar. One argument is +passed, the scrollbar's window. You can advise this function to +change the scrollbar behavior." + (when (window-live-p window) + (scrollbar-set-hscroll window (+ (window-hscroll window) 1)) + (setq zmacs-region-stays t) + nil)) + +(defun scrollbar-page-left (window) + "Function called when the user gives the \"page-left\" scrollbar action. +\(The way this is done can vary from scrollbar to scrollbar.\) One argument is +passed, the scrollbar's window. You can advise this function to +change the scrollbar behavior." + (when (window-live-p window) + (scrollbar-set-hscroll window (- (window-hscroll window) + (- (window-width window) 2))) + (setq zmacs-region-stays t) + nil)) + +(defun scrollbar-page-right (window) + "Function called when the user gives the \"page-right\" scrollbar action. +\(The way this is done can vary from scrollbar to scrollbar.\) One argument is +passed, the scrollbar's window. You can advise this function to +change the scrollbar behavior." + (when (window-live-p window) + (scrollbar-set-hscroll window (+ (window-hscroll window) + (- (window-width window) 2))) + (setq zmacs-region-stays t) + nil)) + +(defun scrollbar-to-left (window) + "Function called when the user gives the \"to-left\" scrollbar action. +\(The way this is done can vary from scrollbar to scrollbar.\). One argument is +passed, the scrollbar's window. You can advise this function to +change the scrollbar behavior." + (when (window-live-p window) + (scrollbar-set-hscroll window 0) + (setq zmacs-region-stays t) + nil)) + +(defun scrollbar-to-right (window) + "Function called when the user gives the \"to-right\" scrollbar action. +\(The way this is done can vary from scrollbar to scrollbar.\). One argument is +passed, the scrollbar's window. You can advise this function to +change the scrollbar behavior." + (when (window-live-p window) + (scrollbar-set-hscroll window 'max) + (setq zmacs-region-stays t) + nil)) + +(defun scrollbar-horizontal-drag (data) + "Function called when the user drags the horizontal scrollbar thumb. +One argument is passed, a cons containing the scrollbar's window and a value +representing how many columns the thumb is slid over. You can advise +this function to change the scrollbar behavior." + (let ((window (car data)) + (value (cdr data))) + (when (and (window-live-p window) (integerp value)) + (scrollbar-set-hscroll window value) + (setq zmacs-region-stays t) + nil))) + +;;; scrollbar.el ends here