2001-07-16 12:23:00 +00:00
|
|
|
|
;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE
|
2007-01-21 03:53:13 +00:00
|
|
|
|
|
2010-01-13 08:35:10 +00:00
|
|
|
|
;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
2007-01-21 03:53:13 +00:00
|
|
|
|
;; Free Software Foundation, Inc.
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
2002-07-18 18:58:07 +00:00
|
|
|
|
;; Author: Carsten Dominik <dominik@astro.uva.nl>
|
|
|
|
|
;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
|
2010-08-29 16:17:13 +00:00
|
|
|
|
;; Version: 6.1.22
|
2000-01-03 14:23:13 +00:00
|
|
|
|
;; Keywords: processes
|
2010-08-29 20:10:43 +00:00
|
|
|
|
;; Package: idlwave
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
|
|
2008-05-06 07:25:26 +00:00
|
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
2000-01-03 14:23:13 +00:00
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
2008-05-06 07:25:26 +00:00
|
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
;; (at your option) any later version.
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
;; GNU Emacs 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
|
2008-05-06 07:25:26 +00:00
|
|
|
|
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
|
|
|
|
;; This file implements a debugging toolbar for IDLWAVE. It requires
|
|
|
|
|
;; Emacs or XEmacs with toolbar and xpm support.
|
|
|
|
|
|
2002-07-18 18:58:07 +00:00
|
|
|
|
;; New versions of IDLWAVE, documentation, and more information
|
|
|
|
|
;; available from:
|
|
|
|
|
;; http://idlwave.org
|
|
|
|
|
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
|
|
(eval-when-compile (require 'cl))
|
|
|
|
|
|
|
|
|
|
(defun idlwave-toolbar-make-button (image)
|
|
|
|
|
(if (featurep 'xemacs)
|
|
|
|
|
(toolbar-make-button-list image)
|
|
|
|
|
(list 'image :type 'xpm :data image)))
|
|
|
|
|
|
2005-08-09 11:42:05 +00:00
|
|
|
|
(defvar idlwave-toolbar)
|
2006-04-06 18:42:40 +00:00
|
|
|
|
(defvar default-toolbar)
|
2005-08-09 11:42:05 +00:00
|
|
|
|
(defvar idlwave-toolbar-is-possible)
|
|
|
|
|
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(if (not (or (and (featurep 'xemacs) ; This is XEmacs
|
|
|
|
|
(featurep 'xpm) ; need xpm
|
|
|
|
|
(featurep 'toolbar)) ; ... and the toolbar
|
|
|
|
|
(and (not (featurep 'xemacs)) ; This is Emacs
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(boundp 'tool-bar-button-margin) ; need toolbar
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(fboundp 'image-type-available-p) ; need image stuff
|
|
|
|
|
(image-type-available-p 'xpm)) ; need xpm
|
|
|
|
|
))
|
|
|
|
|
;; oops - cannot do the toolbar
|
|
|
|
|
(message "Sorry, IDLWAVE xpm toolbar cannot be used on this version of Emacs")
|
|
|
|
|
;; OK, we can define a toolbar
|
|
|
|
|
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(defconst idlwave-toolbar-is-possible t
|
|
|
|
|
"When defined, indicates that a toolbar is possible with this Emacs.")
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(defvar idlwave-toolbar-compile-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 2 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" .. ... .. \",
|
|
|
|
|
\" .... ... .... \",
|
|
|
|
|
\" ............. \",
|
|
|
|
|
\" ........... \",
|
|
|
|
|
\" ................... \",
|
|
|
|
|
\" ........ ........ \",
|
|
|
|
|
\" ..... ........ \",
|
|
|
|
|
\" .... ......... \",
|
|
|
|
|
\" ..... .. ... ..... \",
|
|
|
|
|
\" ...... .. .. ...... \",
|
|
|
|
|
\" ..... ... .. ..... \",
|
|
|
|
|
\" ......... .... \",
|
|
|
|
|
\" ........ ..... \",
|
|
|
|
|
\" ........ ........ \",
|
|
|
|
|
\" ................... \",
|
|
|
|
|
\" ........... \",
|
|
|
|
|
\" ............. \",
|
|
|
|
|
\" .... ... .... \",
|
|
|
|
|
\" .. ... .. \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The compile icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-next-error-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" R \",
|
|
|
|
|
\" RR RRR RR \",
|
|
|
|
|
\" RRRR RRR RRRR \",
|
|
|
|
|
\" RRRRRRRRRRRRR \",
|
|
|
|
|
\" RRRRRRRRRRR \",
|
|
|
|
|
\" RRRRRRRRRRRRRRRRRRR \",
|
|
|
|
|
\" RRRRRRRR \",
|
|
|
|
|
\" RRRRR \",
|
|
|
|
|
\" RRRR \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" ......... \",
|
|
|
|
|
\" ..... .. ... ..... \",
|
|
|
|
|
\" ...... .. .. ...... \",
|
|
|
|
|
\" ..... ... .. ..... \",
|
|
|
|
|
\" ......... .... \",
|
|
|
|
|
\" ........ ..... \",
|
|
|
|
|
\" ........ ........ \",
|
|
|
|
|
\" ................... \",
|
|
|
|
|
\" ........... \",
|
|
|
|
|
\" ............. \",
|
|
|
|
|
\" .... ... .... \",
|
|
|
|
|
\" .. ... .. \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Next Error icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-stop-at-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" .RRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRR. \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Stop At icon.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-clear-at-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ... ... \",
|
|
|
|
|
\" ... ........ ... \",
|
|
|
|
|
\" ... .RRRRRRRR. ... \",
|
|
|
|
|
\" ....RRRRRRRRRR.... \",
|
|
|
|
|
\" ...RRRRRRRRRR... \",
|
|
|
|
|
\" ....RRRRRRRR.... \",
|
|
|
|
|
\" .RR...RRRRRR...RR. \",
|
|
|
|
|
\" .RRRR...RRRR...RRRR. \",
|
|
|
|
|
\" .RRRRR...RR...RRRRR. \",
|
|
|
|
|
\" .RRRRRR......RRRRRR. \",
|
|
|
|
|
\" .RRRRRRR....RRRRRRR. \",
|
|
|
|
|
\" .RRRRRRR....RRRRRRR. \",
|
|
|
|
|
\" .RRRRRR......RRRRRR. \",
|
|
|
|
|
\" .RRRRR...RR...RRRRR. \",
|
|
|
|
|
\" .RRRR...RRRR...RRRR. \",
|
|
|
|
|
\" .RR...RRRRRR...RR. \",
|
|
|
|
|
\" ....RRRRRRRR.... \",
|
|
|
|
|
\" ...RRRRRRRRRR... \",
|
|
|
|
|
\" ....RRRRRRRRRR.... \",
|
|
|
|
|
\" ... .RRRRRRRR. ... \",
|
|
|
|
|
\" ... ........ ... \",
|
|
|
|
|
\" ... ... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Clear At icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-clear-all-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 4 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"X c #FFFFFFFFFFFF\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" .. .... .... .. \",
|
|
|
|
|
\" ...RRRR. .RRRR... \",
|
|
|
|
|
\" ...RRRR. .RRRR... \",
|
|
|
|
|
\" .R...RRRR. .RRRR...R. \",
|
|
|
|
|
\" .RR...RRR. .RRR...RR. \",
|
|
|
|
|
\" .RRR...RR. .RR...RRR. \",
|
|
|
|
|
\" .RRRR...R. .R...RRRR. \",
|
|
|
|
|
\" .RRRR... ...RRRR. \",
|
|
|
|
|
\" .RRRR... ...RRRR. \",
|
|
|
|
|
\" .... ... ... .... \",
|
|
|
|
|
\" ..... \",
|
|
|
|
|
\" ... \",
|
|
|
|
|
\" .... ..... .... \",
|
|
|
|
|
\" .RRRR.... ....RRRR. \",
|
|
|
|
|
\" .RRRRR... ...RRRRR. \",
|
|
|
|
|
\" .RRRRR.... ....RRRRR. \",
|
|
|
|
|
\" .RRRR...R. .R...RRRR. \",
|
|
|
|
|
\" .RRR...RR. .RR...RRR. \",
|
|
|
|
|
\" .RR...RRR. .RRR...RR. \",
|
|
|
|
|
\" ....RRR. .RRR.... \",
|
|
|
|
|
\" ...RRR. .RRR... \",
|
|
|
|
|
\" ....... ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Clear-All icon.")
|
|
|
|
|
|
2004-11-17 05:54:20 +00:00
|
|
|
|
(defvar idlwave-toolbar-stop-beginning-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 4 1\",
|
|
|
|
|
\" c None s backgroundToolBarColor\",
|
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"X c #FFFF00000000\",
|
|
|
|
|
\"_ c #FFFFFFFFFFFF\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" .XXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXXXXXX. \",
|
|
|
|
|
\" .XX..XXXXXXXXXX. \",
|
|
|
|
|
\" .XX.XX.X______XXX. \",
|
|
|
|
|
\" .XXX.XX.X______XXXX. \",
|
|
|
|
|
\" .XXXX..XXXXXXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXXXX____XXXX. \",
|
|
|
|
|
\" .XXXXXXXXXX____XXXX. \",
|
|
|
|
|
\" .XXXXXXXXXXXXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXXXX____XXXX. \",
|
|
|
|
|
\" .XXXXXXXXXX____XXXX. \",
|
|
|
|
|
\" .XXXXXXXXXXXXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXXX____XXX. \",
|
|
|
|
|
\" .XXXXXXXX____XX. \",
|
|
|
|
|
\" .XXXXXXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXXXX. \",
|
|
|
|
|
\" .XXXXXXXX. \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Stop at Beginning icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-stop-in-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 4 1\",
|
|
|
|
|
\" c None s backgroundToolBarColor\",
|
|
|
|
|
\"_ c #FFFFFFFFFFFF\",
|
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" .RRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRR___RR___RRR. \",
|
|
|
|
|
\" .RRRR__RRRR__RRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRR__RRRRRR__RRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRRR__RRRR__RRRRR. \",
|
|
|
|
|
\" .RRRR___RR___RRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRRRR. \",
|
|
|
|
|
\" .RRRRRRRR. \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Stop in icon.")
|
|
|
|
|
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(defvar idlwave-toolbar-edit-cmd-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 2 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ................. \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The edit-cmd icon")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-run-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". s FgColor c #000000000000\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ..... \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .GGG. ....... \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .GGG. ....... \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" ....GGG.... \",
|
|
|
|
|
\" .GGGGGGG. ....... \",
|
|
|
|
|
\" .GGGGG. \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .G. ....... \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Run icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-cont-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". s FgColor c #000000000000\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" .GGGGGG. ....... \",
|
|
|
|
|
\" .GGGGGGG. \",
|
|
|
|
|
\" .GGG..... \",
|
|
|
|
|
\" .GGG. ....... \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .GGG. ....... \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" ....GGG.... \",
|
|
|
|
|
\" .GGGGGGG. ....... \",
|
|
|
|
|
\" .GGGGG. \",
|
|
|
|
|
\" .GGG. \",
|
|
|
|
|
\" .G. ....... \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
2004-11-17 05:54:20 +00:00
|
|
|
|
"The Cont icon.")
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-to-here-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 4 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ..... ........ \",
|
|
|
|
|
\" .GGGG. \",
|
|
|
|
|
\" .GGGGG. \",
|
|
|
|
|
\" .GG.... ........ \",
|
|
|
|
|
\" .GG. \",
|
|
|
|
|
\" .GG. . \",
|
|
|
|
|
\" .GG. .. \",
|
|
|
|
|
\" .GG. .G. ...... \",
|
|
|
|
|
\" .GG...GG. \",
|
|
|
|
|
\" .GGGGGGGG. RRRRRR \",
|
|
|
|
|
\" .GGGGGGGGG. RRRRRR \",
|
|
|
|
|
\" .GGGGGGG. RRRRRR \",
|
|
|
|
|
\" ....GG. \",
|
|
|
|
|
\" .G. ...... \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Cont-to-here icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-step-over-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ..... \",
|
|
|
|
|
\" .GGGG. ....... \",
|
|
|
|
|
\" .GGGGG. \",
|
|
|
|
|
\" .GG.... \",
|
|
|
|
|
\" .GG. ....... \",
|
|
|
|
|
\" .GG. . \",
|
|
|
|
|
\" .GG. .. \",
|
|
|
|
|
\" .GG. .G. ....... \",
|
|
|
|
|
\" .GG...GG. \",
|
|
|
|
|
\" .GGGGGGGG. \",
|
|
|
|
|
\" .GGGGGGGGG. ....... \",
|
|
|
|
|
\" .GGGGGGG. \",
|
|
|
|
|
\" ....GG. \",
|
|
|
|
|
\" .G. ....... \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Step Over icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-step-into-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ..... ....... \",
|
|
|
|
|
\" .GGGG. \",
|
|
|
|
|
\" .GGGGG. \",
|
|
|
|
|
\" .GG.... ........ \",
|
|
|
|
|
\" .GG. \",
|
|
|
|
|
\" .GG. . \",
|
|
|
|
|
\" .GG. .. \",
|
|
|
|
|
\" .GG. .G. \",
|
|
|
|
|
\" .GG...GG. ....... \",
|
|
|
|
|
\" .GGGGGGGG. \",
|
|
|
|
|
\" .GGGGGGGGG. \",
|
|
|
|
|
\" .GGGGGGG. ....... \",
|
|
|
|
|
\" ....GG. \",
|
|
|
|
|
\" .G. \",
|
|
|
|
|
\" .. ....... \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Step Into icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-step-out-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" .. ........ \",
|
|
|
|
|
\" .G. \",
|
|
|
|
|
\" ....GG. \",
|
|
|
|
|
\" .GGGGGGG. ........ \",
|
|
|
|
|
\" .GGGGGGGGG. \",
|
|
|
|
|
\" .GGGGGGGG. \",
|
|
|
|
|
\" .GG...GG. ........ \",
|
|
|
|
|
\" .GG. .G. \",
|
|
|
|
|
\" .GG. .. \",
|
|
|
|
|
\" .GG. . \",
|
|
|
|
|
\" .GG. \",
|
|
|
|
|
\" .GG....... ....... \",
|
|
|
|
|
\" .GGGGGGGG. \",
|
|
|
|
|
\" .GGGGGGG. \",
|
|
|
|
|
\" ........ ....... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Step up icon.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-eval-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 2 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" .... \",
|
|
|
|
|
\" .. .. ...... \",
|
|
|
|
|
\" .. .. ...... \",
|
|
|
|
|
\" .. .. \",
|
|
|
|
|
\" .. .. ...... \",
|
|
|
|
|
\" .. .. ...... \",
|
|
|
|
|
\" .... \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Evaluate icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-stack-up-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 5 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". s FgColor c #000000000000\",
|
|
|
|
|
\"_ c #FFFFFFFFFFFF\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ........ . \",
|
|
|
|
|
\" .______. ... \",
|
|
|
|
|
\" .______. ..... \",
|
|
|
|
|
\" .______. ....... \",
|
|
|
|
|
\" .______. ... \",
|
|
|
|
|
\" .______. ... \",
|
|
|
|
|
\" ........ ... \",
|
|
|
|
|
\" .GGGGGG. ... \",
|
|
|
|
|
\" .GGGGGG. ... \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" .RRRRRR. \",
|
|
|
|
|
\" .RRRRRR. \",
|
|
|
|
|
\" .RRRRRR. \",
|
|
|
|
|
\" .RRRRRR. \",
|
|
|
|
|
\" .RRRRRR. \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Stack Up icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-stack-down-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 5 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\". s FgColor c #000000000000\",
|
|
|
|
|
\"_ c #FFFFFFFFFFFF\",
|
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\"R c #FFFF00000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" .______. \",
|
|
|
|
|
\" .______. \",
|
|
|
|
|
\" .______. \",
|
|
|
|
|
\" .______. \",
|
|
|
|
|
\" .______. \",
|
|
|
|
|
\" ........ \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" .GGGGGG. ... \",
|
|
|
|
|
\" .GGGGGG. ... \",
|
|
|
|
|
\" ........ ... \",
|
|
|
|
|
\" .RRRRRR. ... \",
|
|
|
|
|
\" .RRRRRR. ... \",
|
|
|
|
|
\" .RRRRRR. ....... \",
|
|
|
|
|
\" .RRRRRR. ..... \",
|
|
|
|
|
\" .RRRRRR. ... \",
|
|
|
|
|
\" ........ . \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Stack Down icon.")
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-toolbar-reset-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 3 1\",
|
2002-07-18 18:58:07 +00:00
|
|
|
|
\" c None s backgroundToolBarColor\",
|
2000-01-03 14:23:13 +00:00
|
|
|
|
\"G c #0000BBBB0000\",
|
|
|
|
|
\". c #000000000000\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" . \",
|
|
|
|
|
\" .G. . \",
|
|
|
|
|
\" .GGG.. .G. \",
|
|
|
|
|
\" .GGGGG..GG. \",
|
|
|
|
|
\" ..GGGGGGGG. \",
|
|
|
|
|
\" ..GGGGGG. \",
|
|
|
|
|
\" ..GGGGG. \",
|
|
|
|
|
\" .GGGGGG. \",
|
|
|
|
|
\" .G...... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" ..... \",
|
|
|
|
|
\" ......... \",
|
|
|
|
|
\" ......... \",
|
|
|
|
|
\" ......... \",
|
|
|
|
|
\" . ..... . \",
|
|
|
|
|
\" . . \",
|
|
|
|
|
\" . . \",
|
|
|
|
|
\" . . \",
|
|
|
|
|
\" . . \",
|
|
|
|
|
\" . . \",
|
|
|
|
|
\" .. .. \",
|
|
|
|
|
\" ....... \",
|
|
|
|
|
\" ..... \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The Reset icon.")
|
|
|
|
|
|
2004-11-17 05:54:20 +00:00
|
|
|
|
(defvar idlwave-toolbar-electric-debug-icon
|
|
|
|
|
(idlwave-toolbar-make-button
|
|
|
|
|
"/* XPM */
|
|
|
|
|
static char * file[] = {
|
|
|
|
|
\"28 28 8 1\",
|
|
|
|
|
\" c None s backgroundToolBarColor\",
|
|
|
|
|
\". c #CFC854\",
|
|
|
|
|
\"+ c #EEDB0E\",
|
|
|
|
|
\"@ c #D2C739\",
|
|
|
|
|
\"# c #A39C54\",
|
|
|
|
|
\"$ c #CDC020\",
|
|
|
|
|
\"% c #020202\",
|
|
|
|
|
\"& c #D60E36\",
|
|
|
|
|
\" \",
|
|
|
|
|
\" \",
|
|
|
|
|
\" .. \",
|
|
|
|
|
\" +++++@ \",
|
|
|
|
|
\" ++++++ \",
|
|
|
|
|
\" +++++@ \",
|
|
|
|
|
\" +++++ \",
|
|
|
|
|
\" #++++@ \",
|
|
|
|
|
\" $+++@ %% %% \",
|
|
|
|
|
\" ++++++$ % % \",
|
|
|
|
|
\" #+++++$ % % \",
|
|
|
|
|
\" #++$# %%% \",
|
|
|
|
|
\" #+++ %%%%%%% \",
|
|
|
|
|
\" .++ %%%%%%%%%%% \",
|
|
|
|
|
\" ++$$ %%%%%%%%%%% \",
|
|
|
|
|
\" .+@# &&%%%%%%%&& \",
|
|
|
|
|
\" .++++# &&&&&%%%&&&&& \",
|
|
|
|
|
\" +++++$ &&%%&&&&&%%&& \",
|
|
|
|
|
\" $+++$ &&%%&&&&&%%&& \",
|
|
|
|
|
\" $++@ &&&&&&%&&&&&& \",
|
|
|
|
|
\" $+@ &&&&&&%&&&&&& \",
|
|
|
|
|
\" @+ &&%%&&&&&%%&& \",
|
|
|
|
|
\" ++. &%%&&%&&%%& \",
|
|
|
|
|
\" +. &&&&%%%&&&& \",
|
|
|
|
|
\" .+ &&%%%%%&& \",
|
|
|
|
|
\" ++ %%%%%%% \",
|
|
|
|
|
\" . %%% \",
|
|
|
|
|
\" \"};")
|
|
|
|
|
"The electric debug icon.")
|
|
|
|
|
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(defvar idlwave-toolbar
|
|
|
|
|
'(
|
|
|
|
|
[idlwave-toolbar-compile-icon
|
|
|
|
|
idlwave-shell-save-and-compile
|
|
|
|
|
t
|
|
|
|
|
"Save and Compile this file (or recompile last)"]
|
|
|
|
|
[idlwave-toolbar-next-error-icon
|
|
|
|
|
idlwave-shell-goto-next-error
|
|
|
|
|
t
|
|
|
|
|
"Goto Next Error"]
|
|
|
|
|
[idlwave-toolbar-stop-at-icon
|
|
|
|
|
idlwave-shell-break-here
|
|
|
|
|
(eq major-mode 'idlwave-mode)
|
|
|
|
|
"Set Breakpoint at selected position"]
|
|
|
|
|
[idlwave-toolbar-clear-at-icon
|
|
|
|
|
idlwave-shell-clear-current-bp
|
|
|
|
|
t
|
|
|
|
|
"Clear Breakpoint at selected position"]
|
|
|
|
|
[idlwave-toolbar-clear-all-icon
|
|
|
|
|
idlwave-shell-clear-all-bp
|
|
|
|
|
t
|
|
|
|
|
"Clear all Breakpoints"]
|
2004-11-17 05:54:20 +00:00
|
|
|
|
[idlwave-toolbar-stop-beginning-icon
|
|
|
|
|
idlwave-shell-break-this-module
|
|
|
|
|
(eq major-mode 'idlwave-mode)
|
|
|
|
|
"Stop at beginning of enclosing Routine"]
|
|
|
|
|
[idlwave-toolbar-stop-in-icon
|
|
|
|
|
idlwave-shell-break-in
|
|
|
|
|
t
|
|
|
|
|
"Stop in Routine with name near point"]
|
2000-01-03 14:23:13 +00:00
|
|
|
|
[idlwave-toolbar-edit-cmd-icon
|
|
|
|
|
idlwave-shell-edit-default-command-line
|
|
|
|
|
t
|
|
|
|
|
"Edit Default Command Line"]
|
|
|
|
|
[idlwave-toolbar-run-icon
|
|
|
|
|
idlwave-shell-execute-default-command-line
|
|
|
|
|
t
|
|
|
|
|
"Reset, then Execute Default Command Line"]
|
|
|
|
|
[idlwave-toolbar-cont-icon
|
|
|
|
|
idlwave-shell-cont
|
|
|
|
|
t
|
|
|
|
|
"Continue Current Program"]
|
|
|
|
|
[idlwave-toolbar-to-here-icon
|
|
|
|
|
idlwave-shell-to-here
|
|
|
|
|
(eq major-mode 'idlwave-mode)
|
|
|
|
|
"Continue to Here (cursor position)"]
|
|
|
|
|
[idlwave-toolbar-step-over-icon
|
|
|
|
|
idlwave-shell-stepover
|
|
|
|
|
t
|
|
|
|
|
"Step Over (aka next)"]
|
|
|
|
|
[idlwave-toolbar-step-into-icon
|
|
|
|
|
idlwave-shell-step
|
|
|
|
|
t
|
|
|
|
|
"Step Into (aka step)"]
|
|
|
|
|
[idlwave-toolbar-step-out-icon
|
|
|
|
|
idlwave-shell-out
|
|
|
|
|
t
|
|
|
|
|
"Step Out (of subroutine)"]
|
|
|
|
|
[idlwave-toolbar-eval-icon
|
|
|
|
|
idlwave-shell-print
|
|
|
|
|
t
|
|
|
|
|
"Print Expression at or before Point"]
|
|
|
|
|
[idlwave-toolbar-stack-up-icon
|
|
|
|
|
idlwave-shell-stack-up
|
|
|
|
|
t
|
|
|
|
|
"Stack Up (towards \"cooler\" - less recently visited - frames)"]
|
|
|
|
|
[idlwave-toolbar-stack-down-icon
|
|
|
|
|
idlwave-shell-stack-down
|
|
|
|
|
t
|
|
|
|
|
"Stack Down (towards \"warmer\" - more recently visited - frames)"]
|
|
|
|
|
[idlwave-toolbar-reset-icon
|
|
|
|
|
idlwave-shell-reset
|
|
|
|
|
t
|
|
|
|
|
"Reset IDL (RETALL & CLOSE,/ALL and more)"]
|
2004-11-17 05:54:20 +00:00
|
|
|
|
[idlwave-toolbar-electric-debug-icon
|
|
|
|
|
idlwave-shell-electric-debug-mode
|
|
|
|
|
(eq major-mode 'idlwave-mode)
|
|
|
|
|
"Toggle Electric Debug Mode"]
|
2000-01-03 14:23:13 +00:00
|
|
|
|
))
|
|
|
|
|
|
2000-02-04 10:08:49 +00:00
|
|
|
|
;; When the shell exits, arrange to remove the special toolbar everywhere.
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(add-hook 'idlwave-shell-cleanup-hook
|
|
|
|
|
'idlwave-toolbar-remove-everywhere)
|
|
|
|
|
);; End can define toolbar
|
|
|
|
|
|
|
|
|
|
(defun idlwave-toolbar-add ()
|
|
|
|
|
"Add the IDLWAVE toolbar if appropriate."
|
|
|
|
|
(if (and (featurep 'xemacs) ; This is a noop on Emacs
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(boundp 'idlwave-toolbar-is-possible)
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(or (eq major-mode 'idlwave-mode)
|
|
|
|
|
(eq major-mode 'idlwave-shell-mode)))
|
|
|
|
|
(set-specifier default-toolbar (cons (current-buffer)
|
|
|
|
|
idlwave-toolbar))))
|
|
|
|
|
|
|
|
|
|
(defun idlwave-toolbar-remove ()
|
|
|
|
|
"Add the IDLWAVE toolbar if appropriate."
|
|
|
|
|
(if (and (featurep 'xemacs) ; This is a noop on Emacs
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(boundp 'idlwave-toolbar-is-possible)
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(or (eq major-mode 'idlwave-mode)
|
|
|
|
|
(eq major-mode 'idlwave-shell-mode)))
|
|
|
|
|
(remove-specifier default-toolbar (current-buffer))))
|
|
|
|
|
|
|
|
|
|
(defvar idlwave-shell-mode-map)
|
2000-06-20 12:49:47 +00:00
|
|
|
|
(defvar idlwave-mode-map)
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(defvar idlwave-toolbar-visible nil)
|
|
|
|
|
(defun idlwave-toolbar-add-everywhere ()
|
|
|
|
|
"Add the toolbar in all appropriate buffers."
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(when (boundp 'idlwave-toolbar-is-possible)
|
|
|
|
|
|
|
|
|
|
;; First make sure new buffers will get the toolbar
|
|
|
|
|
(add-hook 'idlwave-mode-hook 'idlwave-toolbar-add)
|
|
|
|
|
;; Then add it to all existing buffers
|
|
|
|
|
(if (featurep 'xemacs)
|
|
|
|
|
;; For XEmacs, map over all buffers to add toolbar
|
|
|
|
|
(save-excursion
|
|
|
|
|
(mapcar (lambda (buf)
|
|
|
|
|
(set-buffer buf)
|
|
|
|
|
(idlwave-toolbar-add))
|
|
|
|
|
(buffer-list)))
|
|
|
|
|
;; For Emacs, add the key definitions to the mode maps
|
2007-10-13 02:58:56 +00:00
|
|
|
|
(mapc (lambda (x)
|
|
|
|
|
(let* ((icon (aref x 0))
|
|
|
|
|
(func (aref x 1))
|
|
|
|
|
(show (aref x 2))
|
|
|
|
|
(help (aref x 3))
|
|
|
|
|
(key (vector 'tool-bar func))
|
|
|
|
|
(def (list 'menu-item
|
|
|
|
|
"a"
|
|
|
|
|
func
|
|
|
|
|
:image (symbol-value icon)
|
|
|
|
|
:visible show
|
|
|
|
|
:help help)))
|
|
|
|
|
(define-key idlwave-mode-map key def)
|
|
|
|
|
(define-key idlwave-shell-mode-map key def)))
|
|
|
|
|
(reverse idlwave-toolbar)))
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(setq idlwave-toolbar-visible t)))
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
(defun idlwave-toolbar-remove-everywhere ()
|
|
|
|
|
"Remove the toolbar in all appropriate buffers."
|
|
|
|
|
;; First make sure new buffers won't get the toolbar
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(when idlwave-toolbar-is-possible
|
|
|
|
|
(remove-hook 'idlwave-mode-hook 'idlwave-toolbar-add)
|
|
|
|
|
;; Then remove it in all existing buffers.
|
|
|
|
|
(if (featurep 'xemacs)
|
|
|
|
|
;; For XEmacs, map over all buffers to remove toolbar
|
|
|
|
|
(save-excursion
|
|
|
|
|
(mapcar (lambda (buf)
|
|
|
|
|
(set-buffer buf)
|
|
|
|
|
(idlwave-toolbar-remove))
|
|
|
|
|
(buffer-list)))
|
|
|
|
|
;; For Emacs, remove the key definitions from the mode maps
|
2007-10-13 02:58:56 +00:00
|
|
|
|
(mapc (lambda (x)
|
|
|
|
|
(let* (;;(icon (aref x 0))
|
|
|
|
|
(func (aref x 1))
|
|
|
|
|
;;(show (aref x 2))
|
|
|
|
|
;;(help (aref x 3))
|
|
|
|
|
(key (vector 'tool-bar func)))
|
|
|
|
|
(define-key idlwave-mode-map key nil)
|
|
|
|
|
(define-key idlwave-shell-mode-map key nil)))
|
|
|
|
|
idlwave-toolbar))
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(setq idlwave-toolbar-visible nil)))
|
|
|
|
|
|
|
|
|
|
(defun idlwave-toolbar-toggle (&optional force-on)
|
2000-01-03 14:23:13 +00:00
|
|
|
|
(interactive)
|
|
|
|
|
(if idlwave-toolbar-visible
|
2000-02-04 10:08:49 +00:00
|
|
|
|
(or force-on (idlwave-toolbar-remove-everywhere))
|
2000-06-20 12:49:47 +00:00
|
|
|
|
(idlwave-toolbar-add-everywhere))
|
|
|
|
|
;; Now make sure this
|
|
|
|
|
(if (featurep 'xemacs)
|
|
|
|
|
nil ; no action necessary, toolbar gets updated automatically
|
|
|
|
|
;; On Emacs, redraw the frame to make sure the Toolbar is updated.
|
|
|
|
|
(redraw-frame (selected-frame))))
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
|
|
|
|
(provide 'idlw-toolbar)
|
2000-01-05 08:52:21 +00:00
|
|
|
|
(provide 'idlwave-toolbar)
|
2000-01-03 14:23:13 +00:00
|
|
|
|
|
2004-11-17 11:52:34 +00:00
|
|
|
|
;; arch-tag: ec9a3717-c44c-4716-9bda-cdacbe5ddb62
|
2000-01-03 14:23:13 +00:00
|
|
|
|
;;; idlw-toolbar.el ends here
|