diff lisp/utils/toolbar-utils.el @ 173:8eaf7971accc r20-3b13

Import from CVS: tag r20-3b13
author cvs
date Mon, 13 Aug 2007 09:49:09 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/utils/toolbar-utils.el	Mon Aug 13 09:49:09 2007 +0200
@@ -0,0 +1,90 @@
+;;; toolbar-utils.el --- Toolbar utility functions for XEmacs
+
+;; Copyright (C) 1997 by Free Software Foundation, Inc.
+
+;; Author: Jeff Miller <jmiller@smart.net>
+;; Keywords: extensions
+
+;; 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:
+
+;; Based largely on edit-toolbar.el by Peter D. Pezaris <pez@dwwc.com>
+
+;;; Code:
+
+;;;###autoload
+(defun restore-initial-toolbar ()
+  "Restores the default toolbar defined by initial-toolbar-spec."
+  (interactive)
+  (set-specifier default-toolbar initial-toolbar-spec)
+  )
+
+;;;###autoload
+(defun toolbar-add-item (item &optional index &optional toolbar-spec)
+  "Add a toolbar item ITEM at the first location of the toolbar specifier. 
+Optionally, can specify an INDEX position to insert the ITEM.  The default is
+to use default-toolbar, but a different specifier can by specified with 
+TOOLBAR-SPEC."
+  (if (eq  toolbar-spec nil )
+      (setq toolbar-spec default-toolbar))
+  (let* ((toolbar (specifier-instance toolbar-spec)))
+    (if(or (eq index nil) (eq index 0))
+	(setq toolbar (cons item toolbar))
+      (setcdr (nthcdr (- index 1) toolbar)
+	      (cons item (nthcdr index toolbar))))
+    (set-specifier toolbar-spec toolbar)
+    ))
+
+
+;;;###autoload
+(defun toolbar-kill-item-pos ( index &optional toolbar-spec) 
+  "Remove a toolbar item ITEM at the first location of the toolbar specifier.  
+Optionally, can specify an INDEX position where to remove the ITEM.  The 
+default is to use default-toolbar, but a different specifier can by 
+specified with TOOLBAR-SPEC."
+  (if (eq toolbar-spec nil ) 
+      (setq toolbar-spec default-toolbar)) 
+  (let* ((toolbar (specifier-instance toolbar-spec)) 
+	 (item (nth index toolbar))) 
+    (if (eq index 0) 
+	(setq toolbar(cdr toolbar)) 
+      (setcdr (nthcdr (1- index) toolbar) 
+	      (nthcdr (1+ index) toolbar))) 
+    (set-specifier toolbar-spec toolbar) 
+    ))
+
+;;;###autoload
+(defun toolbar-kill-item ( item &optional toolbar-spec)
+  "Remove a toolbar item ITEM at the first location of the toolbar specifier.  
+Optionally, can specify an ITEM to remove.  The ITEM must be in form of a 
+vector.  The default is to use default-toolbar, but a different specifier 
+can by specified with TOOLBAR-SPEC."
+  (if (eq  toolbar-spec nil )
+      (setq toolbar-spec default-toolbar))
+	      (let* ((toolbar (specifier-instance toolbar-spec)) )
+    (eval item)
+    (set-specifier toolbar-spec (delete item toolbar))
+    ))
+
+
+(provide 'toolbar-utils)
+
+;;; toolbar-utils.el ends here