forked from FG42/FG42
Old files removed and install script improved
This commit is contained in:
parent
9db9615dbe
commit
d1ab2642b6
|
@ -1,4 +1,5 @@
|
|||
conf/emacs.d/session*
|
||||
kuso.config.el
|
||||
./kuso.config.el
|
||||
kuso.d/*
|
||||
.build/*
|
||||
*~
|
||||
|
|
3
bin/kuso
3
bin/kuso
|
@ -1,3 +0,0 @@
|
|||
#! /bin/sh
|
||||
|
||||
emacs --no-splash --name KusoIDE --title KusoIDE -q -l ~/.kuso $1
|
|
@ -1,15 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Encoding=UTF-8
|
||||
Name=Kuso IDE
|
||||
GenericName=Development Environment
|
||||
Comment=GNU/Emacs based development IDE
|
||||
MimeType=text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;text/x-script.phyton;application/x-javascript;application/x-pointplus;
|
||||
StartupNotify=true
|
||||
Categories=GNOME;Development;IDE;
|
||||
Exec=--HOME--/.kuso.d/kuso %F
|
||||
TryExec=kuso
|
||||
Icon=--HOME--/.kuso.d/icon.svg
|
||||
Type=Application
|
||||
Terminal=false
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
epylint "$1" 2>/dev/null
|
||||
pyflakes "$1"
|
||||
pep8 --ignore=E221,E701,E202 --repeat "$1"
|
||||
true
|
||||
|
258
conf/dotemacs
258
conf/dotemacs
|
@ -1,258 +0,0 @@
|
|||
;; Setup load directory
|
||||
(add-to-list 'load-path "~/.emacs.d/")
|
||||
|
||||
;; General configuration ---------------------------------------------------------
|
||||
(tool-bar-mode -1)
|
||||
(scroll-bar-mode -1)
|
||||
(setq x-select-enable-clipboard t)
|
||||
(column-number-mode t)
|
||||
(global-linum-mode)
|
||||
|
||||
;; Setting up color them -------------------------------------------------------
|
||||
(require 'color-theme)
|
||||
(eval-after-load "color-theme"
|
||||
'(progn
|
||||
(color-theme-initialize)
|
||||
(color-theme-arjen)
|
||||
))
|
||||
|
||||
;; Setting up customization -----------------------------------------------------
|
||||
(custom-set-variables
|
||||
;; custom-set-variables was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(c-plugin nil)
|
||||
;'(color-theme-selection "Arjen" nil (color-theme_seldefcustom))
|
||||
'(developer-email "--EMAIL--")
|
||||
'(developer-name "--FULLNAME--")
|
||||
'(kuso-workspace "--WORKSPACE--")
|
||||
'(face-font-family-alternatives (quote (("courier" "Monospace" "fixed") ("courier" "CMU Typewriter Text" "fixed") ("Sans Serif" "helv" "helvetica" "arial" "fixed") ("helv" "helvetica" "arial" "fixed"))))
|
||||
'(inhibit-startup-screen t)
|
||||
'(rng-nxml-auto-validate-flag nil))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(font-lock-comment-face ((t (:foreground "orange red"))))
|
||||
'(font-lock-keyword-face ((t (:foreground "DeepSkyBlue1")))))
|
||||
|
||||
(set-frame-font "Terminus-9")
|
||||
|
||||
;; HideShow --------------------
|
||||
(load-library "hideshow")
|
||||
(global-set-key (kbd "C-\-") 'hs-toggle-hiding)
|
||||
(global-set-key (kbd "C-\\") 'toggle-selective-display)
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook 'hs-minor-mode)
|
||||
(add-hook 'java-mode-hook 'hs-minor-mode)
|
||||
(add-hook 'lisp-mode-hook 'hs-minor-mode)
|
||||
(add-hook 'perl-mode-hook 'hs-minor-mode)
|
||||
(add-hook 'sh-mode-hook 'hs-minor-mode)
|
||||
(add-hook 'python-mode-hook 'hs-minor-mode)
|
||||
(add-hook 'js-mode-hook 'hs-minor-mode)
|
||||
|
||||
(require 'fringe-helper)
|
||||
(autoload 'hideshowvis-enable "hideshowvis" "Highlight foldable regions")
|
||||
(autoload 'hideshowvis-minor-mode
|
||||
"hideshowvis"
|
||||
"Will indicate regions foldable with hideshow in the fringe."
|
||||
'interactive)
|
||||
(dolist (hook (list 'emacs-lisp-mode-hook
|
||||
'c++-mode-hook
|
||||
'python-mode-hook))
|
||||
(add-hook hook 'hideshowvis-enable))
|
||||
|
||||
|
||||
;; auto complete ------------------------------------------------------------
|
||||
(require 'auto-complete-config)
|
||||
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
|
||||
(ac-config-default)
|
||||
|
||||
(global-auto-complete-mode t)
|
||||
|
||||
;;dabbrev;;
|
||||
;; dabbrev configuration ----------------------------------------------------------
|
||||
(require 'ac-dabbrev)
|
||||
(setq ac-sources
|
||||
(list ac-source-dabbrev
|
||||
))
|
||||
(global-set-key (kbd "<backtab>") 'dabbrev-expand)
|
||||
;;/dabbrev;;
|
||||
|
||||
;; ssh configuration ---------------------------------------------------------
|
||||
(setq tramp-default-method "ssh")
|
||||
|
||||
;;python-mode;;
|
||||
;; python configuration ------------------------------------------------------
|
||||
(autoload 'python-mode "python-mode" "Python Mode." t)
|
||||
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
|
||||
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
|
||||
(require 'python-mode)
|
||||
(define-key py-mode-map (kbd "\C-c @") 'uncomment-region)
|
||||
|
||||
(autoload 'python-pylint "python-pylint")
|
||||
(autoload 'pylint "python-pylint")
|
||||
|
||||
;;/python-mode;;
|
||||
|
||||
;;python-autocomplete;;
|
||||
;; python autocomplete -------------------------------------------------------
|
||||
(require 'deferred)
|
||||
(require 'epc)
|
||||
(autoload 'jedi:setup "jedi" nil t)
|
||||
(add-hook 'python-mode-hook 'jedi:setup)
|
||||
(setq jedi:setup-keys t)
|
||||
;;/python-autocomplete;;
|
||||
|
||||
;;php-mode;;
|
||||
;; php-mode -------------------------------------------------------------------
|
||||
(autoload 'php-mode "php-mode" "PHP editing mode" t)
|
||||
(add-to-list 'auto-mode-alist '("\\.php\\'" . php-mode))
|
||||
;;/php-mode;;
|
||||
|
||||
|
||||
;;yasnippet;;
|
||||
;; yasnippet configuration ----------------------------------------------------
|
||||
(require 'yasnippet)
|
||||
(yas/initialize)
|
||||
(yas/load-directory "~/.emacs.d/snippets")
|
||||
;;/yasnippet;;
|
||||
|
||||
;; flymake --------------------------------------------------------------------
|
||||
(require 'flymake)
|
||||
(add-hook 'find-file-hook 'flymake-find-file-hook)
|
||||
|
||||
;; pyflymake ------------------------------------------------------------------
|
||||
(when (load "flymake" t)
|
||||
(defun flymake-pyflakes-init ()
|
||||
(let* ((temp-file (flymake-init-create-temp-buffer-copy
|
||||
'flymake-create-temp-inplace))
|
||||
(local-file (file-relative-name
|
||||
temp-file
|
||||
(file-name-directory buffer-file-name))))
|
||||
(list "--ADDR--/pyemacs.sh" (list local-file))))
|
||||
(add-to-list 'flymake-allowed-file-name-masks
|
||||
'("\\.py$" flymake-pyflakes-init)))
|
||||
|
||||
;; html flymake ---------------------------------------------------------------
|
||||
(defun flymake-html-init ()
|
||||
(let* ((temp-file (flymake-init-create-temp-buffer-copy
|
||||
'flymake-create-temp-inplace))
|
||||
(local-file (file-relative-name
|
||||
temp-file
|
||||
(file-name-directory buffer-file-name))))
|
||||
(list "tidy" (list local-file))))
|
||||
|
||||
(add-to-list 'flymake-allowed-file-name-masks
|
||||
'("\\.html$\\|\\.ctp" flymake-html-init))
|
||||
|
||||
(add-to-list 'flymake-err-line-patterns
|
||||
'("line \\([0-9]+\\) column \\([0-9]+\\) - \\(Warning\\|Error\\): \\(.*\\)"
|
||||
nil 1 2 4))
|
||||
|
||||
l;; css flymake -----------------------------------------------------------------
|
||||
(defun flymake-css-init ()
|
||||
(let* ((temp-file (flymake-init-create-temp-buffer-copy
|
||||
'flymake-create-temp-inplace))
|
||||
(local-file (file-relative-name
|
||||
temp-file
|
||||
(file-name-directory buffer-file-name))))
|
||||
(list "cssparse" (list local-file))))
|
||||
(add-to-list 'flymake-allowed-file-name-masks
|
||||
'("\\.css$" flymake-css-init))
|
||||
(add-to-list 'flymake-err-line-patterns
|
||||
'("\\(.*\\) \\[\\([0-9]+\\):\\([0-9]+\\): \\(.*\\)\\]"
|
||||
nil 2 3 1))
|
||||
(add-hook 'css-mode-hook
|
||||
(lambda () (flymake-mode t)))
|
||||
|
||||
;; flymake shortkeys --------------------------------------------------------------
|
||||
(global-set-key (kbd "\C-x a") 'flymake-display-err-menu-for-current-line)
|
||||
(global-set-key (kbd "\C-x p") 'flymake-goto-next-error)
|
||||
|
||||
;; JS folding
|
||||
(add-hook 'js-mode-hook
|
||||
(lambda ()
|
||||
;; Scan the file for nested code blocks
|
||||
(imenu-add-menubar-index)
|
||||
;; Activate the folding mode
|
||||
(hs-minor-mode t)))
|
||||
|
||||
|
||||
;;clang-mode;;
|
||||
;; C configuration ----------------------------------------------------------------
|
||||
;; clang auto completion
|
||||
(require 'auto-complete-clang)
|
||||
(setq clang-completion-suppress-error 't)
|
||||
|
||||
(defun my-c-mode-common-hook()
|
||||
(setq ac-auto-start nil)
|
||||
(setq ac-expand-on-auto-complete nil)
|
||||
(setq ac-quick-help-delay 0.3)
|
||||
(define-key c-mode-base-map (kbd "M-3") 'ac-complete-clang)
|
||||
)
|
||||
|
||||
;; Linux style for c programming ------------------------------------------------
|
||||
(setq c-default-style '((java-mode . "java")
|
||||
(awk-mode . "awk")
|
||||
(other . "linux")))
|
||||
|
||||
(add-hook 'c-mode-common-hook 'hs-minor-mode)
|
||||
;;/clang-mode;;
|
||||
|
||||
;; KUSO configuration ------------------------------------------------------------
|
||||
(load-file "--KUSOHOME--/src/kuso-ide.el")
|
||||
(kuso-mode)
|
||||
|
||||
|
||||
;;org-mode;;
|
||||
;; org-mode ------------------------------------------------------
|
||||
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
|
||||
(add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when(global-set-key "\C-cl" 'org-store-link)
|
||||
(global-set-key "\C-ca" 'org-agenda)
|
||||
(global-set-key "\C-cb" 'org-iswitchb)
|
||||
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
;;/org-mode;;
|
||||
|
||||
;;cedet;;
|
||||
;; Configuring ECB and CEDET
|
||||
;;(load-file "~/.emacs.d/cedet/cedet-devel-load.el")
|
||||
;;(add-to-list 'semantic-default-submodes 'global-semantic-idle-summary-mode t)
|
||||
;;(add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode t)
|
||||
|
||||
;;(global-ede-mode 1)
|
||||
;;(semantic-load-enable-code-helpers)
|
||||
;;(global-srecode-minor-mode 1)
|
||||
(add-to-list 'load-path "~/.emacs.d/ecb/")
|
||||
;;(require 'ecb)
|
||||
;;/cedet;;
|
||||
|
||||
;;lua-mode;;
|
||||
;; Lua mode --------------------
|
||||
(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
|
||||
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
|
||||
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))
|
||||
(add-hook 'lua-mode-hook 'hs-minor-mode)
|
||||
;;/lua-mode;;
|
||||
|
||||
;;git-gutter;;
|
||||
;; git-gutter ------------------
|
||||
(require 'git-gutter)
|
||||
(require 'git-gutter-fringe)
|
||||
|
||||
(global-git-gutter-mode t)
|
||||
|
||||
(add-hook 'ruby-mode-hook 'git-gutter-mode)
|
||||
(add-hook 'python-mode-hook 'git-gutter-mode)
|
||||
|
||||
(global-set-key (kbd "C-x C-g") 'git-gutter:toggle)
|
||||
|
||||
(global-set-key (kbd "C-x p") 'git-gutter:previous-diff)
|
||||
(global-set-key (kbd "C-x n") 'git-gutter:next-diff)
|
||||
;;/git-gutter;;
|
||||
|
||||
(require 'haml-mode)
|
||||
(require 'sass-mode)
|
|
@ -1,54 +0,0 @@
|
|||
;;-*-coding: emacs-mule;-*-
|
||||
(define-abbrev-table 'Buffer-menu-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'comint-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'completion-list-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'django-html-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'django-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'emacs-lisp-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'fundamental-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'global-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'lisp-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'python-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'rst-mode-abbrev-table
|
||||
'(
|
||||
("con" ".. contents::
|
||||
..
|
||||
" nil 0)
|
||||
("cont" "[...]" nil 0)
|
||||
("contents" ".. contents::
|
||||
..
|
||||
" nil 0)
|
||||
("seq" "
|
||||
|
||||
[...]
|
||||
|
||||
" nil 0)
|
||||
("skip" "
|
||||
|
||||
[...]
|
||||
|
||||
" nil 0)
|
||||
))
|
||||
|
||||
(define-abbrev-table 'snippet-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'special-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'text-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'vc-hg-incoming-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'vc-hg-log-view-mode-abbrev-table '())
|
||||
|
||||
(define-abbrev-table 'vc-hg-outgoing-mode-abbrev-table '())
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,125 +0,0 @@
|
|||
;;; ac-dabbrev.el --- auto-complete.el source for dabbrev
|
||||
;; -*- Mode: Emacs-Lisp -*-
|
||||
|
||||
;; Copyright (C) 2009 by 101000code/101000LAB
|
||||
|
||||
;; This program 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 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program 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 this program; if not, write to the Free Software
|
||||
;; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
;; Version: 0.0.8
|
||||
;; Author: k1LoW (Kenichirou Oyama), <k1lowxb [at] gmail [dot] com> <k1low [at] 101000lab [dot] org>
|
||||
;; URL: http://code.101000lab.org, http://trac.codecheck.in
|
||||
|
||||
;;; Install
|
||||
;; Put this file into load-path'ed directory, and byte compile it if
|
||||
;; desired. And put the following expression into your ~/.emacs.
|
||||
;;
|
||||
;; (require 'ac-dabbrev)
|
||||
;; (setq ac-sources
|
||||
;; (list ac-source-dabbrev
|
||||
;; ))
|
||||
|
||||
;;; Change Log
|
||||
;; 0.0.8: fix parameter for auto-complete.el 1.0a
|
||||
;; 0.0.7: fix parameter for auto-complete.el 0.3.0
|
||||
;; 0.0.6: fix face for auto-complete.el 0.2.0
|
||||
;; 0.0.5: add face.
|
||||
;; 0.0.4: new valiable:ac-dabbrev-reset-char. this valiable is suga idea. this valiable reset count when this valiable have insert char.
|
||||
;; new valiable:ac-dabbrev-reset-always. reset count when ac-candidates is nil and this valiable non-nil.
|
||||
;; -.-.-: document typo fix.
|
||||
;; 0.0.3: new valiable:ac-dabbrev-sort. sort expansions.
|
||||
;; 0.0.2: new variable:ac-dabbrev-all-min-count. this valiable is anything-dabbrev-expand.el idea.
|
||||
;; 0.0.1: ac-dabbrev.el 0.0.1 released.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile (require 'cl))
|
||||
(require 'auto-complete)
|
||||
(require 'dabbrev)
|
||||
|
||||
(defvar ac-dabbrev-all-min-count 4)
|
||||
|
||||
(defvar ac-dabbrev-trigger-commands '(self-insert-command delete-backward-char)
|
||||
"Increment count when this valiable is last-command")
|
||||
|
||||
(defvar ac-dabbrev-reset-char nil
|
||||
"Reset count when this valiable have insert char.") ;(setq ac-dabbrev-reset-char '("-"))
|
||||
|
||||
(defvar ac-dabbrev-reset-always nil
|
||||
"Non-nil means reset count when candidates is 0.")
|
||||
|
||||
(defvar ac-dabbrev-sort nil)
|
||||
|
||||
(defun ac-dabbrev-find-limit-expansions (abbrev limit ignore-case)
|
||||
"Return a list of limit expansions of ABBREV.
|
||||
If IGNORE-CASE is non-nil, accept matches which differ in case."
|
||||
(let ((all-expansions nil) (i 0)
|
||||
expansion)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while
|
||||
(and (< i limit)
|
||||
(setq expansion (dabbrev--find-expansion abbrev -1 ignore-case)))
|
||||
(setq all-expansions (cons expansion all-expansions))
|
||||
(setq i (+ i 1)))
|
||||
(if ac-dabbrev-sort
|
||||
(sort all-expansions (lambda (s1 s2) (if (< (length s1) (length s2)) t nil)))
|
||||
all-expansions))))
|
||||
|
||||
(defun ac-dabbrev-get-limit-candidates (abbrev &optional all)
|
||||
(let ((dabbrev-check-other-buffers all))
|
||||
(dabbrev--reset-global-variables)
|
||||
(ac-dabbrev-find-limit-expansions abbrev ac-candidate-max nil)))
|
||||
|
||||
(lexical-let ((count 1))
|
||||
(defun ac-dabbrev-set-count ()
|
||||
(setq command-char last-command-char)
|
||||
(if (memq last-command ac-dabbrev-trigger-commands)
|
||||
(incf count)
|
||||
(setq count 1))
|
||||
(if (and ac-dabbrev-reset-always
|
||||
(not ac-candidates))
|
||||
(setq count 1))
|
||||
(loop for char in ac-dabbrev-reset-char
|
||||
do (if (char-equal last-command-char (string-to-char char))
|
||||
(setq count 1)))
|
||||
count))
|
||||
|
||||
(defun ac-dabbrev-get-candidates (abbrev)
|
||||
(if (>= (ac-dabbrev-set-count) ac-dabbrev-all-min-count)
|
||||
(ac-dabbrev-get-limit-candidates abbrev t)
|
||||
(ac-dabbrev-get-limit-candidates abbrev nil)))
|
||||
|
||||
(defvar ac-source-dabbrev
|
||||
'((candidates
|
||||
. (lambda () (all-completions ac-target (ac-dabbrev-get-candidates ac-target))))
|
||||
(candidate-face . ac-dabbrev-menu-face)
|
||||
(selection-face . ac-dabbrev-selection-face))
|
||||
"Source for dabbrev")
|
||||
|
||||
(defface ac-dabbrev-menu-face
|
||||
'((t (:background "lightgray" :foreground "blue")))
|
||||
"Face for dabbrev candidate menu."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defface ac-dabbrev-selection-face
|
||||
'((t (:background "blue" :foreground "white")))
|
||||
"Face for the dabbrev selected candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
;; mode provide
|
||||
(provide 'ac-dabbrev)
|
||||
|
||||
;;; end
|
||||
;;; ac-dabbrev.el ends here
|
|
@ -1,74 +0,0 @@
|
|||
and
|
||||
and_eq
|
||||
asm
|
||||
auto
|
||||
bitand
|
||||
bitor
|
||||
bool
|
||||
break
|
||||
case
|
||||
catch
|
||||
char
|
||||
class
|
||||
compl
|
||||
const
|
||||
const_cast
|
||||
continue
|
||||
default
|
||||
delete
|
||||
do
|
||||
double
|
||||
dynamic_cast
|
||||
else
|
||||
enum
|
||||
explicit
|
||||
export
|
||||
extern
|
||||
false
|
||||
float
|
||||
for
|
||||
friend
|
||||
goto
|
||||
if
|
||||
inline
|
||||
int
|
||||
long
|
||||
mutable
|
||||
namespace
|
||||
new
|
||||
not
|
||||
not_eq
|
||||
operator
|
||||
or
|
||||
or_eq
|
||||
private
|
||||
protected
|
||||
public
|
||||
register
|
||||
reinterpret_cast
|
||||
return
|
||||
short
|
||||
signed
|
||||
sizeof
|
||||
static
|
||||
static_cast
|
||||
struct
|
||||
switch
|
||||
template
|
||||
this
|
||||
throw
|
||||
true
|
||||
try
|
||||
typedef
|
||||
typeid
|
||||
typename
|
||||
union
|
||||
unsigned
|
||||
using
|
||||
virtual
|
||||
void
|
||||
volatile
|
||||
wchar_t
|
||||
while
|
||||
xor
|
||||
xor_eq
|
|
@ -1,37 +0,0 @@
|
|||
auto
|
||||
_Bool
|
||||
break
|
||||
case
|
||||
char
|
||||
_Complex
|
||||
const
|
||||
continue
|
||||
default
|
||||
do
|
||||
double
|
||||
else
|
||||
enum
|
||||
extern
|
||||
float
|
||||
for
|
||||
goto
|
||||
if
|
||||
_Imaginary
|
||||
inline
|
||||
int
|
||||
long
|
||||
register
|
||||
restrict
|
||||
return
|
||||
short
|
||||
signed
|
||||
sizeof
|
||||
static
|
||||
struct
|
||||
switch
|
||||
typedef
|
||||
union
|
||||
unsigned
|
||||
void
|
||||
volatile
|
||||
while
|
|
@ -1,475 +0,0 @@
|
|||
*agent*
|
||||
*clojure-version*
|
||||
*command-line-args*
|
||||
*compile-files*
|
||||
*compile-path*
|
||||
*err*
|
||||
*file*
|
||||
*flush-on-newline*
|
||||
*in*
|
||||
*ns*
|
||||
*out*
|
||||
*print-dup*
|
||||
*print-length*
|
||||
*print-level*
|
||||
*print-meta*
|
||||
*print-readably*
|
||||
*read-eval*
|
||||
*warn-on-reflection*
|
||||
accessor
|
||||
aclone
|
||||
add-classpath
|
||||
add-watch
|
||||
agent
|
||||
agent-error
|
||||
agent-errors
|
||||
aget
|
||||
alength
|
||||
alias
|
||||
all-ns
|
||||
alter
|
||||
alter-meta!
|
||||
alter-var-root
|
||||
amap
|
||||
ancestors
|
||||
and
|
||||
apply
|
||||
areduce
|
||||
array-map
|
||||
aset
|
||||
aset-boolean
|
||||
aset-byte
|
||||
aset-char
|
||||
aset-double
|
||||
aset-float
|
||||
aset-int
|
||||
aset-long
|
||||
aset-short
|
||||
assert
|
||||
assoc
|
||||
assoc!
|
||||
assoc-in
|
||||
associative?
|
||||
atom
|
||||
await
|
||||
await-for
|
||||
bases
|
||||
bean
|
||||
bigdec
|
||||
bigint
|
||||
binding
|
||||
bit-and
|
||||
bit-and-not
|
||||
bit-clear
|
||||
bit-flip
|
||||
bit-not
|
||||
bit-or
|
||||
bit-set
|
||||
bit-shift-left
|
||||
bit-shift-right
|
||||
bit-test
|
||||
bit-xor
|
||||
boolean
|
||||
boolean-array
|
||||
booleans
|
||||
bound-fn
|
||||
bound-fn*
|
||||
butlast
|
||||
byte
|
||||
byte-array
|
||||
bytes
|
||||
case
|
||||
cast
|
||||
char
|
||||
char-array
|
||||
char-escape-string
|
||||
char-name-string
|
||||
char?
|
||||
chars
|
||||
class
|
||||
class?
|
||||
clear-agent-errors
|
||||
clojure-version
|
||||
coll?
|
||||
comment
|
||||
commute
|
||||
comp
|
||||
comparator
|
||||
compare
|
||||
compare-and-set!
|
||||
compile
|
||||
complement
|
||||
concat
|
||||
cond
|
||||
condp
|
||||
conj
|
||||
conj!
|
||||
cons
|
||||
constantly
|
||||
construct-proxy
|
||||
contains?
|
||||
count
|
||||
counted?
|
||||
create-ns
|
||||
create-struct
|
||||
cycle
|
||||
dec
|
||||
decimal?
|
||||
declare
|
||||
definline
|
||||
defmacro
|
||||
defmethod
|
||||
defmulti
|
||||
defn
|
||||
defn-
|
||||
defonce
|
||||
defprotocol
|
||||
defstruct
|
||||
deftype
|
||||
delay
|
||||
delay?
|
||||
deliver
|
||||
deref
|
||||
derive
|
||||
descendants
|
||||
disj
|
||||
disj!
|
||||
dissoc
|
||||
dissoc!
|
||||
distinct
|
||||
distinct?
|
||||
doall
|
||||
doc
|
||||
dorun
|
||||
doseq
|
||||
dosync
|
||||
dotimes
|
||||
doto
|
||||
double
|
||||
double-array
|
||||
doubles
|
||||
drop
|
||||
drop-last
|
||||
drop-while
|
||||
dtype
|
||||
empty
|
||||
empty?
|
||||
ensure
|
||||
enumeration-seq
|
||||
error-handler
|
||||
error-mode
|
||||
eval
|
||||
even?
|
||||
every?
|
||||
extend
|
||||
extend-class
|
||||
extend-protocol
|
||||
extend-type
|
||||
extenders
|
||||
extends?
|
||||
false?
|
||||
ffirst
|
||||
file-seq
|
||||
filter
|
||||
find
|
||||
find-doc
|
||||
find-ns
|
||||
find-var
|
||||
first
|
||||
float
|
||||
float-array
|
||||
float?
|
||||
floats
|
||||
flush
|
||||
fn
|
||||
fn?
|
||||
fnext
|
||||
for
|
||||
force
|
||||
format
|
||||
future
|
||||
future-call
|
||||
future-cancel
|
||||
future-cancelled?
|
||||
future-done?
|
||||
future?
|
||||
gen-class
|
||||
gen-interface
|
||||
gensym
|
||||
get
|
||||
get-in
|
||||
get-method
|
||||
get-proxy-class
|
||||
get-thread-bindings
|
||||
get-validator
|
||||
hash
|
||||
hash-map
|
||||
hash-set
|
||||
identical?
|
||||
identity
|
||||
if-let
|
||||
if-not
|
||||
ifn?
|
||||
import
|
||||
in-ns
|
||||
inc
|
||||
init-proxy
|
||||
instance?
|
||||
int
|
||||
int-array
|
||||
integer?
|
||||
interleave
|
||||
intern
|
||||
interpose
|
||||
into
|
||||
into-array
|
||||
ints
|
||||
io!
|
||||
isa?
|
||||
iterate
|
||||
iterator-seq
|
||||
juxt
|
||||
key
|
||||
keys
|
||||
keyword
|
||||
keyword?
|
||||
last
|
||||
lazy-cat
|
||||
lazy-seq
|
||||
let
|
||||
letfn
|
||||
line-seq
|
||||
list
|
||||
list*
|
||||
list?
|
||||
load
|
||||
load-file
|
||||
load-reader
|
||||
load-string
|
||||
loaded-libs
|
||||
locking
|
||||
long
|
||||
long-array
|
||||
longs
|
||||
loop
|
||||
macroexpand
|
||||
macroexpand-1
|
||||
make-array
|
||||
make-hierarchy
|
||||
map
|
||||
map?
|
||||
mapcat
|
||||
max
|
||||
max-key
|
||||
memfn
|
||||
memoize
|
||||
merge
|
||||
merge-with
|
||||
meta
|
||||
methods
|
||||
min
|
||||
min-key
|
||||
mod
|
||||
name
|
||||
namespace
|
||||
neg?
|
||||
newline
|
||||
next
|
||||
nfirst
|
||||
nil?
|
||||
nnext
|
||||
not
|
||||
not-any?
|
||||
not-empty
|
||||
not-every?
|
||||
not=
|
||||
ns
|
||||
ns-aliases
|
||||
ns-imports
|
||||
ns-interns
|
||||
ns-map
|
||||
ns-name
|
||||
ns-publics
|
||||
ns-refers
|
||||
ns-resolve
|
||||
ns-unalias
|
||||
ns-unmap
|
||||
nth
|
||||
nthnext
|
||||
num
|
||||
number?
|
||||
object-array
|
||||
odd?
|
||||
or
|
||||
parents
|
||||
partial
|
||||
partition
|
||||
pcalls
|
||||
peek
|
||||
persistent!
|
||||
pmap
|
||||
pop
|
||||
pop!
|
||||
pop-thread-bindings
|
||||
pos?
|
||||
pr
|
||||
pr-str
|
||||
prefer-method
|
||||
prefers
|
||||
print
|
||||
print-namespace-doc
|
||||
print-str
|
||||
printf
|
||||
println
|
||||
println-str
|
||||
prn
|
||||
prn-str
|
||||
promise
|
||||
proxy
|
||||
proxy-mappings
|
||||
proxy-super
|
||||
push-thread-bindings
|
||||
pvalues
|
||||
quot
|
||||
rand
|
||||
rand-int
|
||||
range
|
||||
ratio?
|
||||
rationalize
|
||||
re-find
|
||||
re-groups
|
||||
re-matcher
|
||||
re-matches
|
||||
re-pattern
|
||||
re-seq
|
||||
read
|
||||
read-line
|
||||
read-string
|
||||
reduce
|
||||
ref
|
||||
ref-history-count
|
||||
ref-max-history
|
||||
ref-min-history
|
||||
ref-set
|
||||
refer
|
||||
refer-clojure
|
||||
reify
|
||||
release-pending-sends
|
||||
rem
|
||||
remove
|
||||
remove-method
|
||||
remove-ns
|
||||
remove-watch
|
||||
repeat
|
||||
repeatedly
|
||||
replace
|
||||
replicate
|
||||
require
|
||||
reset!
|
||||
reset-meta!
|
||||
resolve
|
||||
rest
|
||||
restart-agent
|
||||
resultset-seq
|
||||
reverse
|
||||
reversible?
|
||||
rseq
|
||||
rsubseq
|
||||
satisfies?
|
||||
second
|
||||
select-keys
|
||||
send
|
||||
send-off
|
||||
seq
|
||||
seq?
|
||||
seque
|
||||
sequence
|
||||
sequential?
|
||||
set
|
||||
set-error-handler!
|
||||
set-error-mode!
|
||||
set-validator!
|
||||
set?
|
||||
short
|
||||
short-array
|
||||
shorts
|
||||
shutdown-agents
|
||||
slurp
|
||||
some
|
||||
sort
|
||||
sort-by
|
||||
sorted-map
|
||||
sorted-map-by
|
||||
sorted-set
|
||||
sorted-set-by
|
||||
sorted?
|
||||
special-form-anchor
|
||||
special-symbol?
|
||||
split-at
|
||||
split-with
|
||||
str
|
||||
stream?
|
||||
string?
|
||||
struct
|
||||
struct-map
|
||||
subs
|
||||
subseq
|
||||
subvec
|
||||
supers
|
||||
swap!
|
||||
symbol
|
||||
symbol?
|
||||
sync
|
||||
syntax-symbol-anchor
|
||||
take
|
||||
take-last
|
||||
take-nth
|
||||
take-while
|
||||
test
|
||||
the-ns
|
||||
time
|
||||
to-array
|
||||
to-array-2d
|
||||
trampoline
|
||||
transient
|
||||
tree-seq
|
||||
true?
|
||||
type
|
||||
unchecked-add
|
||||
unchecked-dec
|
||||
unchecked-divide
|
||||
unchecked-inc
|
||||
unchecked-multiply
|
||||
unchecked-negate
|
||||
unchecked-remainder
|
||||
unchecked-subtract
|
||||
underive
|
||||
update-in
|
||||
update-proxy
|
||||
use
|
||||
val
|
||||
vals
|
||||
var-get
|
||||
var-set
|
||||
var?
|
||||
vary-meta
|
||||
vec
|
||||
vector
|
||||
vector-of
|
||||
vector?
|
||||
when
|
||||
when-first
|
||||
when-let
|
||||
when-not
|
||||
while
|
||||
with-bindings
|
||||
with-bindings*
|
||||
with-in-str
|
||||
with-local-vars
|
||||
with-meta
|
||||
with-open
|
||||
with-out-str
|
||||
with-precision
|
||||
xml-seq
|
||||
zero?
|
||||
zipmap
|
|
@ -1,747 +0,0 @@
|
|||
!important
|
||||
ActiveBorder
|
||||
ActiveCaption
|
||||
Alpha
|
||||
AppWorkspace
|
||||
Background
|
||||
Barn
|
||||
BasicImage
|
||||
Blinds
|
||||
Blur
|
||||
ButtonFace
|
||||
ButtonHighlight
|
||||
ButtonShadow
|
||||
ButtonText
|
||||
CaptionText
|
||||
CheckerBoard
|
||||
Chroma
|
||||
Compositor
|
||||
CradientWipe
|
||||
DXImageTransform
|
||||
DropShadow
|
||||
Emboss
|
||||
Engrave
|
||||
Fade
|
||||
FlipH
|
||||
FlipV
|
||||
Glow
|
||||
Gray
|
||||
GrayText
|
||||
Highlight
|
||||
HighlightText
|
||||
Hz
|
||||
ICMFilter
|
||||
InactiveBorder
|
||||
InactiveCaption
|
||||
InactiveCaptionText
|
||||
InfoBackground
|
||||
InfoText
|
||||
Inset
|
||||
Invert
|
||||
Iris
|
||||
Light
|
||||
MaskFilter
|
||||
Matrix
|
||||
Menu
|
||||
MenuText
|
||||
Microsoft
|
||||
MotionBlur
|
||||
Pixelate
|
||||
RadialWipe
|
||||
RandomBars
|
||||
RandomDissolve
|
||||
RevealTrans
|
||||
Scrollbar
|
||||
Shadow
|
||||
Slide
|
||||
Spiral
|
||||
Stretch
|
||||
Strips
|
||||
ThreeDDarkShadow
|
||||
ThreeDFace
|
||||
ThreeDHighlight
|
||||
ThreeDLightShadow
|
||||
ThreeDShadow
|
||||
Wave
|
||||
Wheel
|
||||
Window
|
||||
WindowFrame
|
||||
WindowText
|
||||
Xray
|
||||
Zigzag
|
||||
_azimuth
|
||||
_background
|
||||
_background-position-x
|
||||
_background-position-y
|
||||
_border
|
||||
_bottom
|
||||
_caption
|
||||
_clear
|
||||
_clip
|
||||
_color
|
||||
_content
|
||||
_counter
|
||||
_cue
|
||||
_cursor
|
||||
_direction
|
||||
_display
|
||||
_elevation
|
||||
_empty
|
||||
_filter
|
||||
_filter:progid:DXImageTransform.Microsoft
|
||||
_float
|
||||
_font
|
||||
_height
|
||||
_ime
|
||||
_ime-mode
|
||||
_layout
|
||||
_layout-flow
|
||||
_layout-grid
|
||||
_layout-grid-char
|
||||
_layout-grid-line
|
||||
_layout-grid-mode
|
||||
_layout-grid-type
|
||||
_left
|
||||
_letter
|
||||
_line
|
||||
_line-break
|
||||
_list
|
||||
_margin
|
||||
_orphans
|
||||
_outline
|
||||
_overflow
|
||||
_overflow-x
|
||||
_overflow-y
|
||||
_padding
|
||||
_page
|
||||
_pause
|
||||
_pitch
|
||||
_play
|
||||
_position
|
||||
_quotes
|
||||
_richness
|
||||
_right
|
||||
_ruby
|
||||
_ruby-align
|
||||
_ruby-overhang
|
||||
_ruby-position
|
||||
_scrollbar
|
||||
_scrollbar-3dlight-color
|
||||
_scrollbar-arrow-color
|
||||
_scrollbar-base-color
|
||||
_scrollbar-darkshadow-color
|
||||
_scrollbar-face-color
|
||||
_scrollbar-highlight-color
|
||||
_scrollbar-track-color
|
||||
_speak
|
||||
_speech
|
||||
_stress
|
||||
_table
|
||||
_text
|
||||
_text-align-last
|
||||
_text-autospace
|
||||
_text-justify
|
||||
_text-kashida-space
|
||||
_text-overflow
|
||||
_text-underline-position
|
||||
_top
|
||||
_unicode
|
||||
_vertical
|
||||
_visibility
|
||||
_voice
|
||||
_volume
|
||||
_white
|
||||
_widows
|
||||
_width
|
||||
_word
|
||||
_word-break
|
||||
_word-wrap
|
||||
_writing
|
||||
_writing-mode
|
||||
_z
|
||||
_zoom
|
||||
above
|
||||
active
|
||||
adjust
|
||||
after
|
||||
aliceblue
|
||||
align
|
||||
always
|
||||
antiquewhite
|
||||
aqua
|
||||
aquamarine
|
||||
armenian
|
||||
arrow
|
||||
attachment
|
||||
auto
|
||||
autospace
|
||||
avoid
|
||||
azimuth
|
||||
azure
|
||||
background
|
||||
background-attachment
|
||||
background-color
|
||||
background-image
|
||||
background-position
|
||||
background-repeat
|
||||
bar
|
||||
base
|
||||
baseline
|
||||
before
|
||||
behind
|
||||
beige
|
||||
below
|
||||
bidi
|
||||
bidi-override
|
||||
bisque
|
||||
black
|
||||
blanchedalmond
|
||||
blink
|
||||
block
|
||||
blue
|
||||
blueviolet
|
||||
bold
|
||||
bolder
|
||||
border
|
||||
border-bottom
|
||||
border-bottom-color
|
||||
border-bottom-style
|
||||
border-bottom-width
|
||||
border-collapse
|
||||
border-color
|
||||
border-left
|
||||
border-left-color
|
||||
border-left-style
|
||||
border-left-width
|
||||
border-right
|
||||
border-right-color
|
||||
border-right-style
|
||||
border-right-width
|
||||
border-spacing
|
||||
border-style
|
||||
border-top
|
||||
border-top-color
|
||||
border-top-style
|
||||
border-top-width
|
||||
border-width
|
||||
both
|
||||
bottom
|
||||
box
|
||||
break
|
||||
brown
|
||||
burlwood
|
||||
cadetblue
|
||||
capitalize
|
||||
caps
|
||||
caption
|
||||
caption-side
|
||||
cell
|
||||
cells
|
||||
center
|
||||
center-left
|
||||
center-right
|
||||
char
|
||||
chartreuse
|
||||
chocolate
|
||||
circle
|
||||
cjk
|
||||
cjk-ideographic
|
||||
clear
|
||||
clip
|
||||
close
|
||||
close-quote
|
||||
cm
|
||||
code
|
||||
collapse
|
||||
color
|
||||
column
|
||||
compact
|
||||
condensed
|
||||
content
|
||||
continuous
|
||||
coral
|
||||
cornflowerblue
|
||||
cornsilk
|
||||
counter
|
||||
counter-increment
|
||||
counter-reset
|
||||
crimson
|
||||
crop
|
||||
cross
|
||||
crosshair
|
||||
cue
|
||||
cue-after
|
||||
cue-before
|
||||
cursive
|
||||
cursor
|
||||
cyan
|
||||
darkblue
|
||||
darkcyan
|
||||
darkgoldenrod
|
||||
darkgray
|
||||
darkgreen
|
||||
darkkhaki
|
||||
darkmagenta
|
||||
darkolivegreen
|
||||
darkorange
|
||||
darkorchid
|
||||
darkred
|
||||
darksalmon
|
||||
darkseagreen
|
||||
darkshadow
|
||||
darkslateblue
|
||||
darkslategray
|
||||
darkturquoise
|
||||
darkviolet
|
||||
dashed
|
||||
decimal
|
||||
decimal-leading-zero
|
||||
decoration
|
||||
deeppink
|
||||
deepskyblue
|
||||
default
|
||||
deg
|
||||
digits
|
||||
dimgray
|
||||
direction
|
||||
disc
|
||||
display
|
||||
dodgerblue
|
||||
dotted
|
||||
double
|
||||
during
|
||||
e
|
||||
e-resize
|
||||
elevation
|
||||
em
|
||||
embed
|
||||
empty
|
||||
empty-cells
|
||||
ex
|
||||
expanded
|
||||
extra
|
||||
extra-condensed
|
||||
extra-expanded
|
||||
face
|
||||
family
|
||||
fantasy
|
||||
far
|
||||
far-left
|
||||
far-right
|
||||
fast
|
||||
faster
|
||||
firebrick
|
||||
first
|
||||
first-child
|
||||
first-letter
|
||||
first-line
|
||||
fixed
|
||||
float
|
||||
floralwhite
|
||||
flow
|
||||
focus
|
||||
font
|
||||
font-family
|
||||
font-size
|
||||
font-size-adjust
|
||||
font-stretch
|
||||
font-style
|
||||
font-variant
|
||||
font-weight
|
||||
footer
|
||||
forestgreen
|
||||
fuchsia
|
||||
gainsboro
|
||||
georgian
|
||||
ghostwhite
|
||||
gold
|
||||
goldenrod
|
||||
gray
|
||||
greek
|
||||
green
|
||||
greenyellow
|
||||
grid
|
||||
groove
|
||||
group
|
||||
header
|
||||
hebrew
|
||||
height
|
||||
help
|
||||
hidden
|
||||
hide
|
||||
high
|
||||
higher
|
||||
hiragana
|
||||
hiragana-iroha
|
||||
honeydew
|
||||
hotpink
|
||||
hover
|
||||
icon
|
||||
ideographic
|
||||
image
|
||||
in
|
||||
increment
|
||||
indent
|
||||
index
|
||||
indianred
|
||||
indigo
|
||||
inherit
|
||||
inline
|
||||
inline-block
|
||||
inline-table
|
||||
inset
|
||||
inside
|
||||
iroha
|
||||
italic
|
||||
item
|
||||
ivory
|
||||
justify
|
||||
kHz
|
||||
kashida
|
||||
katakana
|
||||
katakana-iroha
|
||||
khaki
|
||||
landscape
|
||||
lang()
|
||||
large
|
||||
larger
|
||||
last
|
||||
latin
|
||||
lavender
|
||||
lavenderblush
|
||||
lawngreen
|
||||
layout
|
||||
leading
|
||||
left
|
||||
left-side
|
||||
leftwards
|
||||
lenonchiffon
|
||||
letter
|
||||
letter-spacing
|
||||
level
|
||||
lightblue
|
||||
lightcoral
|
||||
lightcyan
|
||||
lighter
|
||||
lightgoldenrodyellow
|
||||
lightgray
|
||||
lightgreen
|
||||
lightgrey
|
||||
lightpink
|
||||
lightsalmon
|
||||
lightseagreen
|
||||
lightskyblue
|
||||
lightslategray
|
||||
lightsteelblue
|
||||
lightyellow
|
||||
lime
|
||||
limegreen
|
||||
line
|
||||
line-height
|
||||
line-through
|
||||
linen
|
||||
link
|
||||
list
|
||||
list-item
|
||||
list-style
|
||||
list-style-image
|
||||
list-style-position
|
||||
list-style-type
|
||||
loud
|
||||
low
|
||||
lower
|
||||
lower-alpha
|
||||
lower-greek
|
||||
lower-latin
|
||||
lower-roman
|
||||
lowercase
|
||||
ltr
|
||||
magenta
|
||||
margin
|
||||
margin-bottom
|
||||
margin-left
|
||||
margin-right
|
||||
margin-top
|
||||
marker
|
||||
marker-offset
|
||||
marks
|
||||
maroon
|
||||
max
|
||||
max-height
|
||||
max-width
|
||||
medium
|
||||
mediumaquamarine
|
||||
mediumblue
|
||||
mediumorchid
|
||||
mediumpurple
|
||||
mediumseagreen
|
||||
mediumslateblue
|
||||
mediumspringgreen
|
||||
mediumturquoise
|
||||
mediumvioletred
|
||||
menu
|
||||
message
|
||||
message-box
|
||||
middle
|
||||
midnightblue
|
||||
min
|
||||
min-height
|
||||
min-width
|
||||
mintcream
|
||||
mistyrose
|
||||
mix
|
||||
mm
|
||||
moccasin
|
||||
mode
|
||||
monospace
|
||||
move
|
||||
ms
|
||||
n
|
||||
n-resize
|
||||
naby
|
||||
narrower
|
||||
navajowhite
|
||||
ne
|
||||
ne-resize
|
||||
no
|
||||
no-close-quote
|
||||
no-open-quote
|
||||
no-repeat
|
||||
none
|
||||
normal
|
||||
nowrap
|
||||
number
|
||||
numeral
|
||||
nw
|
||||
nw-resize
|
||||
oblique
|
||||
offset
|
||||
oldlace
|
||||
olive
|
||||
olivedrab
|
||||
once
|
||||
open
|
||||
open-quote
|
||||
orange
|
||||
orangered
|
||||
orchid
|
||||
orphans
|
||||
out
|
||||
outline
|
||||
outline-color
|
||||
outline-style
|
||||
outline-width
|
||||
outset
|
||||
outside
|
||||
overflow
|
||||
overhang
|
||||
overline
|
||||
override
|
||||
padding
|
||||
padding-bottom
|
||||
padding-left
|
||||
padding-right
|
||||
padding-top
|
||||
page
|
||||
page-break-after
|
||||
page-break-before
|
||||
page-break-inside
|
||||
palegoldenrod
|
||||
palegreen
|
||||
paleturquoise
|
||||
palevioletred
|
||||
papayawhip
|
||||
pause
|
||||
pause-after
|
||||
pause-before
|
||||
pc
|
||||
peachpuff
|
||||
peru
|
||||
pink
|
||||
pitch
|
||||
pitch-range
|
||||
play
|
||||
play-during
|
||||
plum
|
||||
pointer
|
||||
portarait
|
||||
position
|
||||
powderblue
|
||||
pre
|
||||
pre-line
|
||||
pre-wrap
|
||||
progid
|
||||
progress
|
||||
pt
|
||||
punctuation
|
||||
purple
|
||||
px
|
||||
quote
|
||||
quotes
|
||||
rad
|
||||
range
|
||||
rate
|
||||
red
|
||||
relative
|
||||
repeat
|
||||
repeat-x
|
||||
repeat-y
|
||||
reset
|
||||
resize
|
||||
richness
|
||||
ridge
|
||||
right
|
||||
right-side
|
||||
rightwards
|
||||
roman
|
||||
rosybrown
|
||||
row
|
||||
royalblue
|
||||
rtl
|
||||
run
|
||||
run-in
|
||||
s
|
||||
s-resize
|
||||
saddlebrown
|
||||
salmon
|
||||
sandybrown
|
||||
sans-serif
|
||||
scroll
|
||||
se
|
||||
se-resize
|
||||
seagreen
|
||||
seashell
|
||||
semi
|
||||
semi-condensed
|
||||
semi-expanded
|
||||
separate
|
||||
serif
|
||||
shadow
|
||||
show
|
||||
side
|
||||
sienna
|
||||
silent
|
||||
silever
|
||||
silver
|
||||
size
|
||||
skyblue
|
||||
slateblue
|
||||
slategray
|
||||
slow
|
||||
slower
|
||||
small
|
||||
small-caps
|
||||
small-caption
|
||||
smaller
|
||||
snow
|
||||
soft
|
||||
solid
|
||||
space
|
||||
spacing
|
||||
speak
|
||||
speak-header
|
||||
speak-numeral
|
||||
speak-punctuation
|
||||
specific
|
||||
specific-voice
|
||||
speech
|
||||
speech-rate
|
||||
spell
|
||||
spell-out
|
||||
springgreen
|
||||
square
|
||||
static
|
||||
status
|
||||
status-bar
|
||||
steelblue
|
||||
stress
|
||||
stretch
|
||||
style
|
||||
sub
|
||||
super
|
||||
sw
|
||||
sw-resize
|
||||
table
|
||||
table-caption
|
||||
table-cell
|
||||
table-column
|
||||
table-column-group
|
||||
table-footer-group
|
||||
table-header-group
|
||||
table-layout
|
||||
table-row
|
||||
table-row-group
|
||||
tan
|
||||
teal
|
||||
text
|
||||
text-align
|
||||
text-bottom
|
||||
text-decoration
|
||||
text-indent
|
||||
text-shadow
|
||||
text-top
|
||||
text-transform
|
||||
thick
|
||||
thin
|
||||
thistle
|
||||
through
|
||||
tomato
|
||||
top
|
||||
track
|
||||
transform
|
||||
transparent
|
||||
turquoise
|
||||
type
|
||||
ultra
|
||||
ultra-condensed
|
||||
ultra-expanded
|
||||
underline
|
||||
unicode
|
||||
unicode-bidi
|
||||
upper
|
||||
upper-alpha
|
||||
upper-latin
|
||||
upper-roman
|
||||
uppercase
|
||||
variant
|
||||
vertical
|
||||
vertical-align
|
||||
violet
|
||||
visibility
|
||||
visible
|
||||
visited
|
||||
voice
|
||||
voice-family
|
||||
volume
|
||||
w
|
||||
w-resize
|
||||
wait
|
||||
weight
|
||||
wheat
|
||||
white
|
||||
white-space
|
||||
whitesmoke
|
||||
wider
|
||||
widows
|
||||
width
|
||||
word
|
||||
word-spacing
|
||||
wrap
|
||||
x
|
||||
x-fast
|
||||
x-high
|
||||
x-large
|
||||
x-loud
|
||||
x-low
|
||||
x-slow
|
||||
x-small
|
||||
x-soft
|
||||
xx
|
||||
xx-large
|
||||
xx-small
|
||||
y
|
||||
yellow
|
||||
yellowgreen
|
||||
z
|
||||
z-index
|
||||
zero
|
|
@ -1,50 +0,0 @@
|
|||
abstract
|
||||
assert
|
||||
boolean
|
||||
break
|
||||
byte
|
||||
case
|
||||
catch
|
||||
char
|
||||
class
|
||||
const
|
||||
continue
|
||||
default
|
||||
do
|
||||
double
|
||||
else
|
||||
enum
|
||||
extends
|
||||
final
|
||||
finally
|
||||
float
|
||||
for
|
||||
goto
|
||||
if
|
||||
implements
|
||||
import
|
||||
instanceof
|
||||
int
|
||||
interface
|
||||
long
|
||||
native
|
||||
new
|
||||
package
|
||||
private
|
||||
protected
|
||||
public
|
||||
return
|
||||
short
|
||||
static
|
||||
strictfp
|
||||
super
|
||||
switch
|
||||
synchronized
|
||||
this
|
||||
throw
|
||||
throws
|
||||
transient
|
||||
try
|
||||
void
|
||||
volatile
|
||||
while
|
|
@ -1,148 +0,0 @@
|
|||
Anchor
|
||||
Area
|
||||
Array
|
||||
Boolean
|
||||
Button
|
||||
Checkbox
|
||||
Date
|
||||
Document
|
||||
Element
|
||||
FileUpload
|
||||
Form
|
||||
Frame
|
||||
Function
|
||||
Hidden
|
||||
History
|
||||
Image
|
||||
Infinity
|
||||
JavaArray
|
||||
JavaClass
|
||||
JavaObject
|
||||
JavaPackage
|
||||
Link
|
||||
Location
|
||||
Math
|
||||
MimeType
|
||||
NaN
|
||||
Navigator
|
||||
Number
|
||||
Object
|
||||
Option
|
||||
Packages
|
||||
Password
|
||||
Plugin
|
||||
Radio
|
||||
RegExp
|
||||
Reset
|
||||
Select
|
||||
String
|
||||
Submit
|
||||
Text
|
||||
Textarea
|
||||
Window
|
||||
alert
|
||||
arguments
|
||||
assign
|
||||
blur
|
||||
break
|
||||
callee
|
||||
caller
|
||||
captureEvents
|
||||
case
|
||||
clearInterval
|
||||
clearTimeout
|
||||
close
|
||||
closed
|
||||
comment
|
||||
confirm
|
||||
constructor
|
||||
continue
|
||||
default
|
||||
defaultStatus
|
||||
delete
|
||||
do
|
||||
document
|
||||
else
|
||||
escape
|
||||
eval
|
||||
export
|
||||
find
|
||||
focus
|
||||
for
|
||||
frames
|
||||
function
|
||||
getClass
|
||||
history
|
||||
home
|
||||
if
|
||||
import
|
||||
in
|
||||
innerHeight
|
||||
innerWidth
|
||||
isFinite
|
||||
isNan
|
||||
java
|
||||
label
|
||||
length
|
||||
location
|
||||
locationbar
|
||||
menubar
|
||||
moveBy
|
||||
moveTo
|
||||
name
|
||||
navigate
|
||||
navigator
|
||||
netscape
|
||||
new
|
||||
onBlur
|
||||
onError
|
||||
onFocus
|
||||
onLoad
|
||||
onUnload
|
||||
open
|
||||
opener
|
||||
outerHeight
|
||||
outerWidth
|
||||
pageXoffset
|
||||
pageYoffset
|
||||
parent
|
||||
parseFloat
|
||||
parseInt
|
||||
personalbar
|
||||
print
|
||||
prompt
|
||||
prototype
|
||||
ref
|
||||
releaseEvents
|
||||
resizeBy
|
||||
resizeTo
|
||||
return
|
||||
routeEvent
|
||||
scroll
|
||||
scrollBy
|
||||
scrollTo
|
||||
scrollbars
|
||||
self
|
||||
setInterval
|
||||
setTimeout
|
||||
status
|
||||
statusbar
|
||||
stop
|
||||
sun
|
||||
switch
|
||||
taint
|
||||
this
|
||||
toString
|
||||
toolbar
|
||||
top
|
||||
typeof
|
||||
unescape
|
||||
untaint
|
||||
unwatch
|
||||
valueOf
|
||||
var
|
||||
void
|
||||
watch
|
||||
while
|
||||
window
|
||||
with
|
|
@ -1,62 +0,0 @@
|
|||
and
|
||||
array
|
||||
as
|
||||
break
|
||||
case
|
||||
catch
|
||||
cfunction
|
||||
class
|
||||
clone
|
||||
const
|
||||
continue
|
||||
declare
|
||||
default
|
||||
die
|
||||
do
|
||||
echo
|
||||
else
|
||||
elseif
|
||||
empty
|
||||
enddeclare
|
||||
endfor
|
||||
endforeach
|
||||
endif
|
||||
endswitch
|
||||
endwhile
|
||||
eval
|
||||
exit
|
||||
extends
|
||||
final
|
||||
for
|
||||
foreach
|
||||
function
|
||||
global
|
||||
goto
|
||||
if
|
||||
implements
|
||||
include
|
||||
include_once
|
||||
instanceof
|
||||
interface
|
||||
isset
|
||||
list
|
||||
namespace
|
||||
new
|
||||
old_function
|
||||
or
|
||||
print
|
||||
private
|
||||
protected
|
||||
public
|
||||
require
|
||||
require_once
|
||||
return
|
||||
static
|
||||
switch
|
||||
throw
|
||||
try
|
||||
unset
|
||||
use
|
||||
var
|
||||
while
|
||||
xor
|
|
@ -1,104 +0,0 @@
|
|||
__import__
|
||||
abs
|
||||
and
|
||||
any
|
||||
apply
|
||||
as
|
||||
assert
|
||||
basestring
|
||||
bin
|
||||
bool
|
||||
break
|
||||
buffer
|
||||
class
|
||||
cmp
|
||||
coerce
|
||||
complex
|
||||
continue
|
||||
def
|
||||
del
|
||||
delattr
|
||||
dict
|
||||
dir
|
||||
divmod
|
||||
elif
|
||||
else
|
||||
enumerate
|
||||
eval
|
||||
except
|
||||
exec
|
||||
execfile
|
||||
file
|
||||
filter
|
||||
finally
|
||||
float
|
||||
for
|
||||
format
|
||||
from
|
||||
frozenset
|
||||
getattr
|
||||
global
|
||||
globals
|
||||
hasattr
|
||||
hash
|
||||
help
|
||||
hex
|
||||
id
|
||||
if
|
||||
import
|
||||
in
|
||||
input
|
||||
int
|
||||
intern
|
||||
is
|
||||
isinstance
|
||||
issubclass
|
||||
iter
|
||||
lambda
|
||||
len
|
||||
list
|
||||
locals
|
||||
long
|
||||
map
|
||||
max
|
||||
min
|
||||
next
|
||||
not
|
||||
object
|
||||
oct
|
||||
open
|
||||
or
|
||||
ord
|
||||
pass
|
||||
pow
|
||||
print
|
||||
print
|
||||
property
|
||||
raise
|
||||
range
|
||||
raw_input
|
||||
reduce
|
||||
reload
|
||||
repr
|
||||
return
|
||||
reversed
|
||||
round
|
||||
set
|
||||
setattr
|
||||
slice
|
||||
sorted
|
||||
staticmethod
|
||||
str
|
||||
sum
|
||||
super
|
||||
try
|
||||
tuple
|
||||
type
|
||||
unichr
|
||||
unicode
|
||||
vars
|
||||
while
|
||||
with
|
||||
xrange
|
||||
yield
|
||||
zip
|
|
@ -1,181 +0,0 @@
|
|||
$!
|
||||
$"
|
||||
$$
|
||||
$&
|
||||
$'
|
||||
$*
|
||||
$+
|
||||
$,
|
||||
$-0
|
||||
$-F
|
||||
$-I
|
||||
$-K
|
||||
$-a
|
||||
$-d
|
||||
$-i
|
||||
$-l
|
||||
$-p
|
||||
$-v
|
||||
$-w
|
||||
$.
|
||||
$/
|
||||
$0
|
||||
$1
|
||||
$10
|
||||
$11
|
||||
$2
|
||||
$3
|
||||
$4
|
||||
$5
|
||||
$6
|
||||
$7
|
||||
$8
|
||||
$9
|
||||
$:
|
||||
$;
|
||||
$<
|
||||
$=
|
||||
$>
|
||||
$?
|
||||
$@
|
||||
$DEBUG
|
||||
$FILENAME
|
||||
$KCODE
|
||||
$LOADED_FEATURES
|
||||
$LOAD_PATH
|
||||
$PROGRAM_NAME
|
||||
$SAFE
|
||||
$VERBOSE
|
||||
$\
|
||||
$_
|
||||
$`
|
||||
$deferr
|
||||
$defout
|
||||
$stderr
|
||||
$stdin
|
||||
$stdout
|
||||
$~
|
||||
ARGF
|
||||
ARGV
|
||||
Array
|
||||
BEGIN
|
||||
DATA
|
||||
END
|
||||
ENV
|
||||
FALSE
|
||||
Float
|
||||
Integer
|
||||
NIL
|
||||
PLATFORM
|
||||
RELEASE_DATE
|
||||
RUBY_COPYRIGHT
|
||||
RUBY_DESCRIPTION
|
||||
RUBY_PATCHLEVEL
|
||||
RUBY_PLATFORM
|
||||
RUBY_RELEASE_DATE
|
||||
RUBY_VERSION
|
||||
SCRIPT_LINES__
|
||||
STDERR
|
||||
STDIN
|
||||
STDOUT
|
||||
String
|
||||
TOPLEVEL_BINDING
|
||||
TRUE
|
||||
VERSION
|
||||
__method__
|
||||
`
|
||||
abort
|
||||
alias
|
||||
and
|
||||
at_exit
|
||||
autoload
|
||||
autoload?
|
||||
begin
|
||||
binding
|
||||
block_given
|
||||
break
|
||||
callcc
|
||||
caller
|
||||
case
|
||||
catch
|
||||
chomp
|
||||
chomp!
|
||||
chop
|
||||
chop
|
||||
class
|
||||
def
|
||||
defined?
|
||||
do
|
||||
else
|
||||
elsif
|
||||
end
|
||||
ensure
|
||||
eval
|
||||
exec
|
||||
exit
|
||||
exit!
|
||||
fail
|
||||
false
|
||||
for
|
||||
fork
|
||||
format
|
||||
getc
|
||||
gets
|
||||
global_variables
|
||||
gsub
|
||||
gsub!
|
||||
if
|
||||
in
|
||||
iterator?
|
||||
lambda
|
||||
load
|
||||
local_varaibles
|
||||
loop
|
||||
module
|
||||
next
|
||||
nil
|
||||
not
|
||||
open
|
||||
or
|
||||
p
|
||||
printf
|
||||
proc
|
||||
putc
|
||||
puts
|
||||
raise
|
||||
rand
|
||||
readline
|
||||
readlines
|
||||
redo
|
||||
require
|
||||
require_relative
|
||||
rescue
|
||||
retry
|
||||
return
|
||||
scan
|
||||
select
|
||||
self
|
||||
set_trace_func
|
||||
sleep
|
||||
split
|
||||
sprintf
|
||||
srand
|
||||
sub
|
||||
sub!
|
||||
super
|
||||
syscall
|
||||
system
|
||||
test
|
||||
then
|
||||
throw
|
||||
trace_var
|
||||
trap
|
||||
true
|
||||
undef
|
||||
unless
|
||||
until
|
||||
untrace_var
|
||||
warn
|
||||
when
|
||||
while
|
||||
yield
|
|
@ -1,216 +0,0 @@
|
|||
case-lambda
|
||||
call/cc
|
||||
class
|
||||
define-class
|
||||
exit-handler
|
||||
field
|
||||
import
|
||||
inherit
|
||||
init-field
|
||||
interface
|
||||
let*-values
|
||||
let-values
|
||||
let/ec
|
||||
mixin
|
||||
opt-lambda
|
||||
override
|
||||
protect
|
||||
provide
|
||||
public
|
||||
rename
|
||||
require
|
||||
require-for-syntax
|
||||
syntax
|
||||
syntax-case
|
||||
syntax-error
|
||||
unit/sig
|
||||
unless
|
||||
when
|
||||
with-syntax
|
||||
and
|
||||
begin
|
||||
call-with-current-continuation
|
||||
call-with-input-file
|
||||
call-with-output-file
|
||||
case
|
||||
cond
|
||||
define
|
||||
define-syntax
|
||||
delay
|
||||
do
|
||||
dynamic-wind
|
||||
else
|
||||
for-each
|
||||
if
|
||||
lambda
|
||||
let
|
||||
let*
|
||||
let-syntax
|
||||
letrec
|
||||
letrec-syntax
|
||||
map
|
||||
or
|
||||
syntax-rules
|
||||
abs
|
||||
acos
|
||||
angle
|
||||
append
|
||||
apply
|
||||
asin
|
||||
assoc
|
||||
assq
|
||||
assv
|
||||
atan
|
||||
boolean?
|
||||
caar
|
||||
cadr
|
||||
call-with-input-file
|
||||
call-with-output-file
|
||||
call-with-values
|
||||
car
|
||||
cdddar
|
||||
cddddr
|
||||
cdr
|
||||
ceiling
|
||||
char->integer
|
||||
char-alphabetic?
|
||||
char-ci<=?
|
||||
char-ci<?
|
||||
char-ci=?
|
||||
char-ci>=?
|
||||
char-ci>?
|
||||
char-downcase
|
||||
char-lower-case?
|
||||
char-numeric?
|
||||
char-ready?
|
||||
char-upcase
|
||||
char-upper-case?
|
||||
char-whitespace?
|
||||
char<=?
|
||||
char<?
|
||||
char=?
|
||||
char>=?
|
||||
char>?
|
||||
char?
|
||||
close-input-port
|
||||
close-output-port
|
||||
complex?
|
||||
cons
|
||||
cos
|
||||
current-input-port
|
||||
current-output-port
|
||||
denominator
|
||||
display
|
||||
eof-object?
|
||||
eq?
|
||||
equal?
|
||||
eqv?
|
||||
eval
|
||||
even?
|
||||
exact->inexact
|
||||
exact?
|
||||
exp
|
||||
expt
|
||||
#f
|
||||
floor
|
||||
force
|
||||
gcd
|
||||
imag-part
|
||||
inexact->exact
|
||||
inexact?
|
||||
input-port?
|
||||
integer->char
|
||||
integer?
|
||||
interaction-environment
|
||||
lcm
|
||||
length
|
||||
list
|
||||
list->string
|
||||
list->vector
|
||||
list-ref
|
||||
list-tail
|
||||
list?
|
||||
load
|
||||
log
|
||||
magnitude
|
||||
make-polar
|
||||
make-rectangular
|
||||
make-string
|
||||
make-vector
|
||||
max
|
||||
member
|
||||
memq
|
||||
memv
|
||||
min
|
||||
modulo
|
||||
negative?
|
||||
newline
|
||||
not
|
||||
null-environment
|
||||
null?
|
||||
number->string
|
||||
number?
|
||||
numerator
|
||||
odd?
|
||||
open-input-file
|
||||
open-output-file
|
||||
output-port?
|
||||
pair?
|
||||
peek-char
|
||||
port?
|
||||
positive?
|
||||
procedure?
|
||||
quasiquote
|
||||
quote
|
||||
quotient
|
||||
rational?
|
||||
rationalize
|
||||
read
|
||||
read-char
|
||||
real-part
|
||||
real?
|
||||
remainder
|
||||
reverse
|
||||
round
|
||||
scheme-report-environment
|
||||
set!
|
||||
set-car!
|
||||
set-cdr!
|
||||
sin
|
||||
sqrt
|
||||
string
|
||||
string->list
|
||||
string->number
|
||||
string->symbol
|
||||
string-append
|
||||
string-ci<=?
|
||||
string-ci<?
|
||||
string-ci=?
|
||||
string-ci>=?
|
||||
string-ci>?
|
||||
string-copy
|
||||
string-fill!
|
||||
string-length
|
||||
string-ref
|
||||
string-set!
|
||||
string<=?
|
||||
string<?
|
||||
string=?
|
||||
string>=?
|
||||
string>?
|
||||
string?
|
||||
substring
|
||||
symbol->string
|
||||
symbol?
|
||||
#t
|
||||
tan
|
||||
transcript-off
|
||||
transcript-on
|
||||
truncate
|
||||
values
|
||||
vector
|
||||
vector->list
|
||||
vector-fill!
|
||||
vector-length
|
||||
vector-ref
|
||||
vector-set!
|
|
@ -1,172 +0,0 @@
|
|||
after
|
||||
append
|
||||
apply
|
||||
array
|
||||
auto_execok
|
||||
auto_import
|
||||
auto_load
|
||||
auto_load_index
|
||||
auto_mkindex
|
||||
auto_mkindex_old
|
||||
auto_qualify
|
||||
auto_reset
|
||||
bell
|
||||
binary
|
||||
bind
|
||||
bindtags
|
||||
break
|
||||
button
|
||||
canvas
|
||||
case
|
||||
catch
|
||||
cd
|
||||
chan
|
||||
checkbutton
|
||||
clipboard
|
||||
clock
|
||||
close
|
||||
concat
|
||||
continue
|
||||
destroy
|
||||
dict
|
||||
encoding
|
||||
entry
|
||||
eof
|
||||
error
|
||||
eval
|
||||
event
|
||||
exec
|
||||
exit
|
||||
expr
|
||||
fblocked
|
||||
fconfigure
|
||||
fcopy
|
||||
file
|
||||
fileevent
|
||||
flush
|
||||
focus
|
||||
font
|
||||
for
|
||||
foreach
|
||||
format
|
||||
frame
|
||||
gets
|
||||
glob
|
||||
global
|
||||
grab
|
||||
grid
|
||||
if
|
||||
image
|
||||
incr
|
||||
info
|
||||
interp
|
||||
join
|
||||
label
|
||||
labelframe
|
||||
lappend
|
||||
lassign
|
||||
lindex
|
||||
linsert
|
||||
list
|
||||
listbox
|
||||
llength
|
||||
load
|
||||
lower
|
||||
lrange
|
||||
lrepeat
|
||||
lreplace
|
||||
lreverse
|
||||
lsearch
|
||||
lset
|
||||
lsort
|
||||
menu
|
||||
menubutton
|
||||
message
|
||||
namespace
|
||||
open
|
||||
option
|
||||
pack
|
||||
package
|
||||
panedwindow
|
||||
pid
|
||||
pkg_mkIndex
|
||||
place
|
||||
proc
|
||||
puts
|
||||
pwd
|
||||
radiobutton
|
||||
raise
|
||||
read
|
||||
regexp
|
||||
registry
|
||||
regsub
|
||||
rename
|
||||
return
|
||||
scale
|
||||
scan
|
||||
scrollbar
|
||||
seek
|
||||
selection
|
||||
set
|
||||
socket
|
||||
source
|
||||
spinbox
|
||||
split
|
||||
string
|
||||
subst
|
||||
switch
|
||||
tclLog
|
||||
tclPkgSetup
|
||||
tclPkgUnknown
|
||||
tcl_findLibrary
|
||||
tell
|
||||
text
|
||||
time
|
||||
tk
|
||||
tk_chooseColor
|
||||
tk_chooseDirectory
|
||||
tk_getOpenFile
|
||||
tk_getSaveFile
|
||||
tk_menuSetFocus
|
||||
tk_messageBox
|
||||
tk_popup
|
||||
tk_textCopy
|
||||
tk_textCut
|
||||
tk_textPaste
|
||||
tkwait
|
||||
toplevel
|
||||
ttk::button
|
||||
ttk::checkbutton
|
||||
ttk::combobox
|
||||
ttk::entry
|
||||
ttk::focusFirst
|
||||
ttk::frame
|
||||
ttk::label
|
||||
ttk::labelframe
|
||||
ttk::menubutton
|
||||
ttk::notebook
|
||||
ttk::paned
|
||||
ttk::panedwindow
|
||||
ttk::progressbar
|
||||
ttk::radiobutton
|
||||
ttk::scale
|
||||
ttk::scrollbar
|
||||
ttk::separator
|
||||
ttk::setTheme
|
||||
ttk::sizegrip
|
||||
ttk::style
|
||||
ttk::takefocus
|
||||
ttk::themes
|
||||
ttk::treeview
|
||||
trace
|
||||
unknown
|
||||
unload
|
||||
unset
|
||||
update
|
||||
uplevel
|
||||
upvar
|
||||
variable
|
||||
vwait
|
||||
while
|
||||
winfo
|
||||
wm
|
|
@ -1,151 +0,0 @@
|
|||
(eval-when-compile (require 'cl))
|
||||
|
||||
(defvar clang-executable "clang")
|
||||
(defvar clang-completion-doc-table (make-hash-table :test 'equal))
|
||||
|
||||
;; faces
|
||||
(defface clang-completion-plain-face
|
||||
'((t (:inherit default :family "Verdana")))
|
||||
"clang completion hint base font" :group 'clang-completion-faces)
|
||||
|
||||
(defface clang-completion-type-face
|
||||
'((t (:inherit 'clang-completion-plain-face :foreground "#729FCF" :weight bold :family "Verdana")))
|
||||
"clang completion hint font for types" :group 'clang-completion-faces)
|
||||
|
||||
(defface clang-completion-variable-face
|
||||
'((t (:inherit 'clang-completion-plain-face :foreground "#73D216" :family "Verdana")))
|
||||
"clang completion hint font for variables" :group 'clang-completion-faces)
|
||||
|
||||
;; extra flags
|
||||
(defvar clang-completion-pch nil)
|
||||
(defvar clang-completion-flags nil)
|
||||
(defvar clang-completion-suppress-error nil)
|
||||
|
||||
(defun clang-process-exec (command)
|
||||
(with-output-to-string
|
||||
(with-current-buffer standard-output
|
||||
(unless (or (eq (apply 'call-process (car command) nil '(t ".clang-completion-error") nil (cdr command)) 0) clang-completion-suppress-error)
|
||||
(let ((last-command compile-command))
|
||||
(compile "cat .clang-completion-error")
|
||||
(setq compile-command last-command))))))
|
||||
|
||||
(defun clang-parse-completion-line (line)
|
||||
(cond ((string-match "^COMPLETION: Pattern" line) nil) ;; exclude patterns
|
||||
((string-match "^COMPLETION: \\([^ ]*\\)\\(?: : \\([^\"]*\\)\\)$" line)
|
||||
(list (match-string 1 line) (match-string 2 line)))
|
||||
((string-match "^OVERRIDE: \\([^ ]*\\)\\(?: : \\([^\"]*\\)\\)$" line)
|
||||
(list (match-string 1 line) (match-string 2 line)))
|
||||
(t nil))
|
||||
)
|
||||
|
||||
(defun clang-process (buffer point)
|
||||
(unless (buffer-file-name buffer)
|
||||
(return ""))
|
||||
(let* ((filename (buffer-file-name buffer))
|
||||
(col (1+ (- point (point-at-bol))))
|
||||
(row (count-lines point (point-min)))
|
||||
(cmd (list clang-executable "-cc1"
|
||||
filename "-fsyntax-only" "-code-completion-at"
|
||||
(format "%s:%s:%s" filename row col))))
|
||||
|
||||
;; eval the config file under buffer locations
|
||||
(let* ((filedir (file-name-directory filename))
|
||||
(config-filename (concat filedir ".clang-completion-config.el")))
|
||||
(when (file-readable-p config-filename)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents config-filename)
|
||||
(eval-buffer))))
|
||||
|
||||
(when (listp clang-completion-flags)
|
||||
(setq cmd (append cmd clang-completion-flags)))
|
||||
(when (stringp clang-completion-pch)
|
||||
(setq cmd (append cmd (list "-include-pch" clang-completion-pch))))
|
||||
(message (format "complete at %s:%s:%s" filename row col))
|
||||
(clang-process-exec cmd)))
|
||||
|
||||
(defun clang-get-process-result (string)
|
||||
(let* ((completion-lines (split-string string "\n")))
|
||||
(delq nil (mapcar 'clang-parse-completion-line completion-lines))))
|
||||
|
||||
(defun clang-get-process-completion-result (string)
|
||||
(mapcar 'car (clang-get-process-result string)))
|
||||
|
||||
(defun clang-get-process-prototype-table (string)
|
||||
(let* ((lines (clang-get-process-result string))
|
||||
(result-table (make-hash-table :test 'equal)))
|
||||
(dolist (line lines)
|
||||
(let* ((key (first line))
|
||||
(value (gethash key result-table)))
|
||||
(setq value (append value (list (second line))))
|
||||
(puthash key value result-table))
|
||||
)
|
||||
(setq clang-completion-doc-table result-table)))
|
||||
|
||||
(defun clang-get-completions (&optional buffer point)
|
||||
;; save all modified buffers
|
||||
(or buffer (setq buffer (current-buffer)))
|
||||
(or point (setq point (point)))
|
||||
(save-some-buffers t)
|
||||
(let* ((output (clang-process buffer point)))
|
||||
(clang-get-process-prototype-table output)
|
||||
(clang-get-process-completion-result output)))
|
||||
|
||||
(defun filter-doc-buffer ()
|
||||
(while (re-search-backward "\\[#.*?::#\\]" nil t)
|
||||
(replace-match ""))
|
||||
(goto-char (point-max))
|
||||
|
||||
(while (re-search-backward "\\[#\\|#\\]" nil t)
|
||||
(replace-match " "))
|
||||
(goto-char (point-max))
|
||||
(while (re-search-backward "{#\\|#}\\|<#\\|#>" nil t)
|
||||
(replace-match ""))
|
||||
)
|
||||
|
||||
(defun clang-get-doc (symbol)
|
||||
;;(setq symbol (symbol-name (intern-soft symbol)))
|
||||
(let ((reslist (gethash symbol clang-completion-doc-table)))
|
||||
(with-temp-buffer
|
||||
(font-lock-add-keywords nil '(("\\[#\\(.*?\\)#\\]" 1
|
||||
'clang-completion-type-face t)))
|
||||
(font-lock-add-keywords nil '(("<#\\(.*?\\)#>" 1
|
||||
'clang-completion-variable-face t)))
|
||||
(font-lock-add-keywords nil '(("\\(.*\\)" 1
|
||||
'clang-completion-plain-face t)))
|
||||
(font-lock-mode t)
|
||||
|
||||
(insert (reduce '(lambda (x y) (concat x "\n" y)) reslist))
|
||||
(font-lock-fontify-buffer)
|
||||
(filter-doc-buffer)
|
||||
|
||||
(message (buffer-string))))
|
||||
;;(with-temp-buffer
|
||||
;; (dolist (proto reslist)
|
||||
;; (insert proto)
|
||||
;; (insert "\n\n"))
|
||||
;; (filter-doc-buffer)
|
||||
;; (buffer-string))
|
||||
;; display nothing
|
||||
(return nil))
|
||||
|
||||
(defvar ac-source-clang-complete
|
||||
'((candidates . (clang-get-completions nil ac-point))
|
||||
(prefix "[^a-zA-Z0-9_]\\(\\(?:[a-zA-Z_][a-zA-Z0-9_]*\\)?\\)" nil 1)
|
||||
(document . clang-get-doc)
|
||||
(requires . 0)
|
||||
(symbol . "C")
|
||||
(cache)))
|
||||
|
||||
;;(defvar ac-source-clang-static-complete
|
||||
;; '((candidates . (clang-get-completions nil ac-point))
|
||||
;; (prefix "::\\(\\(?:[a-zA-Z_][a-zA-Z0-9_]*\\)?\\)" nil 1)
|
||||
;; ;;(document . 'clang-get-doc)
|
||||
;; (requires . 0)
|
||||
;; (symbol . "M")
|
||||
;; (cache)))
|
||||
|
||||
(defun ac-complete-clang ()
|
||||
(interactive)
|
||||
(auto-complete '(ac-source-clang-complete)))
|
||||
|
||||
(provide 'auto-complete-clang)
|
|
@ -1,483 +0,0 @@
|
|||
;;; auto-complete-config.el --- auto-complete additional configuations
|
||||
|
||||
;; Copyright (C) 2009, 2010 Tomohiro Matsuyama
|
||||
|
||||
;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
|
||||
;; Keywords: convenience
|
||||
;; Version: 1.3.1
|
||||
|
||||
;; This program 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 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile
|
||||
(require 'cl))
|
||||
|
||||
(require 'auto-complete)
|
||||
|
||||
|
||||
|
||||
;;;; Additional sources
|
||||
|
||||
;; imenu
|
||||
|
||||
(defvar ac-imenu-index nil)
|
||||
|
||||
(ac-clear-variable-every-10-minutes 'ac-imenu-index)
|
||||
|
||||
(defun ac-imenu-candidates ()
|
||||
(loop with i = 0
|
||||
with stack = (progn
|
||||
(unless (local-variable-p 'ac-imenu-index)
|
||||
(make-local-variable 'ac-imenu-index))
|
||||
(or ac-imenu-index
|
||||
(setq ac-imenu-index
|
||||
(ignore-errors
|
||||
(with-no-warnings
|
||||
(imenu--make-index-alist))))))
|
||||
with result
|
||||
while (and stack (or (not (integerp ac-limit))
|
||||
(< i ac-limit)))
|
||||
for node = (pop stack)
|
||||
if (consp node)
|
||||
do
|
||||
(let ((car (car node))
|
||||
(cdr (cdr node)))
|
||||
(if (consp cdr)
|
||||
(mapc (lambda (child)
|
||||
(push child stack))
|
||||
cdr)
|
||||
(when (and (stringp car)
|
||||
(string-match (concat "^" (regexp-quote ac-prefix)) car))
|
||||
;; Remove extra characters
|
||||
(if (string-match "^.*\\(()\\|=\\|<>\\)$" car)
|
||||
(setq car (substring car 0 (match-beginning 1))))
|
||||
(push car result)
|
||||
(incf i))))
|
||||
finally return (nreverse result)))
|
||||
|
||||
(ac-define-source imenu
|
||||
'((depends imenu)
|
||||
(candidates . ac-imenu-candidates)
|
||||
(symbol . "s")))
|
||||
|
||||
;; gtags
|
||||
|
||||
(defface ac-gtags-candidate-face
|
||||
'((t (:background "lightgray" :foreground "navy")))
|
||||
"Face for gtags candidate"
|
||||
:group 'auto-complete)
|
||||
|
||||
(defface ac-gtags-selection-face
|
||||
'((t (:background "navy" :foreground "white")))
|
||||
"Face for the gtags selected candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defun ac-gtags-candidate ()
|
||||
(ignore-errors
|
||||
(split-string (shell-command-to-string (format "global -ci %s" ac-prefix)) "\n")))
|
||||
|
||||
(ac-define-source gtags
|
||||
'((candidates . ac-gtags-candidate)
|
||||
(candidate-face . ac-gtags-candidate-face)
|
||||
(selection-face . ac-gtags-selection-face)
|
||||
(requires . 3)
|
||||
(symbol . "s")))
|
||||
|
||||
;; yasnippet
|
||||
|
||||
(defface ac-yasnippet-candidate-face
|
||||
'((t (:background "sandybrown" :foreground "black")))
|
||||
"Face for yasnippet candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defface ac-yasnippet-selection-face
|
||||
'((t (:background "coral3" :foreground "white")))
|
||||
"Face for the yasnippet selected candidate."
|
||||
:group 'auto-complete)
|
||||
|
||||
(defun ac-yasnippet-table-hash (table)
|
||||
(cond
|
||||
((fboundp 'yas/snippet-table-hash)
|
||||
(yas/snippet-table-hash table))
|
||||
((fboundp 'yas/table-hash)
|
||||
(yas/table-hash table))))
|
||||
|
||||
(defun ac-yasnippet-table-parent (table)
|
||||
(cond
|
||||
((fboundp 'yas/snippet-table-parent)
|
||||
(yas/snippet-table-parent table))
|
||||
((fboundp 'yas/table-parent)
|
||||
(yas/table-parent table))))
|
||||
|
||||
(defun ac-yasnippet-candidate-1 (table)
|
||||
(with-no-warnings
|
||||
(let ((hashtab (ac-yasnippet-table-hash table))
|
||||
(parent (ac-yasnippet-table-parent table))
|
||||
candidates)
|
||||
(maphash (lambda (key value)
|
||||
(push key candidates))
|
||||
hashtab)
|
||||
(setq candidates (all-completions ac-prefix (nreverse candidates)))
|
||||
(if parent
|
||||
(setq candidates
|
||||
(append candidates (ac-yasnippet-candidate-1 parent))))
|
||||
candidates)))
|
||||
|
||||
(defun ac-yasnippet-candidates ()
|
||||
(with-no-warnings
|
||||
(if (fboundp 'yas/get-snippet-tables)
|
||||
;; >0.6.0
|
||||
(apply 'append (mapcar 'ac-yasnippet-candidate-1 (yas/get-snippet-tables major-mode)))
|
||||
(let ((table
|
||||
(if (fboundp 'yas/snippet-table)
|
||||
;; <0.6.0
|
||||
(yas/snippet-table major-mode)
|
||||
;; 0.6.0
|
||||
(yas/current-snippet-table))))
|
||||
(if table
|
||||
(ac-yasnippet-candidate-1 table))))))
|
||||
|
||||
(ac-define-source yasnippet
|
||||
'((depends yasnippet)
|
||||
(candidates . ac-yasnippet-candidates)
|
||||
(action . yas/expand)
|
||||
(candidate-face . ac-yasnippet-candidate-face)
|
||||
(selection-face . ac-yasnippet-selection-face)
|
||||
(symbol . "a")))
|
||||
|
||||
;; semantic
|
||||
|
||||
(defun ac-semantic-candidates (prefix)
|
||||
(with-no-warnings
|
||||
(delete "" ; semantic sometimes returns an empty string
|
||||
(mapcar 'semantic-tag-name
|
||||
(ignore-errors
|
||||
(or (semantic-analyze-possible-completions
|
||||
(semantic-analyze-current-context))
|
||||
(senator-find-tag-for-completion prefix)))))))
|
||||
|
||||
(ac-define-source semantic
|
||||
'((available . (or (require 'semantic-ia nil t)
|
||||
(require 'semantic/ia nil t)))
|
||||
(candidates . (ac-semantic-candidates ac-prefix))
|
||||
(prefix . c-dot-ref)
|
||||
(requires . 0)
|
||||
(symbol . "m")))
|
||||
|
||||
(ac-define-source semantic-raw
|
||||
'((available . (or (require 'semantic-ia nil t)
|
||||
(require 'semantic/ia nil t)))
|
||||
(candidates . (ac-semantic-candidates ac-prefix))
|
||||
(symbol . "s")))
|
||||
|
||||
;; eclim
|
||||
|
||||
(defun ac-eclim-candidates ()
|
||||
(with-no-warnings
|
||||
(loop for c in (eclim/java-complete)
|
||||
collect (nth 1 c))))
|
||||
|
||||
(ac-define-source eclim
|
||||
'((candidates . ac-eclim-candidates)
|
||||
(prefix . c-dot)
|
||||
(requires . 0)
|
||||
(symbol . "f")))
|
||||
|
||||
;; css
|
||||
|
||||
;; Copied from company-css.el
|
||||
(defconst ac-css-property-alist
|
||||
;; see http://www.w3.org/TR/CSS21/propidx.html
|
||||
'(("azimuth" angle "left-side" "far-left" "left" "center-left" "center"
|
||||
"center-right" "right" "far-right" "right-side" "behind" "leftwards"
|
||||
"rightwards")
|
||||
("background" background-color background-image background-repeat
|
||||
background-attachment background-position)
|
||||
("background-attachment" "scroll" "fixed")
|
||||
("background-color" color "transparent")
|
||||
("background-image" uri "none")
|
||||
("background-position" percentage length "left" "center" "right" percentage
|
||||
length "top" "center" "bottom" "left" "center" "right" "top" "center"
|
||||
"bottom")
|
||||
("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat")
|
||||
("border" border-width border-style border-color)
|
||||
("border-bottom" border)
|
||||
("border-bottom-color" border-color)
|
||||
("border-bottom-style" border-style)
|
||||
("border-bottom-width" border-width)
|
||||
("border-collapse" "collapse" "separate")
|
||||
("border-color" color "transparent")
|
||||
("border-left" border)
|
||||
("border-left-color" border-color)
|
||||
("border-left-style" border-style)
|
||||
("border-left-width" border-width)
|
||||
("border-right" border)
|
||||
("border-right-color" border-color)
|
||||
("border-right-style" border-style)
|
||||
("border-right-width" border-width)
|
||||
("border-spacing" length length)
|
||||
("border-style" border-style)
|
||||
("border-top" border)
|
||||
("border-top-color" border-color)
|
||||
("border-top-style" border-style)
|
||||
("border-top-width" border-width)
|
||||
("border-width" border-width)
|
||||
("bottom" length percentage "auto")
|
||||
("caption-side" "top" "bottom")
|
||||
("clear" "none" "left" "right" "both")
|
||||
("clip" shape "auto")
|
||||
("color" color)
|
||||
("content" "normal" "none" string uri counter "attr()" "open-quote"
|
||||
"close-quote" "no-open-quote" "no-close-quote")
|
||||
("counter-increment" identifier integer "none")
|
||||
("counter-reset" identifier integer "none")
|
||||
("cue" cue-before cue-after)
|
||||
("cue-after" uri "none")
|
||||
("cue-before" uri "none")
|
||||
("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize"
|
||||
"ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize"
|
||||
"w-resize" "text" "wait" "help" "progress")
|
||||
("direction" "ltr" "rtl")
|
||||
("display" "inline" "block" "list-item" "run-in" "inline-block" "table"
|
||||
"inline-table" "table-row-group" "table-header-group" "table-footer-group"
|
||||
"table-row" "table-column-group" "table-column" "table-cell"
|
||||
"table-caption" "none")
|
||||
("elevation" angle "below" "level" "above" "higher" "lower")
|
||||
("empty-cells" "show" "hide")
|
||||
("float" "left" "right" "none")
|
||||
("font" font-style font-variant font-weight font-size "/" line-height
|
||||
font-family "caption" "icon" "menu" "message-box" "small-caption"
|
||||
"status-bar")
|
||||
("font-family" family-name generic-family)
|
||||
("font-size" absolute-size relative-size length percentage)
|
||||
("font-style" "normal" "italic" "oblique")
|
||||
("font-variant" "normal" "small-caps")
|
||||
("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400"
|
||||
"500" "600" "700" "800" "900")
|
||||
("height" length percentage "auto")
|
||||
("left" length percentage "auto")
|
||||
("letter-spacing" "normal" length)
|
||||
("line-height" "normal" number length percentage)
|
||||
("list-style" list-style-type list-style-position list-style-image)
|
||||
("list-style-image" uri "none")
|
||||
("list-style-position" "inside" "outside")
|
||||
("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero"
|
||||
"lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin"
|
||||
"armenian" "georgian" "lower-alpha" "upper-alpha" "none")
|
||||
("margin" margin-width)
|
||||
("margin-bottom" margin-width)
|
||||
("margin-left" margin-width)
|
||||
("margin-right" margin-width)
|
||||
("margin-top" margin-width)
|
||||
("max-height" length percentage "none")
|
||||
("max-width" length percentage "none")
|
||||
("min-height" length percentage)
|
||||
("min-width" length percentage)
|
||||
("orphans" integer)
|
||||
("outline" outline-color outline-style outline-width)
|
||||
("outline-color" color "invert")
|
||||
("outline-style" border-style)
|
||||
("outline-width" border-width)
|
||||
("overflow" "visible" "hidden" "scroll" "auto")
|
||||
("padding" padding-width)
|
||||
("padding-bottom" padding-width)
|
||||
("padding-left" padding-width)
|
||||
("padding-right" padding-width)
|
||||
("padding-top" padding-width)
|
||||
("page-break-after" "auto" "always" "avoid" "left" "right")
|
||||
("page-break-before" "auto" "always" "avoid" "left" "right")
|
||||
("page-break-inside" "avoid" "auto")
|
||||
("pause" time percentage)
|
||||
("pause-after" time percentage)
|
||||
("pause-before" time percentage)
|
||||
("pitch" frequency "x-low" "low" "medium" "high" "x-high")
|
||||
("pitch-range" number)
|
||||
("play-during" uri "mix" "repeat" "auto" "none")
|
||||
("position" "static" "relative" "absolute" "fixed")
|
||||
("quotes" string string "none")
|
||||
("richness" number)
|
||||
("right" length percentage "auto")
|
||||
("speak" "normal" "none" "spell-out")
|
||||
("speak-header" "once" "always")
|
||||
("speak-numeral" "digits" "continuous")
|
||||
("speak-punctuation" "code" "none")
|
||||
("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster"
|
||||
"slower")
|
||||
("stress" number)
|
||||
("table-layout" "auto" "fixed")
|
||||
("text-align" "left" "right" "center" "justify")
|
||||
("text-decoration" "none" "underline" "overline" "line-through" "blink")
|
||||
("text-indent" length percentage)
|
||||
("text-transform" "capitalize" "uppercase" "lowercase" "none")
|
||||
("top" length percentage "auto")
|
||||
("unicode-bidi" "normal" "embed" "bidi-override")
|
||||
("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle"
|
||||
"bottom" "text-bottom" percentage length)
|
||||
("visibility" "visible" "hidden" "collapse")
|
||||
("voice-family" specific-voice generic-voice "*" specific-voice
|
||||
generic-voice)
|
||||
("volume" number percentage "silent" "x-soft" "soft" "medium" "loud"
|
||||
"x-loud")
|
||||
("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line")
|
||||
("widows" integer)
|
||||
("width" length percentage "auto")
|
||||
("word-spacing" "normal" length)
|
||||
("z-index" "auto" integer))
|
||||
"A list of CSS properties and their possible values.")
|
||||
|
||||
(defconst ac-css-value-classes
|
||||
'((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large"
|
||||
"xx-large")
|
||||
(border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove"
|
||||
"ridge" "inset" "outset")
|
||||
(color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy"
|
||||
"olive" "orange" "purple" "red" "silver" "teal" "white" "yellow"
|
||||
"rgb")
|
||||
(counter "counter")
|
||||
(family-name "Courier" "Helvetica" "Times")
|
||||
(generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace")
|
||||
(generic-voice "male" "female" "child")
|
||||
(margin-width "auto") ;; length percentage
|
||||
(relative-size "larger" "smaller")
|
||||
(shape "rect")
|
||||
(uri "url"))
|
||||
"A list of CSS property value classes and their contents.")
|
||||
|
||||
(defconst ac-css-pseudo-classes
|
||||
'("active" "after" "before" "first" "first-child" "first-letter" "first-line"
|
||||
"focus" "hover" "lang" "left" "link" "right" "visited")
|
||||
"Identifiers for CSS pseudo-elements and pseudo-classes.")
|
||||
|
||||
(defvar ac-css-property nil
|
||||
"Current editing property.")
|
||||
|
||||
(defun ac-css-prefix ()
|
||||
(when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:.*\\=" nil t))
|
||||
(setq ac-css-property (match-string 1))
|
||||
(or (ac-prefix-symbol) (point))))
|
||||
|
||||
(defun ac-css-property-candidates ()
|
||||
(or (loop with list = (assoc-default ac-css-property ac-css-property-alist)
|
||||
with seen = nil
|
||||
with value
|
||||
while (setq value (pop list))
|
||||
if (symbolp value)
|
||||
do (unless (memq value seen)
|
||||
(push value seen)
|
||||
(setq list
|
||||
(append list
|
||||
(or (assoc-default value ac-css-value-classes)
|
||||
(assoc-default (symbol-name value) ac-css-property-alist)))))
|
||||
else collect value)
|
||||
ac-css-pseudo-classes))
|
||||
|
||||
(defvar ac-source-css-property
|
||||
'((candidates . ac-css-property-candidates)
|
||||
(prefix . ac-css-prefix)
|
||||
(requires . 0)))
|
||||
|
||||
|
||||
|
||||
;;;; Not maintained sources
|
||||
|
||||
;; ropemacs
|
||||
|
||||
(defvar ac-ropemacs-loaded nil)
|
||||
(defun ac-ropemacs-require ()
|
||||
(with-no-warnings
|
||||
(unless ac-ropemacs-loaded
|
||||
(pymacs-load "ropemacs" "rope-")
|
||||
(if (boundp 'ropemacs-enable-autoimport)
|
||||
(setq ropemacs-enable-autoimport t))
|
||||
(setq ac-ropemacs-loaded t))))
|
||||
|
||||
(defun ac-ropemacs-setup ()
|
||||
(ac-ropemacs-require)
|
||||
;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources))
|
||||
(setq ac-omni-completion-sources '(("\\." ac-source-ropemacs))))
|
||||
|
||||
(defun ac-ropemacs-initialize ()
|
||||
(autoload 'pymacs-apply "pymacs")
|
||||
(autoload 'pymacs-call "pymacs")
|
||||
(autoload 'pymacs-eval "pymacs" nil t)
|
||||
(autoload 'pymacs-exec "pymacs" nil t)
|
||||
(autoload 'pymacs-load "pymacs" nil t)
|
||||
(add-hook 'python-mode-hook 'ac-ropemacs-setup)
|
||||
t)
|
||||
|
||||
(defvar ac-ropemacs-completions-cache nil)
|
||||
(defvar ac-source-ropemacs
|
||||
'((init
|
||||
. (lambda ()
|
||||
(setq ac-ropemacs-completions-cache
|
||||
(mapcar
|
||||
(lambda (completion)
|
||||
(concat ac-prefix completion))
|
||||
(ignore-errors
|
||||
(rope-completions))))))
|
||||
(candidates . ac-ropemacs-completions-cache)))
|
||||
|
||||
;; rcodetools
|
||||
|
||||
(defvar ac-source-rcodetools
|
||||
'((init . (lambda ()
|
||||
(require 'rcodetools)
|
||||
(condition-case x
|
||||
(save-excursion
|
||||
(rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles"))
|
||||
(error) (setq rct-method-completion-table nil))))
|
||||
(candidates . (lambda ()
|
||||
(all-completions
|
||||
ac-prefix
|
||||
(mapcar
|
||||
(lambda (completion)
|
||||
(replace-regexp-in-string "\t.*$" "" (car completion)))
|
||||
rct-method-completion-table))))))
|
||||
|
||||
|
||||
|
||||
;;;; Default settings
|
||||
|
||||
(defun ac-common-setup ()
|
||||
(add-to-list 'ac-sources 'ac-source-filename))
|
||||
|
||||
(defun ac-emacs-lisp-mode-setup ()
|
||||
(setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources)))
|
||||
|
||||
(defun ac-cc-mode-setup ()
|
||||
(setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources)))
|
||||
|
||||
(defun ac-ruby-mode-setup ()
|
||||
(make-local-variable 'ac-ignores)
|
||||
(add-to-list 'ac-ignores "end"))
|
||||
|
||||
(defun ac-css-mode-setup ()
|
||||
(setq ac-sources (append '(ac-source-css-property) ac-sources)))
|
||||
|
||||
(defun ac-config-default ()
|
||||
(setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
|
||||
(add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
|
||||
(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
|
||||
(add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
|
||||
(add-hook 'css-mode-hook 'ac-css-mode-setup)
|
||||
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
|
||||
(global-auto-complete-mode t))
|
||||
|
||||
(provide 'auto-complete-config)
|
||||
;;; auto-complete-config.el ends here
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,504 +0,0 @@
|
|||
;;; concurrent.el --- Concurrent utility functions for emacs lisp
|
||||
|
||||
;; Copyright (C) 2010, 2011, 2012 SAKURAI Masashi
|
||||
|
||||
;; Author: SAKURAI Masashi <m.sakurai at kiwanami.net>
|
||||
;; Version: 0.3.1
|
||||
;; Keywords: deferred, async, concurrent
|
||||
;; Package-Requires: ((deferred "0.3.1"))
|
||||
;; URL: https://github.com/kiwanami/emacs-deferred/blob/master/README-concurrent.markdown
|
||||
|
||||
;; This program 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 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; 'concurrent.el' is a higher level library for concurrent tasks
|
||||
;; based on 'deferred.el'. This library has following features:
|
||||
;;
|
||||
;; - Generator
|
||||
;; - Green thread
|
||||
;; - Semaphore
|
||||
;; - Dataflow
|
||||
;; - Signal/Channel
|
||||
|
||||
(eval-when-compile
|
||||
(require 'cl))
|
||||
|
||||
(require 'deferred)
|
||||
|
||||
(defvar cc:version nil "version number")
|
||||
(setq cc:version "0.3")
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(defmacro cc:aif (test-form then-form &rest else-forms)
|
||||
(declare (debug (form form &rest form)))
|
||||
`(let ((it ,test-form))
|
||||
(if it ,then-form ,@else-forms)))
|
||||
(put 'cc:aif 'lisp-indent-function 2)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Generator
|
||||
|
||||
(defun cc:generator-replace-yield (tree)
|
||||
"[internal] Replace `yield' symbols to calling a function in TREE."
|
||||
(let (ret)
|
||||
(loop for i in tree
|
||||
do (cond
|
||||
((eq i 'yield)
|
||||
(push 'funcall ret)
|
||||
(push i ret))
|
||||
((listp i)
|
||||
(push (cc:generator-replace-yield i) ret))
|
||||
(t
|
||||
(push i ret))))
|
||||
(nreverse ret)))
|
||||
|
||||
(defun cc:generator-line (line)
|
||||
"[internal] Return a macro expansion to execute the sexp LINE
|
||||
asynchronously."
|
||||
(cond
|
||||
;; function object
|
||||
((functionp line)
|
||||
`(setq ,chain (deferred:nextc ,chain ,line)))
|
||||
;; while loop form
|
||||
((eq 'while (car line))
|
||||
(let ((condition (cadr line))
|
||||
(body (cddr line)))
|
||||
`(setq ,chain
|
||||
(deferred:nextc ,chain
|
||||
(deferred:lambda (x)
|
||||
(if ,condition
|
||||
(deferred:nextc
|
||||
(progn
|
||||
,@(cc:generator-replace-yield body)) self)))))))
|
||||
;; statement
|
||||
(t
|
||||
`(setq ,chain
|
||||
(deferred:nextc ,chain
|
||||
(deferred:lambda (x) ,(cc:generator-replace-yield line)))))))
|
||||
|
||||
(defmacro cc:generator (callback &rest body)
|
||||
"Create a generator object. If BODY has `yield' symbols, it
|
||||
means calling callback function CALLBACK."
|
||||
(let ((chain (gensym))
|
||||
(cc (gensym))
|
||||
(waiter (gensym)))
|
||||
`(lexical-let*
|
||||
(,chain
|
||||
(,cc ,callback)
|
||||
(,waiter (deferred:new))
|
||||
(yield (lambda (x) (funcall ,cc x) ,waiter)))
|
||||
(setq ,chain ,waiter)
|
||||
,@(loop for i in body
|
||||
collect
|
||||
(cc:generator-line i))
|
||||
(lambda () (deferred:callback ,waiter)))))
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Thread
|
||||
|
||||
(defun cc:thread-line (wait-time chain line)
|
||||
"[internal] Return a macro expansion to execute the sexp LINE asynchronously.
|
||||
WAIT-TIME is an interval time between tasks.
|
||||
CHAIN is the previous deferred task."
|
||||
(cond
|
||||
;; function object
|
||||
((functionp line)
|
||||
`(setq ,chain (deferred:nextc ,chain ,line)))
|
||||
;; while loop form
|
||||
((eq 'while (car line))
|
||||
(let ((condition (cadr line))
|
||||
(body (cddr line))
|
||||
(retsym (gensym)))
|
||||
`(setq ,chain
|
||||
(deferred:nextc ,chain
|
||||
(deferred:lambda (x)
|
||||
(if ,condition
|
||||
(deferred:nextc
|
||||
(let ((,retsym (progn ,@body)))
|
||||
(if (deferred-p ,retsym) ,retsym
|
||||
(deferred:wait ,wait-time)))
|
||||
self)))))))
|
||||
;; statement
|
||||
(t
|
||||
`(setq ,chain
|
||||
(deferred:nextc ,chain
|
||||
(lambda (x) ,line))))))
|
||||
|
||||
(defmacro cc:thread (wait-time-msec &rest body)
|
||||
"Return a thread object."
|
||||
(let ((chain (gensym))
|
||||
(dstart (gensym)))
|
||||
`(lexical-let*
|
||||
(,chain
|
||||
(,dstart (deferred:new)))
|
||||
(setq ,chain ,dstart)
|
||||
,@(loop for i in body
|
||||
collect
|
||||
(cc:thread-line wait-time-msec chain i))
|
||||
(deferred:callback ,dstart))))
|
||||
(put 'cc:thread 'lisp-indent-function 1)
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Semaphore
|
||||
|
||||
(defstruct cc:semaphore max-permits permits waiting-deferreds)
|
||||
|
||||
(defun cc:semaphore-create(permits-num)
|
||||
"Return a semaphore object with PERMITS-NUM permissions."
|
||||
(make-cc:semaphore :max-permits permits-num :permits permits-num))
|
||||
|
||||
(defun cc:semaphore-acquire(semaphore)
|
||||
"Acquire an execution permission and return deferred object to chain.
|
||||
If this semaphore object has permissions, the subsequent deferred
|
||||
task is executed immediately. If this semaphore object has no
|
||||
permissions, the subsequent deferred task is blocked. After the
|
||||
permission is returned, the task is executed."
|
||||
(cond
|
||||
((< 0 (cc:semaphore-permits semaphore))
|
||||
(decf (cc:semaphore-permits semaphore))
|
||||
(deferred:succeed))
|
||||
(t
|
||||
(let ((d (deferred:new)))
|
||||
(push d (cc:semaphore-waiting-deferreds semaphore))
|
||||
d))))
|
||||
|
||||
(defun cc:semaphore-release(semaphore)
|
||||
"Release an execution permission. The programmer is responsible to return the permissions."
|
||||
(when (<= (cc:semaphore-max-permits semaphore)
|
||||
(cc:semaphore-permits semaphore))
|
||||
(error "Too many calling semaphore-release. [max:%s <= permits:%s]"
|
||||
(cc:semaphore-max-permits semaphore)
|
||||
(cc:semaphore-permits semaphore)))
|
||||
(let ((waiting-deferreds
|
||||
(cc:semaphore-waiting-deferreds semaphore)))
|
||||
(cond
|
||||
(waiting-deferreds
|
||||
(let* ((d (car (last waiting-deferreds))))
|
||||
(setf (cc:semaphore-waiting-deferreds semaphore)
|
||||
(nbutlast waiting-deferreds))
|
||||
(deferred:callback-post d)))
|
||||
(t
|
||||
(incf (cc:semaphore-permits semaphore)))))
|
||||
semaphore)
|
||||
|
||||
(defun cc:semaphore-with (semaphore body-func &optional error-func)
|
||||
"Execute the task BODY-FUNC asynchronously with the semaphore block."
|
||||
(lexical-let ((semaphore semaphore))
|
||||
(deferred:try
|
||||
(deferred:nextc (cc:semaphore-acquire semaphore) body-func)
|
||||
:catch
|
||||
error-func
|
||||
:finally
|
||||
(lambda (x) (cc:semaphore-release semaphore)))))
|
||||
(put 'cc:semaphore-with 'lisp-indent-function 1)
|
||||
|
||||
(defun cc:semaphore-release-all (semaphore)
|
||||
"Release all permissions for resetting the semaphore object.
|
||||
If the semaphore object has some blocked tasks, this function
|
||||
return a list of the tasks and clear the list of the blocked
|
||||
tasks in the semaphore object."
|
||||
(setf (cc:semaphore-permits semaphore)
|
||||
(cc:semaphore-max-permits semaphore))
|
||||
(let ((ds (cc:semaphore-waiting-deferreds semaphore)))
|
||||
(when ds
|
||||
(setf (cc:semaphore-waiting-deferreds semaphore) nil))
|
||||
ds))
|
||||
|
||||
(defun cc:semaphore-interrupt-all (semaphore)
|
||||
"Clear the list of the blocked tasks in the semaphore and return a deferred object to chain.
|
||||
This function is used for the interruption cases."
|
||||
(when (cc:semaphore-waiting-deferreds semaphore)
|
||||
(setf (cc:semaphore-waiting-deferreds semaphore) nil)
|
||||
(setf (cc:semaphore-permits semaphore) 0))
|
||||
(cc:semaphore-acquire semaphore))
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Signal / Channel
|
||||
|
||||
(defun cc:signal-channel (&optional name parent-channel)
|
||||
"Create a channel.
|
||||
NAME is a channel name for debug.
|
||||
PARENT-CHANNEL is an upstream channel. The observers of this channel can receive the upstream signals.
|
||||
In the case of using the function `cc:signal-send', the observers of the upstream channel can not receive the signals of this channel. The function `cc:signal-send-global' can send a signal to the upstream channels from the downstream channels."
|
||||
(lexical-let
|
||||
((ch (cons
|
||||
(or name (format "signal%s" (deferred:uid))) ; name for debug
|
||||
(cons
|
||||
parent-channel ; parent-channel
|
||||
nil)))) ; observers
|
||||
(when parent-channel
|
||||
(cc:signal-connect
|
||||
parent-channel
|
||||
t (lambda (event)
|
||||
(destructuring-bind
|
||||
(event-name event-args) event
|
||||
(apply 'cc:signal-send
|
||||
ch event-name event-args)))))
|
||||
ch))
|
||||
|
||||
(defmacro cc:signal-name (ch)
|
||||
"[internal] Return signal name."
|
||||
`(car ,ch))
|
||||
|
||||
(defmacro cc:signal-parent-channel (ch)
|
||||
"[internal] Return parent channel object."
|
||||
`(cadr ,ch))
|
||||
|
||||
(defmacro cc:signal-observers (ch)
|
||||
"[internal] Return observers."
|
||||
`(cddr ,ch))
|
||||
|
||||
(defun cc:signal-connect (channel event-sym &optional callback)
|
||||
"Append an observer for EVENT-SYM of CHANNEL and return a deferred object.
|
||||
If EVENT-SYM is `t', the observer receives all signals of the channel.
|
||||
If CALLBACK function is given, the deferred object executes the
|
||||
CALLBACK function asynchronously. One can connect subsequent
|
||||
tasks to the returned deferred object."
|
||||
(let ((d (if callback
|
||||
(deferred:new callback)
|
||||
(deferred:new))))
|
||||
(push (cons event-sym d)
|
||||
(cc:signal-observers channel))
|
||||
d))
|
||||
|
||||
(defun cc:signal-send (channel event-sym &rest args)
|
||||
"Send a signal to CHANNEL. If ARGS values are given, observers can get the values by following code: (lambda (event) (destructuring-bind (event-sym (args)) event ... )). "
|
||||
(let ((observers (cc:signal-observers channel))
|
||||
(event (list event-sym args)))
|
||||
(loop for i in observers
|
||||
for name = (car i)
|
||||
for d = (cdr i)
|
||||
if (or (eq event-sym name) (eq t name))
|
||||
do (deferred:callback-post d event))))
|
||||
|
||||
(defun cc:signal-send-global (channel event-sym &rest args)
|
||||
"Send a signal to the most upstream channel. "
|
||||
(cc:aif (cc:signal-parent-channel channel)
|
||||
(apply 'cc:signal-send-global it event-sym args)
|
||||
(apply 'cc:signal-send channel event-sym args)))
|
||||
|
||||
|
||||
(defun cc:signal-disconnect (channel deferred)
|
||||
"Remove the observer object DEFERRED from CHANNEL and return
|
||||
the removed deferred object. "
|
||||
(let ((observers (cc:signal-observers channel)) deleted)
|
||||
(setf
|
||||
(cc:signal-observers channel) ; place
|
||||
(loop for i in observers
|
||||
for d = (cdr i)
|
||||
unless (eq d deferred)
|
||||
collect i
|
||||
else
|
||||
do (push i deleted)))
|
||||
deleted))
|
||||
|
||||
(defun cc:signal-disconnect-all (channel)
|
||||
"Remove all observers."
|
||||
(setf
|
||||
(cc:signal-observers channel) ; place
|
||||
nil))
|
||||
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Dataflow
|
||||
|
||||
;; Dataflow variable entry
|
||||
(defstruct cc:dataflow key (value 'cc:dataflow-undefine) deferred-list)
|
||||
|
||||
(defun cc:dataflow-undefine-p (obj)
|
||||
"[internal] If the variable entry is not bound, return `t'."
|
||||
(eq 'cc:dataflow-undefine (cc:dataflow-value obj)))
|
||||
|
||||
(defun cc:dataflow-environment (&optional parent-env test-func channel)
|
||||
"Create a dataflow environment.
|
||||
PARENT-ENV is the default environment. If this environment doesn't have the entry A and the parent one has the entry A, this environment can return the entry A. One can override the entry, setting another entry A to this environment.
|
||||
TEST-FUNC is a test function that compares the entry keys. The default function is `equal'.
|
||||
CHANNEL is a channel object that sends signals of variable events. Observers can receive following signals:
|
||||
-get-first : the fist referrer is waiting for binding,
|
||||
-get-waiting : another referrer is waiting for binding,
|
||||
-set : a value is bound,
|
||||
-get : returned a bound value,
|
||||
-clear : cleared one entry,
|
||||
-clear-all : cleared all entries.
|
||||
"
|
||||
(let ((this (list parent-env
|
||||
(or test-func 'equal)
|
||||
(or channel
|
||||
(cc:signal-channel
|
||||
'dataflow
|
||||
(and parent-env
|
||||
(cc:dataflow-channel parent-env)))))))
|
||||
(cc:dataflow-init-connect this)
|
||||
this))
|
||||
|
||||
(defun cc:dataflow-init-connect (df)
|
||||
"[internal] Initialize the channel object."
|
||||
(lexical-let ((df df))
|
||||
(cc:dataflow-connect
|
||||
df 'set
|
||||
(lambda (args)
|
||||
(destructuring-bind (event (key)) args
|
||||
(let* ((obj (cc:dataflow-get-object-for-value df key))
|
||||
(value (and obj (cc:dataflow-value obj))))
|
||||
(when obj
|
||||
(loop for i in (cc:aif (cc:dataflow-get-object-for-deferreds df key)
|
||||
(cc:dataflow-deferred-list it) nil)
|
||||
do (deferred:callback-post i value))
|
||||
(setf (cc:dataflow-deferred-list obj) nil))))))))
|
||||
|
||||
(defmacro cc:dataflow-parent-environment (df)
|
||||
"[internal] Return the parent environment."
|
||||
`(car ,df))
|
||||
|
||||
(defmacro cc:dataflow-test (df)
|
||||
"[internal] Return the test function."
|
||||
`(cadr ,df))
|
||||
|
||||
(defmacro cc:dataflow-channel (df)
|
||||
"[internal] Return the channel object."
|
||||
`(caddr ,df))
|
||||
|
||||
(defmacro cc:dataflow-list (df)
|
||||
"[internal] Return the list of deferred object which are waiting for value binding."
|
||||
`(cdddr ,df))
|
||||
|
||||
(defun cc:dataflow-get-object-for-value (df key)
|
||||
"[internal] Return an entry object that is indicated by KEY.
|
||||
If the environment DF doesn't have the entry and the parent one has the entry, this function returns the entry of the parent environment. This function doesn't affect the waiting list."
|
||||
(or
|
||||
(loop for i in (cc:dataflow-list df)
|
||||
with test = (cc:dataflow-test df)
|
||||
if (and (funcall test key (cc:dataflow-key i))
|
||||
(not (cc:dataflow-undefine-p i)))
|
||||
return i)
|
||||
(deferred:aand
|
||||
(cc:dataflow-parent-environment df)
|
||||
(cc:dataflow-get-object-for-value it key))))
|
||||
|
||||
(defun cc:dataflow-get-object-for-deferreds (df key)
|
||||
"[internal] Return a list of the deferred objects those are waiting for value binding.
|
||||
This function doesn't affect the waiting list and doesn't refer the parent environment."
|
||||
(loop for i in (cc:dataflow-list df)
|
||||
with test = (cc:dataflow-test df)
|
||||
if (funcall test key (cc:dataflow-key i))
|
||||
return i))
|
||||
|
||||
(defun cc:dataflow-connect (df event-sym &optional callback)
|
||||
"Append an observer for EVENT-SYM of the channel of DF and return a deferred object.
|
||||
See the docstring of `cc:dataflow-environment' for details."
|
||||
(cc:signal-connect (cc:dataflow-channel df) event-sym callback))
|
||||
|
||||
(defun cc:dataflow-signal (df event &optional arg)
|
||||
"[internal] Send a signal to the channel of DF."
|
||||
(cc:signal-send (cc:dataflow-channel df) event arg))
|
||||
|
||||
(defun cc:dataflow-get (df key)
|
||||
"Return a deferred object that can refer the value which is indicated by KEY.
|
||||
If DF has the entry that bound value, the subsequent deferred task is executed immediately.
|
||||
If not, the task is deferred till a value is bound."
|
||||
(let ((obj (cc:dataflow-get-object-for-value df key)))
|
||||
(cond
|
||||
((and obj (cc:dataflow-value obj))
|
||||
(cc:dataflow-signal df 'get key)
|
||||
(deferred:succeed (cc:dataflow-value obj)))
|
||||
(t
|
||||
(setq obj (cc:dataflow-get-object-for-deferreds df key))
|
||||
(unless obj
|
||||
(setq obj (make-cc:dataflow :key key))
|
||||
(push obj (cc:dataflow-list df))
|
||||
(cc:dataflow-signal df 'get-first key))
|
||||
(let ((d (deferred:new)))
|
||||
(push d (cc:dataflow-deferred-list obj))
|
||||
(cc:dataflow-signal df 'get-waiting key)
|
||||
d)))))
|
||||
|
||||
(defun cc:dataflow-get-sync (df key)
|
||||
"Return the value which is indicated by KEY synchronously.
|
||||
If the environment DF doesn't have an entry of KEY, this function returns nil."
|
||||
(let ((obj (cc:dataflow-get-object-for-value df key)))
|
||||
(and obj (cc:dataflow-value obj))))
|
||||
|
||||
(defun cc:dataflow-set (df key value)
|
||||
"Bind the VALUE to KEY in the environment DF.
|
||||
If DF already has the bound entry of KEY, this function throws an error signal.
|
||||
VALUE can be nil as a value."
|
||||
(let ((obj (cc:dataflow-get-object-for-deferreds df key)))
|
||||
(cond
|
||||
((and obj (not (cc:dataflow-undefine-p obj)))
|
||||
;; overwrite!
|
||||
(error "Can not set a dataflow value. The key [%s] has already had a value. NEW:[%s] OLD:[%s]" key value (cc:dataflow-value obj)))
|
||||
(obj
|
||||
(setf (cc:dataflow-value obj) value))
|
||||
(t
|
||||
;; just value arrived
|
||||
(push (make-cc:dataflow :key key :value value)
|
||||
(cc:dataflow-list df))))
|
||||
;; value arrived and start deferred objects
|
||||
(cc:dataflow-signal df 'set key)
|
||||
value))
|
||||
|
||||
(defun cc:dataflow-clear (df key)
|
||||
"Clear the entry which is indicated by KEY.
|
||||
This function does nothing for the waiting deferred objects."
|
||||
(cc:dataflow-signal df 'clear key)
|
||||
(setf (cc:dataflow-list df)
|
||||
(loop for i in (cc:dataflow-list df)
|
||||
with test = (cc:dataflow-test df)
|
||||
unless (funcall test key (cc:dataflow-key i))
|
||||
collect i)))
|
||||
|
||||
(defun cc:dataflow-get-avalable-pairs (df)
|
||||
"Return an available key-value alist in the environment DF and the parent ones."
|
||||
(append
|
||||
(loop for i in (cc:dataflow-list df)
|
||||
for key = (cc:dataflow-key i)
|
||||
for val = (cc:dataflow-value i)
|
||||
unless (cc:dataflow-undefine-p i) collect (cons key val))
|
||||
(deferred:aand
|
||||
(cc:dataflow-parent-environment df)
|
||||
(cc:dataflow-get-avalable-pairs it))))
|
||||
|
||||
(defun cc:dataflow-get-waiting-keys (df)
|
||||
"Return a list of keys which have waiting deferred objects in the environment DF and the parent ones."
|
||||
(append
|
||||
(loop for i in (cc:dataflow-list df)
|
||||
for key = (cc:dataflow-key i)
|
||||
for val = (cc:dataflow-value i)
|
||||
if (cc:dataflow-undefine-p i) collect key)
|
||||
(deferred:aand
|
||||
(cc:dataflow-parent-environment df)
|
||||
(cc:dataflow-get-waiting-keys it))))
|
||||
|
||||
(defun cc:dataflow-clear-all (df)
|
||||
"Clear all entries in the environment DF.
|
||||
This function does nothing for the waiting deferred objects."
|
||||
(cc:dataflow-signal df 'clear-all)
|
||||
(setf (cc:dataflow-list df) nil))
|
||||
|
||||
|
||||
(provide 'concurrent)
|
||||
;;; concurrent.el ends here
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
; Shalgham - conditional configuration for emacs
|
||||
; Copyright (C) 2010 Sameer Rahmani <lxsameer@gnu.org>
|
||||
;
|
||||
; This program 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 3 of the License, or
|
||||
; any later version.
|
||||
;
|
||||
; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(defun load-suitable-configuration ()
|
||||
"Load the suitable configuration file for current opend file."
|
||||
(interactive)
|
||||
(let (arg)
|
||||
(setq filename (buffer-file-name ()))
|
||||
(message "debug >>>> %s" filename)
|
||||
(t)
|
||||
)
|
||||
)
|
||||
|
||||
(setq find-file-hook
|
||||
'((load-suitable-configuration ())
|
||||
)
|
||||
)
|
File diff suppressed because it is too large
Load Diff
|
@ -1,952 +0,0 @@
|
|||
;;; deferred.el --- Simple asynchronous functions for emacs lisp
|
||||
|
||||
;; Copyright (C) 2010, 2011, 2012 SAKURAI Masashi
|
||||
|
||||
;; Author: SAKURAI Masashi <m.sakurai at kiwanami.net>
|
||||
;; Version: 0.3.1
|
||||
;; Keywords: deferred, async
|
||||
;; URL: https://github.com/kiwanami/emacs-deferred
|
||||
|
||||
;; This program 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 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; 'deferred.el' is a simple library for asynchronous tasks.
|
||||
;; [https://github.com/kiwanami/emacs-deferred]
|
||||
|
||||
;; The API is almost the same as JSDeferred written by cho45. See the
|
||||
;; JSDeferred and Mochikit.Async web sites for further documentations.
|
||||
;; [https://github.com/cho45/jsdeferred]
|
||||
;; [http://mochikit.com/doc/html/MochiKit/Async.html]
|
||||
|
||||
;; A good introduction document (JavaScript)
|
||||
;; [http://cho45.stfuawsc.com/jsdeferred/doc/intro.en.html]
|
||||
|
||||
;;; Samples:
|
||||
|
||||
;; ** HTTP Access
|
||||
|
||||
;; (require 'url)
|
||||
;; (deferred:$
|
||||
;; (deferred:url-retrieve "http://www.gnu.org")
|
||||
;; (deferred:nextc it
|
||||
;; (lambda (buf)
|
||||
;; (insert (with-current-buffer buf (buffer-string)))
|
||||
;; (kill-buffer buf))))
|
||||
|
||||
;; ** Invoking command tasks
|
||||
|
||||
;; (deferred:$
|
||||
;; (deferred:process "wget" "-O" "a.jpg" "http://www.gnu.org/software/emacs/tour/images/splash.png")
|
||||
;; (deferred:nextc it
|
||||
;; (lambda (x) (deferred:process "convert" "a.jpg" "-resize" "100x100" "jpg:b.jpg")))
|
||||
;; (deferred:nextc it
|
||||
;; (lambda (x)
|
||||
;; (insert-image (create-image (expand-file-name "b.jpg") 'jpeg nil)))))
|
||||
|
||||
;; See the readme for further API documentation.
|
||||
|
||||
;; ** Applications
|
||||
|
||||
;; *Inertial scrolling for Emacs
|
||||
;; [https://github.com/kiwanami/emacs-inertial-scroll]
|
||||
|
||||
;; This program makes simple multi-thread function, using
|
||||
;; deferred.el.
|
||||
|
||||
(eval-when-compile
|
||||
(require 'cl))
|
||||
|
||||
(defvar deferred:version nil "deferred.el version")
|
||||
(setq deferred:version "0.3")
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defmacro deferred:aand (test &rest rest)
|
||||
"[internal] Anaphoric AND."
|
||||
(declare (debug ("test" form &rest form)))
|
||||
`(let ((it ,test))
|
||||
(if it ,(if rest `(deferred:aand ,@rest) 'it))))
|
||||
|
||||
(defmacro deferred:$ (&rest elements)
|
||||
"Anaphoric function chain macro for deferred chains."
|
||||
(declare (debug (&rest form)))
|
||||
`(let (it)
|
||||
,@(loop for i in elements
|
||||
with it = nil
|
||||
collect
|
||||
`(setq it ,i))
|
||||
it))
|
||||
|
||||
(defmacro deferred:lambda (args &rest body)
|
||||
"Anaphoric lambda macro for self recursion."
|
||||
(declare (debug ("args" form &rest form)))
|
||||
(let ((argsyms (loop for i in args collect (gensym))))
|
||||
`(lambda (,@argsyms)
|
||||
(lexical-let (self)
|
||||
(setq self (lambda( ,@args ) ,@body))
|
||||
(funcall self ,@argsyms)))))
|
||||
|
||||
(defun deferred:setTimeout (f msec)
|
||||
"[internal] Timer function that emulates the `setTimeout' function in JS."
|
||||
(run-at-time (/ msec 1000.0) nil f))
|
||||
|
||||
(defun deferred:cancelTimeout (id)
|
||||
"[internal] Timer cancellation function that emulates the `cancelTimeout' function in JS."
|
||||
(cancel-timer id))
|
||||
|
||||
(defun deferred:run-with-idle-timer (sec f)
|
||||
"[internal] Wrapper function for run-with-idle-timer."
|
||||
(run-with-idle-timer sec nil f))
|
||||
|
||||
(defun deferred:call-lambda (f &optional arg)
|
||||
"[internal] Call a function with one or zero argument safely.
|
||||
The lambda function can define with zero and one argument."
|
||||
(condition-case err
|
||||
(funcall f arg)
|
||||
('wrong-number-of-arguments
|
||||
(display-warning 'deferred "\
|
||||
Callback that takes no argument may be specified.
|
||||
Passing callback with no argument is deprecated.
|
||||
Callback must take one argument.
|
||||
Or, this error is coming from somewhere inside of the callback: %S" err)
|
||||
(condition-case err2
|
||||
(funcall f)
|
||||
('wrong-number-of-arguments
|
||||
(signal 'wrong-number-of-arguments (cdr err))))))) ; return the first error
|
||||
|
||||
;; debug
|
||||
|
||||
(eval-and-compile
|
||||
(defvar deferred:debug nil "Debug output switch."))
|
||||
(defvar deferred:debug-count 0 "[internal] Debug output counter.")
|
||||
|
||||
(defmacro deferred:message (&rest args)
|
||||
"[internal] Debug log function."
|
||||
(when deferred:debug
|
||||
`(progn
|
||||
(with-current-buffer (get-buffer-create "*deferred:debug*")
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(insert (format "%5i %s\n" deferred:debug-count (format ,@args)))))
|
||||
(incf deferred:debug-count))))
|
||||
|
||||
(defun deferred:message-mark ()
|
||||
"[internal] Debug log function."
|
||||
(interactive)
|
||||
(deferred:message "==================== mark ==== %s"
|
||||
(format-time-string "%H:%M:%S" (current-time))))
|
||||
|
||||
(defun deferred:pp (d)
|
||||
(require 'pp)
|
||||
(deferred:$
|
||||
(deferred:nextc d
|
||||
(lambda (x)
|
||||
(pp-display-expression x "*deferred:pp*")))
|
||||
(deferred:error it
|
||||
(lambda (e)
|
||||
(pp-display-expression e "*deferred:pp*")))
|
||||
(deferred:nextc it
|
||||
(lambda (x) (pop-to-buffer "*deferred:pp*")))))
|
||||
|
||||
(defvar deferred:debug-on-signal nil
|
||||
"If non nil, the value `debug-on-signal' is substituted this
|
||||
value in the `condition-case' form in deferred
|
||||
implementations. Then, Emacs debugger can catch an error occurred
|
||||
in the asynchronous tasks.")
|
||||
|
||||
(defmacro deferred:condition-case (var protected-form &rest handlers)
|
||||
"[internal] Custom condition-case. See the comment for
|
||||
`deferred:debug-on-signal'."
|
||||
(declare (debug (symbolp form &rest form)))
|
||||
`(cond
|
||||
((null deferred:debug-on-signal)
|
||||
(condition-case ,var ,protected-form ,@handlers))
|
||||
(t
|
||||
(let ((deferred:debug-on-signal-backup debug-on-signal))
|
||||
(setq debug-on-signal deferred:debug-on-signal)
|
||||
(unwind-protect
|
||||
(condition-case ,var ,protected-form ,@handlers)
|
||||
(setq debug-on-signal deferred:debug-on-signal-backup))))))
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Back end functions of deferred tasks
|
||||
|
||||
(defvar deferred:tick-time 0.001
|
||||
"Waiting time between asynchronous tasks (second).
|
||||
The shorter waiting time increases the load of Emacs. The end
|
||||
user can tune this paramter. However, applications should not
|
||||
modify it because the applications run on various environments.")
|
||||
|
||||
(defvar deferred:queue nil
|
||||
"[internal] The execution queue of deferred objects.
|
||||
See the functions `deferred:post-task' and `deferred:worker'.")
|
||||
|
||||
(defmacro deferred:pack (a b c)
|
||||
`(cons ,a (cons ,b ,c)))
|
||||
|
||||
(defun deferred:schedule-worker ()
|
||||
"[internal] Schedule consuming a deferred task in the execution queue."
|
||||
(run-at-time deferred:tick-time nil 'deferred:worker))
|
||||
|
||||
(defun deferred:post-task (d which &optional arg)
|
||||
"[internal] Add a deferred object to the execution queue
|
||||
`deferred:queue' and schedule to execute.
|
||||
D is a deferred object. WHICH is a symbol, `ok' or `ng'. ARG is
|
||||
an argument value for execution of the deferred task."
|
||||
(push (deferred:pack d which arg) deferred:queue)
|
||||
(deferred:message "QUEUE-POST [%s]: %s"
|
||||
(length deferred:queue) (deferred:pack d which arg))
|
||||
(deferred:schedule-worker)
|
||||
d)
|
||||
|
||||
(defun deferred:clear-queue ()
|
||||
"Clear the execution queue. For test and debugging."
|
||||
(interactive)
|
||||
(deferred:message "QUEUE-CLEAR [%s -> 0]" (length deferred:queue))
|
||||
(setq deferred:queue nil))
|
||||
|
||||
(defun deferred:esc-msg (msg)
|
||||
"[internal] Escaping the character '%'."
|
||||
(replace-regexp-in-string
|
||||
"\\([^%]\\|^\\)%\\([^%]\\)" "\\1%%\\2" msg))
|
||||
|
||||
(defun deferred:worker ()
|
||||
"[internal] Consume a deferred task.
|
||||
Mainly this function is called by timer asynchronously."
|
||||
(when deferred:queue
|
||||
(let* ((pack (car (last deferred:queue)))
|
||||
(d (car pack))
|
||||
(which (cadr pack))
|
||||
(arg (cddr pack)) value)
|
||||
(setq deferred:queue (nbutlast deferred:queue))
|
||||
(condition-case err
|
||||
(setq value (deferred:exec-task d which arg))
|
||||
(error
|
||||
(deferred:message "ERROR : %s" err)
|
||||
(message "deferred error : %s" err)))
|
||||
value)))
|
||||
|
||||
(defun deferred:flush-queue! ()
|
||||
"Call all deferred tasks synchronously. For test and debugging."
|
||||
(let (value)
|
||||
(while deferred:queue
|
||||
(setq value (deferred:worker)))
|
||||
value))
|
||||
|
||||
(defun deferred:sync! (d)
|
||||
"Wait for the given deferred task. For test and debugging."
|
||||
(progn
|
||||
(lexical-let ((last-value 'deferred:undefined*))
|
||||
(deferred:nextc d
|
||||
(lambda (x) (setq last-value x)))
|
||||
(while (eq 'deferred:undefined* last-value)
|
||||
(sit-for 0.05)
|
||||
(sleep-for 0.05))
|
||||
last-value)))
|
||||
|
||||
|
||||
|
||||
;; Struct: deferred
|
||||
;;
|
||||
;; callback : a callback function (default `deferred:default-callback')
|
||||
;; errorback : an errorback function (default `deferred:default-errorback')
|
||||
;; cancel : a canceling function (default `deferred:default-cancel')
|
||||
;; next : a next chained deferred object (default nil)
|
||||
;; status : if 'ok or 'ng, this deferred has a result (error) value. (default nil)
|
||||
;; value : saved value (default nil)
|
||||
;;
|
||||
(defstruct deferred
|
||||
(callback 'deferred:default-callback)
|
||||
(errorback 'deferred:default-errorback)
|
||||
(cancel 'deferred:default-cancel)
|
||||
next status value)
|
||||
|
||||
(defun deferred:default-callback (i)
|
||||
"[internal] Default callback function."
|
||||
(identity i))
|
||||
|
||||
(defun deferred:default-errorback (error-msg)
|
||||
"[internal] Default errorback function."
|
||||
(error (deferred:esc-msg
|
||||
(cond
|
||||
((stringp error-msg) error-msg)
|
||||
((listp error-msg) (cadr error-msg))
|
||||
(t (format "%S" error-msg))))))
|
||||
|
||||
(defun deferred:default-cancel (d)
|
||||
"[internal] Default canceling function."
|
||||
(deferred:message "CANCEL : %s" d)
|
||||
(setf (deferred-callback d) 'deferred:default-callback)
|
||||
(setf (deferred-errorback d) 'deferred:default-errorback)
|
||||
(setf (deferred-next d) nil)
|
||||
d)
|
||||
|
||||
(defun deferred:exec-task (d which &optional arg)
|
||||
"[internal] Executing deferred task. If the deferred object has
|
||||
next deferred task or the return value is a deferred object, this
|
||||
function adds the task to the execution queue.
|
||||
D is a deferred object. WHICH is a symbol, `ok' or `ng'. ARG is
|
||||
an argument value for execution of the deferred task."
|
||||
(deferred:message "EXEC : %s / %s / %s" d which arg)
|
||||
(when (null d) (error "deferred:exec-task was given a nil."))
|
||||
(let ((callback (if (eq which 'ok)
|
||||
(deferred-callback d)
|
||||
(deferred-errorback d))))
|
||||
(cond
|
||||
(callback
|
||||
(let (value (next-deferred (deferred-next d)))
|
||||
(deferred:condition-case err
|
||||
(progn
|
||||
(setq value
|
||||
(deferred:call-lambda callback arg))
|
||||
(cond
|
||||
((deferred-p value)
|
||||
(deferred:message "WAIT NEST : %s" value)
|
||||
(if next-deferred
|
||||
(deferred:set-next value next-deferred)
|
||||
value))
|
||||
(t
|
||||
(if next-deferred
|
||||
(deferred:post-task next-deferred 'ok value)
|
||||
(setf (deferred-status d) 'ok)
|
||||
(setf (deferred-value d) value)
|
||||
value))))
|
||||
(error
|
||||
(cond
|
||||
(next-deferred
|
||||
(deferred:post-task next-deferred 'ng (error-message-string err)))
|
||||
(deferred:onerror
|
||||
(deferred:call-lambda deferred:onerror err))
|
||||
(t
|
||||
(deferred:message "ERROR : %s" err)
|
||||
(message "deferred error : %s" err)
|
||||
(setf (deferred-status d) 'ng)
|
||||
(setf (deferred-value d) (error-message-string err))
|
||||
(deferred:esc-msg (error-message-string err))))))))
|
||||
(t ; <= (null callback)
|
||||
(let ((next-deferred (deferred-next d)))
|
||||
(cond
|
||||
(next-deferred
|
||||
(deferred:exec-task next-deferred which arg))
|
||||
((eq which 'ok) arg)
|
||||
(t (error (deferred:esc-msg arg)))))))))
|
||||
|
||||
(defun deferred:set-next (prev next)
|
||||
"[internal] Connect deferred objects."
|
||||
(setf (deferred-next prev) next)
|
||||
(cond
|
||||
((eq 'ok (deferred-status prev))
|
||||
(setf (deferred-status prev) nil)
|
||||
(let ((ret (deferred:exec-task
|
||||
next 'ok (deferred-value prev))))
|
||||
(if (deferred-p ret) ret
|
||||
next)))
|
||||
((eq 'ng (deferred-status prev))
|
||||
(setf (deferred-status prev) nil)
|
||||
(let ((ret (deferred:exec-task next 'ng (deferred-value prev))))
|
||||
(if (deferred-p ret) ret
|
||||
next)))
|
||||
(t
|
||||
next)))
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Basic functions for deferred objects
|
||||
|
||||
(defun deferred:new (&optional callback)
|
||||
"Create a deferred object."
|
||||
(if callback
|
||||
(make-deferred :callback callback)
|
||||
(make-deferred)))
|
||||
|
||||
(defun deferred:callback (d &optional arg)
|
||||
"Start deferred chain with a callback message."
|
||||
(deferred:exec-task d 'ok arg))
|
||||
|
||||
(defun deferred:errorback (d &optional arg)
|
||||
"Start deferred chain with an errorback message."
|
||||
(deferred:exec-task d 'ng arg))
|
||||
|
||||
(defun deferred:callback-post (d &optional arg)
|
||||
"Add the deferred object to the execution queue."
|
||||
(deferred:post-task d 'ok arg))
|
||||
|
||||
(defun deferred:errorback-post (d &optional arg)
|
||||
"Add the deferred object to the execution queue."
|
||||
(deferred:post-task d 'ng arg))
|
||||
|
||||
(defun deferred:cancel (d)
|
||||
"Cancel all callbacks and deferred chain in the deferred object."
|
||||
(deferred:message "CANCEL : %s" d)
|
||||
(funcall (deferred-cancel d) d)
|
||||
d)
|
||||
|
||||
(defun deferred:status (d)
|
||||
"Return a current status of the deferred object. The returned value means following:
|
||||
`ok': the callback was called and waiting for next deferred.
|
||||
`ng': the errorback was called and waiting for next deferred.
|
||||
nil: The neither callback nor errorback was not called."
|
||||
(deferred-status d))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Basic utility functions
|
||||
|
||||
(defvar deferred:onerror nil
|
||||
"Default error handler. This value is nil or a function that
|
||||
have one argument for the error message.")
|
||||
|
||||
(defun deferred:succeed (&optional arg)
|
||||
"Create a synchronous deferred object."
|
||||
(let ((d (deferred:new)))
|
||||
(deferred:exec-task d 'ok arg)
|
||||
d))
|
||||
|
||||
(defun deferred:fail (&optional arg)
|
||||
"Create a synchronous deferred object."
|
||||
(let ((d (deferred:new)))
|
||||
(deferred:exec-task d 'ok arg)
|
||||
d))
|
||||
|
||||
(defun deferred:next (&optional callback arg)
|
||||
"Create a deferred object and schedule executing. This function
|
||||
is a short cut of following code:
|
||||
(deferred:callback-post (deferred:new callback))."
|
||||
(let ((d (if callback
|
||||
(make-deferred :callback callback)
|
||||
(make-deferred))))
|
||||
(deferred:callback-post d arg)
|
||||
d))
|
||||
|
||||
(defun deferred:nextc (d callback)
|
||||
"Create a deferred object with OK callback and connect it to the given deferred object."
|
||||
(let ((nd (make-deferred :callback callback)))
|
||||
(deferred:set-next d nd)))
|
||||
|
||||
(defun deferred:error (d callback)
|
||||
"Create a deferred object with errorback and connect it to the given deferred object."
|
||||
(let ((nd (make-deferred :errorback callback)))
|
||||
(deferred:set-next d nd)))
|
||||
|
||||
(defun deferred:watch (d callback)
|
||||
"Create a deferred object with watch task and connect it to the given deferred object.
|
||||
The watch task CALLBACK can not affect deferred chains with
|
||||
return values. This function is used in following purposes,
|
||||
simulation of try-finally block in asynchronous tasks, progress
|
||||
monitoring of tasks."
|
||||
(lexical-let*
|
||||
((callback callback)
|
||||
(normal (lambda (x) (ignore-errors (deferred:call-lambda callback x)) x))
|
||||
(err (lambda (e) (ignore-errors (deferred:call-lambda callback e)) (error e))))
|
||||
(let ((nd (make-deferred :callback normal :errorback err)))
|
||||
(deferred:set-next d nd))))
|
||||
|
||||
(defun deferred:wait (msec)
|
||||
"Return a deferred object scheduled at MSEC millisecond later."
|
||||
(lexical-let
|
||||
((d (deferred:new)) (start-time (float-time)) timer)
|
||||
(deferred:message "WAIT : %s" msec)
|
||||
(setq timer (deferred:setTimeout
|
||||
(lambda ()
|
||||
(deferred:exec-task d 'ok
|
||||
(* 1000.0 (- (float-time) start-time)))
|
||||
nil) msec))
|
||||
(setf (deferred-cancel d)
|
||||
(lambda (x)
|
||||
(deferred:cancelTimeout timer)
|
||||
(deferred:default-cancel x)))
|
||||
d))
|
||||
|
||||
(defun deferred:wait-idle (msec)
|
||||
"Return a deferred object which will run when Emacs has been
|
||||
idle for MSEC millisecond."
|
||||
(lexical-let
|
||||
((d (deferred:new)) (start-time (float-time)) timer)
|
||||
(deferred:message "WAIT-IDLE : %s" msec)
|
||||
(setq timer
|
||||
(deferred:run-with-idle-timer
|
||||
(/ msec 1000.0)
|
||||
(lambda ()
|
||||
(deferred:exec-task d 'ok
|
||||
(* 1000.0 (- (float-time) start-time)))
|
||||
nil)))
|
||||
(setf (deferred-cancel d)
|
||||
(lambda (x)
|
||||
(deferred:cancelTimeout timer)
|
||||
(deferred:default-cancel x)))
|
||||
d))
|
||||
|
||||
(defun deferred:call (f &rest args)
|
||||
"Call the given function asynchronously."
|
||||
(lexical-let ((f f) (args args))
|
||||
(deferred:next
|
||||
(lambda (x)
|
||||
(apply f args)))))
|
||||
|
||||
(defun deferred:apply (f &optional args)
|
||||
"Call the given function asynchronously."
|
||||
(lexical-let ((f f) (args args))
|
||||
(deferred:next
|
||||
(lambda (x)
|
||||
(apply f args)))))
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Utility functions
|
||||
|
||||
(defun deferred:empty-p (times-or-list)
|
||||
"[internal] Return non-nil if TIMES-OR-LIST is the number zero or nil."
|
||||
(or (and (numberp times-or-list) (<= times-or-list 0))
|
||||
(and (listp times-or-list) (null times-or-list))))
|
||||
|
||||
(defun deferred:loop (times-or-list func)
|
||||
"Return a iteration deferred object."
|
||||
(deferred:message "LOOP : %s" times-or-list)
|
||||
(if (deferred:empty-p times-or-list) (deferred:next)
|
||||
(lexical-let*
|
||||
(items (rd
|
||||
(cond
|
||||
((numberp times-or-list)
|
||||
(loop for i from 0 below times-or-list
|
||||
with ld = (deferred:next)
|
||||
do
|
||||
(push ld items)
|
||||
(setq ld
|
||||
(lexical-let ((i i) (func func))
|
||||
(deferred:nextc ld (lambda (x) (deferred:call-lambda func i)))))
|
||||
finally return ld))
|
||||
((listp times-or-list)
|
||||
(loop for i in times-or-list
|
||||
with ld = (deferred:next)
|
||||
do
|
||||
(push ld items)
|
||||
(setq ld
|
||||
(lexical-let ((i i) (func func))
|
||||
(deferred:nextc ld (lambda (x) (deferred:call-lambda func i)))))
|
||||
finally return ld)))))
|
||||
(setf (deferred-cancel rd)
|
||||
(lambda (x) (deferred:default-cancel x)
|
||||
(loop for i in items
|
||||
do (deferred:cancel i))))
|
||||
rd)))
|
||||
|
||||
(defun deferred:trans-multi-args (args self-func list-func main-func)
|
||||
"[internal] Check the argument values and dispatch to methods."
|
||||
(cond
|
||||
((and (= 1 (length args)) (consp (car args)) (not (functionp (car args))))
|
||||
(let ((lst (car args)))
|
||||
(cond
|
||||
((or (null lst) (null (car lst)))
|
||||
(deferred:next))
|
||||
((deferred:aand lst (car it) (or (functionp it) (deferred-p it)))
|
||||
;; a list of deferred objects
|
||||
(funcall list-func lst))
|
||||
((deferred:aand lst (consp it))
|
||||
;; an alist of deferred objects
|
||||
(funcall main-func lst))
|
||||
(t (error "Wrong argument type. %s" args)))))
|
||||
(t (funcall self-func args))))
|
||||
|
||||
(defun deferred:parallel-array-to-alist (lst)
|
||||
"[internal] Translation array to alist."
|
||||
(loop for d in lst
|
||||
for i from 0 below (length lst)
|
||||
collect (cons i d)))
|
||||
|
||||
(defun deferred:parallel-alist-to-array (alst)
|
||||
"[internal] Translation alist to array."
|
||||
(loop for pair in
|
||||
(sort alst (lambda (x y)
|
||||
(< (car x) (car y))))
|
||||
collect (cdr pair)))
|
||||
|
||||
(defun deferred:parallel-func-to-deferred (alst)
|
||||
"[internal] Normalization for parallel and earlier arguments."
|
||||
(loop for pair in alst
|
||||
for d = (cdr pair)
|
||||
collect
|
||||
(progn
|
||||
(unless (deferred-p d)
|
||||
(setf (cdr pair) (deferred:next d)))
|
||||
pair)))
|
||||
|
||||
(defun deferred:parallel-main (alst)
|
||||
"[internal] Deferred alist implementation for `deferred:parallel'. "
|
||||
(deferred:message "PARALLEL<KEY . VALUE>" )
|
||||
(lexical-let ((nd (deferred:new))
|
||||
(len (length alst))
|
||||
values)
|
||||
(loop for pair in
|
||||
(deferred:parallel-func-to-deferred alst)
|
||||
with cd ; current child deferred
|
||||
do
|
||||
(lexical-let ((name (car pair)))
|
||||
(setq cd
|
||||
(deferred:nextc (cdr pair)
|
||||
(lambda (x)
|
||||
(push (cons name x) values)
|
||||
(deferred:message "PARALLEL VALUE [%s/%s] %s"
|
||||
(length values) len (cons name x))
|
||||
(when (= len (length values))
|
||||
(deferred:message "PARALLEL COLLECTED")
|
||||
(deferred:post-task nd 'ok (nreverse values)))
|
||||
nil)))
|
||||
(deferred:error cd
|
||||
(lambda (e)
|
||||
(push (cons name e) values)
|
||||
(deferred:message "PARALLEL ERROR [%s/%s] %s"
|
||||
(length values) len (cons name e))
|
||||
(when (= (length values) len)
|
||||
(deferred:message "PARALLEL COLLECTED")
|
||||
(deferred:post-task nd 'ok (nreverse values)))
|
||||
nil))))
|
||||
nd))
|
||||
|
||||
(defun deferred:parallel-list (lst)
|
||||
"[internal] Deferred list implementation for `deferred:parallel'. "
|
||||
(deferred:message "PARALLEL<LIST>" )
|
||||
(lexical-let*
|
||||
((pd (deferred:parallel-main (deferred:parallel-array-to-alist lst)))
|
||||
(rd (deferred:nextc pd 'deferred:parallel-alist-to-array)))
|
||||
(setf (deferred-cancel rd)
|
||||
(lambda (x) (deferred:default-cancel x)
|
||||
(deferred:cancel pd)))
|
||||
rd))
|
||||
|
||||
(defun deferred:parallel (&rest args)
|
||||
"Return a deferred object that calls given deferred objects or
|
||||
functions in parallel and wait for all callbacks. The following
|
||||
deferred task will be called with an array of the return
|
||||
values. ARGS can be a list or an alist of deferred objects or
|
||||
functions."
|
||||
(deferred:message "PARALLEL : %s" args)
|
||||
(deferred:trans-multi-args args
|
||||
'deferred:parallel 'deferred:parallel-list 'deferred:parallel-main))
|
||||
|
||||
(defun deferred:earlier-main (alst)
|
||||
"[internal] Deferred alist implementation for `deferred:earlier'. "
|
||||
(deferred:message "EARLIER<KEY . VALUE>" )
|
||||
(lexical-let ((nd (deferred:new))
|
||||
(len (length alst))
|
||||
value results)
|
||||
(loop for pair in
|
||||
(deferred:parallel-func-to-deferred alst)
|
||||
with cd ; current child deferred
|
||||
do
|
||||
(lexical-let ((name (car pair)))
|
||||
(setq cd
|
||||
(deferred:nextc (cdr pair)
|
||||
(lambda (x)
|
||||
(push (cons name x) results)
|
||||
(cond
|
||||
((null value)
|
||||
(setq value (cons name x))
|
||||
(deferred:message "EARLIER VALUE %s" (cons name value))
|
||||
(deferred:post-task nd 'ok value))
|
||||
(t
|
||||
(deferred:message "EARLIER MISS [%s/%s] %s" (length results) len (cons name value))
|
||||
(when (eql (length results) len)
|
||||
(deferred:message "EARLIER COLLECTED"))))
|
||||
nil)))
|
||||
(deferred:error cd
|
||||
(lambda (e)
|
||||
(push (cons name e) results)
|
||||
(deferred:message "EARLIER ERROR [%s/%s] %s" (length results) len (cons name e))
|
||||
(when (and (eql (length results) len) (null value))
|
||||
(deferred:message "EARLIER FAILED")
|
||||
(deferred:post-task nd 'ok nil))
|
||||
nil))))
|
||||
nd))
|
||||
|
||||
(defun deferred:earlier-list (lst)
|
||||
"[internal] Deferred list implementation for `deferred:earlier'. "
|
||||
(deferred:message "EARLIER<LIST>" )
|
||||
(lexical-let*
|
||||
((pd (deferred:earlier-main (deferred:parallel-array-to-alist lst)))
|
||||
(rd (deferred:nextc pd (lambda (x) (cdr x)))))
|
||||
(setf (deferred-cancel rd)
|
||||
(lambda (x) (deferred:default-cancel x)
|
||||
(deferred:cancel pd)))
|
||||
rd))
|
||||
|
||||
|
||||
(defun deferred:earlier (&rest args)
|
||||
"Return a deferred object that calls given deferred objects or
|
||||
functions in parallel and wait for the first callback. The
|
||||
following deferred task will be called with the first return
|
||||
value. ARGS can be a list or an alist of deferred objects or
|
||||
functions."
|
||||
(deferred:message "EARLIER : %s" args)
|
||||
(deferred:trans-multi-args args
|
||||
'deferred:earlier 'deferred:earlier-list 'deferred:earlier-main))
|
||||
|
||||
(defmacro deferred:timeout (timeout-msec timeout-form d)
|
||||
"Time out macro on a deferred task D. If the deferred task D
|
||||
does not complete within TIMEOUT-MSEC, this macro cancels the
|
||||
deferred task and return the TIMEOUT-FORM."
|
||||
`(deferred:earlier
|
||||
(deferred:nextc (deferred:wait ,timeout-msec)
|
||||
(lambda (x) ,timeout-form))
|
||||
,d))
|
||||
|
||||
(defmacro* deferred:try (d &key catch finally)
|
||||
"Try-catch-finally macro. This macro simulates the
|
||||
try-catch-finally block asynchronously. CATCH and FINALLY can be
|
||||
nil. Because of asynchrony, this macro does not ensure that the
|
||||
task FINALLY should be called."
|
||||
(let ((chain
|
||||
(if catch `((deferred:error it ,catch)))))
|
||||
(when finally
|
||||
(setq chain (append chain `((deferred:watch it ,finally)))))
|
||||
`(deferred:$ ,d ,@chain)))
|
||||
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Application functions
|
||||
|
||||
(defvar deferred:uid 0 "[internal] Sequence number for some utilities. See the function `deferred:uid'.")
|
||||
|
||||
(defun deferred:uid ()
|
||||
"[internal] Generate a sequence number."
|
||||
(incf deferred:uid))
|
||||
|
||||
(defun deferred:buffer-string (strformat buf)
|
||||
"[internal] Return a string in the buffer with the given format."
|
||||
(format strformat
|
||||
(with-current-buffer buf (buffer-string))))
|
||||
|
||||
(defun deferred:process (command &rest args)
|
||||
"A deferred wrapper of `start-process'. Return a deferred
|
||||
object. The process name and buffer name of the argument of the
|
||||
`start-process' are generated by this function automatically.
|
||||
The next deferred object receives stdout string from the command
|
||||
process."
|
||||
(deferred:process-gen 'start-process command args))
|
||||
|
||||
(defun deferred:process-shell (command &rest args)
|
||||
"A deferred wrapper of `start-process-shell-command'. Return a deferred
|
||||
object. The process name and buffer name of the argument of the
|
||||
`start-process-shell-command' are generated by this function automatically.
|
||||
The next deferred object receives stdout string from the command
|
||||
process."
|
||||
(deferred:process-gen 'start-process-shell-command command args))
|
||||
|
||||
(defun deferred:process-buffer (command &rest args)
|
||||
"A deferred wrapper of `start-process'. Return a deferred
|
||||
object. The process name and buffer name of the argument of the
|
||||
`start-process' are generated by this function automatically.
|
||||
The next deferred object receives stdout buffer from the command
|
||||
process."
|
||||
(deferred:process-buffer-gen 'start-process command args))
|
||||
|
||||
(defun deferred:process-shell-buffer (command &rest args)
|
||||
"A deferred wrapper of `start-process-shell-command'. Return a deferred
|
||||
object. The process name and buffer name of the argument of the
|
||||
`start-process-shell-command' are generated by this function automatically.
|
||||
The next deferred object receives stdout buffer from the command
|
||||
process."
|
||||
(deferred:process-buffer-gen 'start-process-shell-command command args))
|
||||
|
||||
(defun deferred:process-gen (f command args)
|
||||
"[internal]"
|
||||
(lexical-let
|
||||
((pd (deferred:process-buffer-gen f command args)) d)
|
||||
(setq d (deferred:nextc pd
|
||||
(lambda (buf)
|
||||
(prog1
|
||||
(with-current-buffer buf (buffer-string))
|
||||
(kill-buffer buf)))))
|
||||
(setf (deferred-cancel d)
|
||||
(lambda (x)
|
||||
(deferred:default-cancel d)
|
||||
(deferred:default-cancel pd)))
|
||||
d))
|
||||
|
||||
(defun deferred:process-buffer-gen (f command args)
|
||||
"[internal]"
|
||||
(let ((d (deferred:next)) (uid (deferred:uid)))
|
||||
(lexical-let
|
||||
((f f) (command command) (args args)
|
||||
(proc-name (format "*deferred:*%s*:%s" command uid))
|
||||
(buf-name (format " *deferred:*%s*:%s" command uid))
|
||||
(pwd default-directory)
|
||||
(nd (deferred:new)) proc-buf proc)
|
||||
(deferred:nextc d
|
||||
(lambda (x)
|
||||
(setq proc-buf (get-buffer-create buf-name))
|
||||
(condition-case err
|
||||
(let ((default-directory pwd))
|
||||
(setq proc
|
||||
(if (null (car args))
|
||||
(apply f proc-name buf-name command nil)
|
||||
(apply f proc-name buf-name command args)))
|
||||
(set-process-sentinel
|
||||
proc
|
||||
(lambda (proc event)
|
||||
(cond
|
||||
((string-match "exited abnormally" event)
|
||||
(let ((msg (if (buffer-live-p proc-buf)
|
||||
(deferred:buffer-string
|
||||
(format "Process [%s] exited abnormally : %%s"
|
||||
command) proc-buf)
|
||||
(concat "Process exited abnormally: " proc-name))))
|
||||
(kill-buffer proc-buf)
|
||||
(deferred:post-task nd 'ng msg)))
|
||||
((equal event "finished\n")
|
||||
(deferred:post-task nd 'ok proc-buf)))))
|
||||
(setf (deferred-cancel nd)
|
||||
(lambda (x) (deferred:default-cancel x)
|
||||
(when proc
|
||||
(kill-process proc)
|
||||
(kill-buffer proc-buf)))))
|
||||
(error (deferred:post-task nd 'ng (error-message-string err))))
|
||||
nil))
|
||||
nd)))
|
||||
|
||||
(defmacro deferred:processc (d command &rest args)
|
||||
"Process chain of `deferred:process'."
|
||||
`(deferred:nextc ,d
|
||||
(lambda (,(gensym)) (deferred:process ,command ,@args))))
|
||||
|
||||
(defmacro deferred:process-bufferc (d command &rest args)
|
||||
"Process chain of `deferred:process-buffer'."
|
||||
`(deferred:nextc ,d
|
||||
(lambda (,(gensym)) (deferred:process-buffer ,command ,@args))))
|
||||
|
||||
(defmacro deferred:process-shellc (d command &rest args)
|
||||
"Process chain of `deferred:process'."
|
||||
`(deferred:nextc ,d
|
||||
(lambda (,(gensym)) (deferred:process-shell ,command ,@args))))
|
||||
|
||||
(defmacro deferred:process-shell-bufferc (d command &rest args)
|
||||
"Process chain of `deferred:process-buffer'."
|
||||
`(deferred:nextc ,d
|
||||
(lambda (,(gensym)) (deferred:process-shell-buffer ,command ,@args))))
|
||||
|
||||
(eval-after-load "url"
|
||||
;; for url package
|
||||
;; TODO: proxy, charaset
|
||||
'(progn
|
||||
|
||||
(defun deferred:url-retrieve (url &optional cbargs)
|
||||
"A wrapper function for url-retrieve. The next deferred
|
||||
object receives the buffer object that URL will load
|
||||
into. Currently dynamic binding variables are not supported."
|
||||
(lexical-let ((nd (deferred:new)) (url url) (cbargs cbargs) buf)
|
||||
(deferred:next
|
||||
(lambda (x)
|
||||
(condition-case err
|
||||
(setq buf
|
||||
(url-retrieve
|
||||
url (lambda (xx) (deferred:post-task nd 'ok buf))
|
||||
cbargs))
|
||||
(error (deferred:post-task nd 'ng err)))
|
||||
nil))
|
||||
(setf (deferred-cancel nd)
|
||||
(lambda (x)
|
||||
(when (buffer-live-p buf)
|
||||
(kill-buffer buf))))
|
||||
nd))
|
||||
|
||||
(defun deferred:url-delete-header (buf)
|
||||
(with-current-buffer buf
|
||||
(let ((pos (url-http-symbol-value-in-buffer
|
||||
'url-http-end-of-headers buf)))
|
||||
(when pos
|
||||
(delete-region (point-min) (1+ pos)))))
|
||||
buf)
|
||||
|
||||
(defun deferred:url-delete-buffer (buf)
|
||||
(when (and buf (buffer-live-p buf))
|
||||
(kill-buffer buf))
|
||||
nil)
|
||||
|
||||
(defun deferred:url-get (url &optional params)
|
||||
"Perform a HTTP GET method with `url-retrieve'. PARAMS is
|
||||
a parameter list of (key . value) or key. The next deferred
|
||||
object receives the buffer object that URL will load into."
|
||||
(when params
|
||||
(setq url
|
||||
(concat url "?" (deferred:url-param-serialize params))))
|
||||
(let ((d (deferred:$
|
||||
(deferred:url-retrieve url)
|
||||
(deferred:nextc it 'deferred:url-delete-header))))
|
||||
(deferred:set-next
|
||||
d (deferred:new 'deferred:url-delete-buffer))
|
||||
d))
|
||||
|
||||
(defun deferred:url-post (url &optional params)
|
||||
"Perform a HTTP POST method with `url-retrieve'. PARAMS is
|
||||
a parameter list of (key . value) or key. The next deferred
|
||||
object receives the buffer object that URL will load into."
|
||||
(lexical-let ((nd (deferred:new))
|
||||
(url url) (params params)
|
||||
buf)
|
||||
(deferred:next
|
||||
(lambda (x)
|
||||
(let ((url-request-method "POST")
|
||||
(url-request-extra-headers
|
||||
'(("Content-Type" . "application/x-www-form-urlencoded")))
|
||||
(url-request-data
|
||||
(deferred:url-param-serialize params)))
|
||||
(condition-case err
|
||||
(setq buf
|
||||
(url-retrieve
|
||||
url
|
||||
(lambda (&rest args)
|
||||
(deferred:post-task nd 'ok buf))))
|
||||
(error (deferred:post-task nd 'ng err))))
|
||||
nil))
|
||||
(setf (deferred-cancel nd)
|
||||
(lambda (x)
|
||||
(when (buffer-live-p buf)
|
||||
(kill-buffer buf))))
|
||||
(let ((d (deferred:nextc nd 'deferred:url-delete-header)))
|
||||
(deferred:set-next
|
||||
d (deferred:new 'deferred:url-delete-buffer))
|
||||
d)))
|
||||
|
||||
(defun deferred:url-escape (val)
|
||||
"[internal] Return a new string that is VAL URI-encoded."
|
||||
(unless (stringp val)
|
||||
(setq val (format "%s" val)))
|
||||
(url-hexify-string
|
||||
(encode-coding-string val 'utf-8)))
|
||||
|
||||
(defun deferred:url-param-serialize (params)
|
||||
"[internal] Serialize a list of (key . value) cons cells
|
||||
into a query string."
|
||||
(when params
|
||||
(mapconcat
|
||||
'identity
|
||||
(loop for p in params
|
||||
collect
|
||||
(cond
|
||||
((consp p)
|
||||
(concat
|
||||
(deferred:url-escape (car p)) "="
|
||||
(deferred:url-escape (cdr p))))
|
||||
(t
|
||||
(deferred:url-escape p))))
|
||||
"&")))
|
||||
))
|
||||
|
||||
|
||||
(provide 'deferred)
|
||||
;;; deferred.el ends here
|
File diff suppressed because it is too large
Load Diff
|
@ -1,251 +0,0 @@
|
|||
;;; dropdown-list.el --- Drop-down menu interface
|
||||
;;
|
||||
;; Filename: dropdown-list.el
|
||||
;; Description: Drop-down menu interface
|
||||
;; Author: Jaeyoun Chung [jay.chung@gmail.com]
|
||||
;; Maintainer:
|
||||
;; Copyright (C) 2008 Jaeyoun Chung
|
||||
;; Created: Sun Mar 16 11:20:45 2008 (Pacific Daylight Time)
|
||||
;; Version:
|
||||
;; Last-Updated: Sun Mar 16 12:19:49 2008 (Pacific Daylight Time)
|
||||
;; By: dradams
|
||||
;; Update #: 43
|
||||
;; URL: http://www.emacswiki.org/cgi-bin/wiki/dropdown-list.el
|
||||
;; Keywords: convenience menu
|
||||
;; Compatibility: GNU Emacs 21.x, GNU Emacs 22.x
|
||||
;;
|
||||
;; Features that might be required by this library:
|
||||
;;
|
||||
;; `cl'.
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; According to Jaeyoun Chung, "overlay code stolen from company-mode.el."
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;;; Change log:
|
||||
;;
|
||||
;; 2008/03/16 dadams
|
||||
;; Clean-up - e.g. use char-to-string for control chars removed by email posting.
|
||||
;; Moved example usage code (define-key*, command-selector) inside the library.
|
||||
;; Require cl.el at byte-compile time.
|
||||
;; Added GPL statement.
|
||||
;; 2008/01/06 Jaeyoun Chung
|
||||
;; Posted to gnu-emacs-sources@gnu.org at 9:10 p.m.
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; This program 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 3, or
|
||||
;; (at your option) any later version.
|
||||
;;
|
||||
;; This program 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 this program; see the file COPYING. If not, write to
|
||||
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
||||
;; Floor, Boston, MA 02110-1301, USA.
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile (require 'cl)) ;; decf, fourth, incf, loop, mapcar*
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defface dropdown-list-face
|
||||
'((t :inherit default :background "lightyellow" :foreground "black"))
|
||||
"*Bla." :group 'dropdown-list)
|
||||
|
||||
(defface dropdown-list-selection-face
|
||||
'((t :inherit dropdown-list-face :background "purple"))
|
||||
"*Bla." :group 'dropdown-list)
|
||||
|
||||
(defvar dropdown-list-overlays nil)
|
||||
|
||||
(defun dropdown-list-hide ()
|
||||
(while dropdown-list-overlays
|
||||
(delete-overlay (pop dropdown-list-overlays))))
|
||||
|
||||
(defun dropdown-list-put-overlay (beg end &optional prop value prop2 value2)
|
||||
(let ((ov (make-overlay beg end)))
|
||||
(overlay-put ov 'window t)
|
||||
(when prop
|
||||
(overlay-put ov prop value)
|
||||
(when prop2 (overlay-put ov prop2 value2)))
|
||||
ov))
|
||||
|
||||
(defun dropdown-list-line (start replacement &optional no-insert)
|
||||
;; start might be in the middle of a tab, which means we need to hide the
|
||||
;; tab and add spaces
|
||||
(let ((end (+ start (length replacement)))
|
||||
beg-point end-point
|
||||
before-string after-string)
|
||||
(goto-char (point-at-eol))
|
||||
(if (< (current-column) start)
|
||||
(progn (setq before-string (make-string (- start (current-column)) ? ))
|
||||
(setq beg-point (point)))
|
||||
(goto-char (point-at-bol)) ;; Emacs bug, move-to-column is wrong otherwise
|
||||
(move-to-column start)
|
||||
(setq beg-point (point))
|
||||
(when (> (current-column) start)
|
||||
(goto-char (1- (point)))
|
||||
(setq beg-point (point))
|
||||
(setq before-string (make-string (- start (current-column)) ? ))))
|
||||
(move-to-column end)
|
||||
(setq end-point (point))
|
||||
(let ((end-offset (- (current-column) end)))
|
||||
(when (> end-offset 0) (setq after-string (make-string end-offset ?b))))
|
||||
(when no-insert
|
||||
;; prevent inheriting of faces
|
||||
(setq before-string (when before-string (propertize before-string 'face 'default)))
|
||||
(setq after-string (when after-string (propertize after-string 'face 'default))))
|
||||
(let ((string (concat before-string replacement after-string)))
|
||||
(if no-insert
|
||||
string
|
||||
(push (dropdown-list-put-overlay beg-point end-point 'invisible t
|
||||
'after-string string)
|
||||
dropdown-list-overlays)))))
|
||||
|
||||
(defun dropdown-list-start-column (display-width)
|
||||
(let ((column (mod (current-column) (window-width)))
|
||||
(width (window-width)))
|
||||
(cond ((<= (+ column display-width) width) column)
|
||||
((> column display-width) (- column display-width))
|
||||
((>= width display-width) (- width display-width))
|
||||
(t nil))))
|
||||
|
||||
(defun dropdown-list-move-to-start-line (candidate-count)
|
||||
(decf candidate-count)
|
||||
(let ((above-line-count (save-excursion (- (vertical-motion (- candidate-count)))))
|
||||
(below-line-count (save-excursion (vertical-motion candidate-count))))
|
||||
(cond ((= below-line-count candidate-count)
|
||||
t)
|
||||
((= above-line-count candidate-count)
|
||||
(vertical-motion (- candidate-count))
|
||||
t)
|
||||
((>= (+ below-line-count above-line-count) candidate-count)
|
||||
(vertical-motion (- (- candidate-count below-line-count)))
|
||||
t)
|
||||
(t nil))))
|
||||
|
||||
(defun dropdown-list-at-point (candidates &optional selidx)
|
||||
(dropdown-list-hide)
|
||||
(let* ((lengths (mapcar #'length candidates))
|
||||
(max-length (apply #'max lengths))
|
||||
(start (dropdown-list-start-column (+ max-length 3)))
|
||||
(i -1)
|
||||
(candidates (mapcar* (lambda (candidate length)
|
||||
(let ((diff (- max-length length)))
|
||||
(propertize
|
||||
(concat (if (> diff 0)
|
||||
(concat candidate (make-string diff ? ))
|
||||
(substring candidate 0 max-length))
|
||||
(format "%3d" (+ 2 i)))
|
||||
'face (if (eql (incf i) selidx)
|
||||
'dropdown-list-selection-face
|
||||
'dropdown-list-face))))
|
||||
candidates
|
||||
lengths)))
|
||||
(save-excursion
|
||||
(and start
|
||||
(dropdown-list-move-to-start-line (length candidates))
|
||||
(loop initially (vertical-motion 0)
|
||||
for candidate in candidates
|
||||
do (dropdown-list-line (+ (current-column) start) candidate)
|
||||
while (/= (vertical-motion 1) 0)
|
||||
finally return t)))))
|
||||
|
||||
(defun dropdown-list (candidates)
|
||||
(let ((selection)
|
||||
(temp-buffer))
|
||||
(save-window-excursion
|
||||
(unwind-protect
|
||||
(let ((candidate-count (length candidates))
|
||||
done key (selidx 0))
|
||||
(while (not done)
|
||||
(unless (dropdown-list-at-point candidates selidx)
|
||||
(switch-to-buffer (setq temp-buffer (get-buffer-create "*selection*"))
|
||||
'norecord)
|
||||
(delete-other-windows)
|
||||
(delete-region (point-min) (point-max))
|
||||
(insert (make-string (length candidates) ?\n))
|
||||
(goto-char (point-min))
|
||||
(dropdown-list-at-point candidates selidx))
|
||||
(setq key (read-key-sequence ""))
|
||||
(cond ((and (stringp key)
|
||||
(>= (aref key 0) ?1)
|
||||
(<= (aref key 0) (+ ?0 (min 9 candidate-count))))
|
||||
(setq selection (- (aref key 0) ?1)
|
||||
done t))
|
||||
((member key `(,(char-to-string ?\C-p) [up] "p"))
|
||||
(setq selidx (mod (+ candidate-count (1- (or selidx 0)))
|
||||
candidate-count)))
|
||||
((member key `(,(char-to-string ?\C-n) [down] "n"))
|
||||
(setq selidx (mod (1+ (or selidx -1)) candidate-count)))
|
||||
((member key `(,(char-to-string ?\f))))
|
||||
((member key `(,(char-to-string ?\r) [return]))
|
||||
(setq selection selidx
|
||||
done t))
|
||||
(t (setq done t)))))
|
||||
(dropdown-list-hide)
|
||||
(and temp-buffer (kill-buffer temp-buffer)))
|
||||
;; (when selection
|
||||
;; (message "your selection => %d: %s" selection (nth selection candidates))
|
||||
;; (sit-for 1))
|
||||
selection)))
|
||||
|
||||
(defun define-key* (keymap key command)
|
||||
"Add COMMAND to the multiple-command binding of KEY in KEYMAP.
|
||||
Use multiple times to bind different COMMANDs to the same KEY."
|
||||
(define-key keymap key (combine-command command (lookup-key keymap key))))
|
||||
|
||||
(defun combine-command (command defs)
|
||||
"$$$$$ FIXME - no doc string"
|
||||
(cond ((null defs) command)
|
||||
((and (listp defs)
|
||||
(eq 'lambda (car defs))
|
||||
(= (length defs) 4)
|
||||
(listp (fourth defs))
|
||||
(eq 'command-selector (car (fourth defs))))
|
||||
(unless (member `',command (cdr (fourth defs)))
|
||||
(setcdr (fourth defs) (nconc (cdr (fourth defs)) `(',command))))
|
||||
defs)
|
||||
(t
|
||||
`(lambda () (interactive) (command-selector ',defs ',command)))))
|
||||
|
||||
(defvar command-selector-last-command nil "$$$$$ FIXME - no doc string")
|
||||
|
||||
(defun command-selector (&rest candidates)
|
||||
"$$$$$ FIXME - no doc string"
|
||||
(if (and (eq last-command this-command) command-selector-last-command)
|
||||
(call-interactively command-selector-last-command)
|
||||
(let* ((candidate-strings
|
||||
(mapcar (lambda (candidate)
|
||||
(format "%s" (if (symbolp candidate)
|
||||
candidate
|
||||
(let ((s (format "%s" candidate)))
|
||||
(if (>= (length s) 7)
|
||||
(concat (substring s 0 7) "...")
|
||||
s)))))
|
||||
candidates))
|
||||
(selection (dropdown-list candidate-strings)))
|
||||
(when selection
|
||||
(let ((cmd (nth selection candidates)))
|
||||
(call-interactively cmd)
|
||||
(setq command-selector-last-command cmd))))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(provide 'dropdown-list)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; dropdown-list.el ends here
|
|
@ -1,162 +0,0 @@
|
|||
|
||||
One of the limitations of the ECB is that it does not support multiple buffers
|
||||
per ECB window.
|
||||
|
||||
For example there is no way to support multiple buffers within the 'directories'
|
||||
window or the 'methods' window. IE it would be nice to support the speedbar and
|
||||
the ECB directories buffer within the same window and allow the user to switch.
|
||||
|
||||
Essentially what we are talking about is the ability to 'cycle' through buffers
|
||||
in specific windows and support changing the buffers at runtime.
|
||||
|
||||
If you want to see what I mean you can check out ecb-cycle.el. Right now this
|
||||
supports multiple programatic buffers within the `ecb-compile-window'. This
|
||||
allows you to cycle through all compilation buffers and provides
|
||||
switch-to-buffer support using completion.
|
||||
|
||||
This is already really nice because it allows me to jump to igrep buffers or
|
||||
jde-ant buffers quickly and without having to deal with the entire list of
|
||||
buffers.
|
||||
|
||||
I want to expand on this concept so that ecb-cycle can support the directories
|
||||
and methods windows. There is other information which we can display within
|
||||
these windows.
|
||||
|
||||
For example in XML buffers, we could change the 'methods' window to support a
|
||||
hierarchical view of the current XML document. It would be somewhat trivial to
|
||||
support this using tree-widget.el or relatives. We could also support XML
|
||||
schema specific representations. If the user is editing an Ant build.xml
|
||||
document, we could use this same XML representation but expand to show <tasks>.
|
||||
|
||||
There are a *lot* of uses for this:
|
||||
|
||||
- Support a Java CLASSPATH browser
|
||||
|
||||
- Supporting jde-docindex integration for navigating sourcepath and
|
||||
documentation based on hierarchical classname.
|
||||
|
||||
- using the methods buffer to navigate a list of files that are being tailed via
|
||||
'tail -f' and displaying the result int the compilation buffer.
|
||||
|
||||
- Support complex applications on top of ECB that can use ECB windows as their
|
||||
UI. (this would probably require another proposal)
|
||||
|
||||
- SQL browser (via JDBC, ODCB, etc)
|
||||
|
||||
- JDE/JPDA integration when a breakpoint it hit. This would need to set
|
||||
buffers in each window. For example putting local variables in the
|
||||
methods winow and possibly breakpoints in the directory window.
|
||||
|
||||
- Incremental compiler error lists (I plan on writing an incremental compile
|
||||
integration package for jikes but I am waiting for them to fix a bug under
|
||||
Linux). It would be nice to navigate this list in the methods window.
|
||||
|
||||
From what I see, in order to implement this, we have to pay significant
|
||||
attention to making this convenient so that it isn't confusing for the user.
|
||||
|
||||
Should be compatible with all window configurations
|
||||
|
||||
Should not significantly change any current ECB behavior. We shouldn't force
|
||||
users to use ecb-cycle.
|
||||
|
||||
Need the ability to revert to default buffers on ecb-redraw-layout. The user
|
||||
should also be able to choose the default buffer per window within
|
||||
customization. The user should also be able to restore the defaults using a
|
||||
ecb-cycle-restore-defaults or similar function.
|
||||
|
||||
Need a consistent function metaphor so that we can use
|
||||
`ecb-cycle-switch-to-directory-buffer' and
|
||||
`ecb-cycle-switch-to-compilation-buffer', etc.
|
||||
|
||||
Should support the ability to automatically change buffers on current-buffer
|
||||
sync. For example if one methods-buffer is a better representation for the
|
||||
current buffer than the one in the methods window, it should automatically
|
||||
changed to the better one (this could also be disabled in customization). A
|
||||
good example of this is XML. The methods buffer doesn't support hierarchical
|
||||
XML navigation (nor should it). We could automatically change to an XML
|
||||
hierarchical representation in the methods buffer when an XML buffer is
|
||||
selected.
|
||||
|
||||
- we will need to support some type of current buffer mapping. For example
|
||||
we could use regexps
|
||||
|
||||
- *.xml -> *ecb-xml-methods-buffer*
|
||||
- * -> * ECB Methods*
|
||||
|
||||
Should be able to cycle through buffers available for each window. (should we
|
||||
support forwards and backwards operation?)
|
||||
|
||||
Should support profiles so that we can restore them. IE debug profile, eshell
|
||||
profile, etc. A profile whould just be a list of cons cells with buffer
|
||||
names.
|
||||
|
||||
'((ecb-compile-window . "*eshell")
|
||||
(ecb-directory-window . " *SPEEDBAR*"))
|
||||
|
||||
- also users should be able to create their own profiles in addition to the
|
||||
default profiles.
|
||||
|
||||
ISSUES:
|
||||
|
||||
- This functionality should probably be held back for ECB 1.7.0
|
||||
|
||||
- It would be nice to support a tabbed window->buffer metaphor. I think
|
||||
XEmacs supports something like this but GNU Emacs does not.
|
||||
|
||||
TODO:
|
||||
|
||||
- We need to have a `ecb-directories-window' and an `ecb-methods-window',
|
||||
'ecb-history-window' like `ecb-compile-window'
|
||||
|
||||
- Need to provide an initial implementation in ecb-cycle
|
||||
|
||||
- I was also thinking that we should add the ability to list every buffer
|
||||
available for selection. This way you can have the directories window show all
|
||||
the buffers that are available for selection and then choose one.
|
||||
|
||||
- We also need the ability to have a profile that used addition buffers that
|
||||
weren't registered with the ability to cycle. For example we could have a
|
||||
'calc' profile. So that we can set this profile after calc is run.
|
||||
|
||||
- should this support be added in ecb-cycle-external-profiles???
|
||||
|
||||
- need the ability to support a profile stack so that you can pop out of a
|
||||
current profile and restore the last one.
|
||||
|
||||
- When we restore the default window configuration (ecb-redraw-layout), we
|
||||
should pop out of any profiles. (should this be an option)
|
||||
|
||||
- ability to *suggest* how a profile should be handled on redraw.
|
||||
|
||||
- always-destroy
|
||||
- never-destroy
|
||||
- yield-to-setting
|
||||
|
||||
- All external profiles (gnus, calc, etc) should be stored in ecb-cycle-ext.el
|
||||
|
||||
- the following windows need to be accounted for:
|
||||
|
||||
- sources
|
||||
- methods
|
||||
- directory
|
||||
- history
|
||||
|
||||
- need the ability to run a function prior to displaying a buffer.
|
||||
|
||||
Example: ' *ECB Directories*' needs to have ecb-update-directories-buffer
|
||||
pior to viewing.
|
||||
|
||||
Actually this is a good way from keeping ecb-cycle from refreshing too many
|
||||
buffers on ecb-current-buffer-sync. By default we should run the update
|
||||
function when we change to a buffer.
|
||||
|
||||
- use a design pattern for creating profiles. AKA instead of a profile object I
|
||||
could just do an:
|
||||
|
||||
- (defun ecb-cycle-create-profile(name buffers)
|
||||
|
||||
- support the ability to compare two buffers to find out which should be higher
|
||||
priority
|
||||
|
||||
- support JIT buffer generation so that we aren't constantly regenerating
|
||||
bufffers when they are actually hidden.
|
|
@ -1,263 +0,0 @@
|
|||
# This Makefile byte-compiles the ECB lisp files and generates online-help.
|
||||
|
||||
# Copyright (C) 2000 - 2010 Jesper Nordenberg,
|
||||
# Klaus Berndl,
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
# Author: Jesper Nordenberg <mayhem@home.se>
|
||||
# Klaus Berndl <klaus.berndl@sdm.de>
|
||||
# Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
# Keywords: browser, code, programming, tools
|
||||
# Created: 2001
|
||||
|
||||
# This program 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.
|
||||
|
||||
# This program 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
|
||||
# GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
# $Id$
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# User configurable section
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# Byte-compiling ECB:
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
# Define here the correct path to your Emacs or XEmacs binary. Ensure you
|
||||
# have set this variable to 'xemacs' if you want byte-compile with XEmacs!
|
||||
EMACS=emacs
|
||||
|
||||
# In the following path-settings of this section use always FORWARD-SLASHES
|
||||
# as directory-separator even with MS Windows systems.
|
||||
|
||||
# -------- Compiling ECB with the cedet-library ----------------------
|
||||
|
||||
# cedet >= 1.0pre6 (contains a.o. semantic >= 2.0, eieio >= 0.18 and
|
||||
# speedbar >= 0.15).
|
||||
#
|
||||
# + If you use Emacs >= 23.2 and you want to use the integrated CEDET:
|
||||
# Set this to empty (CEDET=)
|
||||
#
|
||||
# + If you use Emacs < 23.2 or if you want to use the author version of CEDET:
|
||||
# Set this to the full path of your CEDET-installation.
|
||||
|
||||
#CEDET=
|
||||
CEDET=c:/Programme/emacs-23.1/site-lisp/package-development/cedet
|
||||
|
||||
# You can set here more load-paths to arbitrary packages if you want. But
|
||||
# this is really not necessary!
|
||||
LOADPATH=
|
||||
|
||||
# Two ways to build ECB:
|
||||
# - Call "make" to byte-compile the ECB. You can savely ignore the messages.
|
||||
# - Or call
|
||||
#
|
||||
# make [EMACS="path/to/emacs"] [CEDET="path/to/cedet" or empty]
|
||||
#
|
||||
# if you want to set either different load-paths or Emacs-binary and
|
||||
# you do not want edit the Makefile. Do not forget quoting the arguments
|
||||
# if they contain spaces!
|
||||
#
|
||||
# If there are any warning messages during byte-compilation (normally there
|
||||
# are not any) you can savely ignore them!
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# Generating different online-help formats
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
# If you want to generate all formats of online-help from the texi-source
|
||||
# you must set here the FULL paths to the required tools. The Makefile
|
||||
# tests if the tools are available on these locations, so if a tool x is
|
||||
# not available let the related setting X empty! NOTE: For generating the
|
||||
# PDF-format you will need an installed TeX and Ghostscript!
|
||||
MAKEINFO=/usr/bin/makeinfo
|
||||
TEXI2DVI=/C/Programme/texmf/miktex/bin/texi2dvi
|
||||
# You need either the dvipdfm-tool
|
||||
#DVIPDFM=/C/Programme/texmf/miktex/bin/dvipdfm
|
||||
DVIPDFM=
|
||||
# or the tools dvips and ps2pdf. If dvipdfm is available the Makefile uses
|
||||
# this one!
|
||||
DVIPS=/C/Programme/texmf/miktex/bin/dvips
|
||||
PS2PDF=/C/home/bin/ps2pdf
|
||||
|
||||
# To generate the online-formats just call "make online-help" for info- and
|
||||
# HTML-format and "make pdf" for PDF-format.
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# Installing the info online-help in the Top-directory of (X)Emacs-info
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
# Set here the path of the info subdirectory of your (X)Emacs installation
|
||||
# which contains the dir file.
|
||||
EMACSINFOPATH=/C/Programme/emacs-22.3/info
|
||||
|
||||
# If you want to install the info-format of the online-help in the
|
||||
# Top-directory of the info-directory of (X)Emacs (see above EMACSINFOPATH)
|
||||
# then you must specify the full path of the tool install-info.
|
||||
INSTALLINFO=/usr/bin/install-info
|
||||
|
||||
# To install the online-help just call "make install-help"
|
||||
|
||||
# end of user configurable section
|
||||
# ========================================================================
|
||||
|
||||
|
||||
# ========================================================================
|
||||
# !!!!!!!!!!!!!!!!!!!!! Do not change anything below !!!!!!!!!!!!!!!!!!!!!
|
||||
# ========================================================================
|
||||
|
||||
|
||||
# $Id$
|
||||
|
||||
# For the ECB-maintainers: Change the version-number here and not
|
||||
# elsewhere!
|
||||
ecb_VERSION=2.41
|
||||
|
||||
include ecb-makedef.mk
|
||||
|
||||
ecb: $(ecb_LISP_EL)
|
||||
@echo "Byte-compiling ECB with LOADPATH=${LOADPATH} ..."
|
||||
@$(RM) $(ecb_LISP_ELC) ecb-compile-script
|
||||
@echo "(add-to-list 'load-path nil)" > ecb-compile-script
|
||||
@if test ! -z "${CEDET}"; then\
|
||||
if test -f $(CEDET)/cedet-devel-load.el ; then \
|
||||
echo "(load-file \"$(CEDET)/cedet-devel-load.el\")" >> ecb-compile-script; \
|
||||
else \
|
||||
echo "(load-file \"$(CEDET)/common/cedet.el\")" >> ecb-compile-script; \
|
||||
fi \
|
||||
else \
|
||||
echo "(semantic-mode 1)" >> ecb-compile-script; \
|
||||
echo "(require 'semantic/bovine/el)" >> ecb-compile-script; \
|
||||
fi
|
||||
@if test ! -z "${LOADPATH}"; then\
|
||||
for loadpath in ${LOADPATH}; do \
|
||||
echo "(add-to-list 'load-path \"$$loadpath\")" >> ecb-compile-script; \
|
||||
done; \
|
||||
fi
|
||||
@echo "(require 'ecb)" >> ecb-compile-script
|
||||
@echo "(setq debug-on-error t)" >> ecb-compile-script
|
||||
$(EBATCH) -l ecb-compile-script --eval '(ecb-byte-compile t)'
|
||||
@$(RM) ecb-compile-script
|
||||
|
||||
all: ecb online-help
|
||||
|
||||
online-help: $(ecb_TEXI)
|
||||
@if test -x "$(MAKEINFO)"; then\
|
||||
$(RM) -R $(ecb_INFO_DIR) $(ecb_HTML_DIR); \
|
||||
$(MKDIR) $(ecb_INFO_DIR) $(ecb_HTML_DIR); \
|
||||
echo Generating info-format...; \
|
||||
$(MAKEINFO) --fill-column=78 $<; \
|
||||
$(MV) *.info* $(ecb_INFO_DIR); \
|
||||
echo Generating html-format...; \
|
||||
$(MAKEINFO) --html --output=$(ecb_HTML_DIR) $<; \
|
||||
for file in $(ecb_HTML_DIR)/*.html; do\
|
||||
$(MV) $$file tmpfile; \
|
||||
sed "s/index\\.html/$(ecb_HTML)/g" tmpfile > $$file; \
|
||||
$(RM) tmpfile; \
|
||||
done; \
|
||||
$(MV) $(ecb_HTML_DIR)/index.html $(ecb_HTML_DIR)/$(ecb_HTML); \
|
||||
else \
|
||||
echo No info- and html-format generating because the tool; \
|
||||
echo - makeinfo in $(MAKEINFO); \
|
||||
echo is not available!; \
|
||||
fi
|
||||
|
||||
pdf: $(ecb_TEXI)
|
||||
@if test -x "$(TEXI2DVI)" -a -x "$(DVIPDFM)"; then\
|
||||
$(RM) $(ecb_DVI) $(ecb_PDF); \
|
||||
echo Generating pdf-format with dvipdfm ...; \
|
||||
$(TEXI2DVI) --clean $<; \
|
||||
$(DVIPDFM) $(ecb_DVI); \
|
||||
$(RM) $(ecb_DVI); \
|
||||
elif test -x "$(TEXI2DVI)" -a -x "$(DVIPS)" -a -x "$(PS2PDF)"; then\
|
||||
$(RM) $(ecb_DVI) $(ecb_PS) $(ecb_PDF); \
|
||||
echo Generating pdf-format with dvips and ps2pdf ...; \
|
||||
$(TEXI2DVI) --quiet --clean $<; \
|
||||
$(DVIPS) -Pcmz -q $(ecb_DVI) -o $(ecb_PS); \
|
||||
$(PS2PDF) $(ecb_PS); \
|
||||
$(RM) $(ecb_DVI) $(ecb_PS); \
|
||||
else \
|
||||
echo No pdf-format generating because at least one of the tools; \
|
||||
echo - texi2dvi in $(TEXI2DVI); \
|
||||
echo - dvips in $(DVIPS); \
|
||||
echo - ps2pdf in $(PS2PDF); \
|
||||
echo is not available!; \
|
||||
fi
|
||||
|
||||
|
||||
install-help: $(ecb_INFO_DIR)/$(ecb_INFO)
|
||||
@if test -x "$(INSTALLINFO)" -a -f "$(EMACSINFOPATH)/dir"; then\
|
||||
echo Installing the Online-help in $(EMACSINFOPATH)...; \
|
||||
$(CP) $(ecb_INFO_DIR)/*info* $(EMACSINFOPATH); \
|
||||
$(INSTALLINFO) $< $(EMACSINFOPATH)/dir; \
|
||||
else \
|
||||
echo Can not install the online-help because either; \
|
||||
echo - the tool $(INSTALLINFO) or; \
|
||||
echo - the file $(EMACSINFOPATH)/dir; \
|
||||
echo is not available!; \
|
||||
fi
|
||||
|
||||
|
||||
clean:
|
||||
@$(RM) $(ecb_LISP_ELC) ecb-compile-script
|
||||
|
||||
# The targets below are only for maintaining the ECB-package.
|
||||
|
||||
$(ecb_INFO_DIR)/$(ecb_INFO): online-help
|
||||
|
||||
# updates RELEASE_NOTES, README, NEWS, ecb.texi and ecb.el to the
|
||||
# version-number of $(ecb_VERSION).
|
||||
prepversion:
|
||||
@$(MV) RELEASE_NOTES RELEASE_NOTES.tmp
|
||||
@sed "1s/version.*/version $(ecb_VERSION)/" RELEASE_NOTES.tmp > RELEASE_NOTES
|
||||
@$(RM) RELEASE_NOTES.tmp
|
||||
@$(MV) README README.tmp
|
||||
@sed "1s/version.*/version $(ecb_VERSION)/" README.tmp > README
|
||||
@$(RM) README.tmp
|
||||
@$(MV) NEWS NEWS.tmp
|
||||
@sed "1s/version.*/version $(ecb_VERSION)/" NEWS.tmp > NEWS
|
||||
@$(RM) NEWS.tmp
|
||||
@$(MV) ecb-upgrade.el ecb-upgrade.el.tmp
|
||||
@sed "s/^(defconst ecb-version.*/(defconst ecb-version \"$(ecb_VERSION)\"/" ecb-upgrade.el.tmp > ecb-upgrade.el
|
||||
@$(RM) ecb-upgrade.el.tmp
|
||||
@(echo "/@macro ecbver"; \
|
||||
echo "+"; \
|
||||
echo "c"; \
|
||||
echo "$(ecb_VERSION)"; \
|
||||
echo "."; \
|
||||
echo "w"; \
|
||||
echo "q") | ed -s $(ecb_TEXI) 1> /dev/null
|
||||
|
||||
|
||||
autoloads:
|
||||
@$(RM) $(ecb_AUTOLOADS) $(ecb_AUTOLOADS)c
|
||||
$(EBATCH) -l ecb-autogen -f ecb-update-autoloads
|
||||
|
||||
|
||||
# builds the distribution file $(ecb_VERSION).tar.gz
|
||||
distrib: $(ecb_INFO_DIR)/$(ecb_INFO) prepversion autoloads ecb
|
||||
@$(RM) ecb-$(ecb_VERSION).tar.gz
|
||||
@$(RM) -R ecb-$(ecb_VERSION)
|
||||
@$(MKDIR) ecb-$(ecb_VERSION)
|
||||
@$(CP) $(ecb_DISTRIB_FILES) ecb-$(ecb_VERSION)
|
||||
@$(CP) -r $(ecb_INFO_DIR) ecb-$(ecb_VERSION)
|
||||
@$(CP) -r $(ecb_HTML_DIR) ecb-$(ecb_VERSION)
|
||||
@$(CP) -r $(ecb_IMAGE_DIR) ecb-$(ecb_VERSION)
|
||||
@find ecb-$(ecb_VERSION)/$(ecb_IMAGE_DIR) -name CVS -print | xargs rm -Rf
|
||||
@find ecb-$(ecb_VERSION)/$(ecb_IMAGE_DIR) -name *~ -print | xargs $(RM)
|
||||
@find ecb-$(ecb_VERSION)/$(ecb_IMAGE_DIR) -name *.png -print | xargs $(RM)
|
||||
@tar -cvzf ecb-$(ecb_VERSION).tar.gz ecb-$(ecb_VERSION)
|
||||
@$(RM) -R ecb-$(ecb_VERSION)
|
||||
|
||||
# End of Makefile
|
File diff suppressed because it is too large
Load Diff
|
@ -1,210 +0,0 @@
|
|||
README for the Emacs Code Browser (ECB) version 2.40.1
|
||||
|
||||
|
||||
About
|
||||
-----
|
||||
|
||||
This package contains a code browser for several programming-languages for
|
||||
(X)Emacs. For instructions on how to use the browser read the online-help
|
||||
either with the shipped info-manual (see "Usage" below) or direct from the
|
||||
ECB-Homepage at http://ecb.sourceforge.net.
|
||||
|
||||
The latest version can be found at: http://ecb.sourceforge.net
|
||||
|
||||
------------
|
||||
Requirements
|
||||
------------
|
||||
|
||||
The short story:
|
||||
|
||||
With Emacs >= 23.2 there is nothing to do. With XEmacs or Emacs < 23.2 you
|
||||
have to install the CEDET-suite by hand.
|
||||
|
||||
The long story:
|
||||
|
||||
1. Emacs-version: ECB works only with (X)Emacs >= 21! If you have an older
|
||||
one, please upgrade.
|
||||
|
||||
2. CEDET-suite: If Emacs >= 23.2 is used then CEDET is already integrated
|
||||
into Emacs and there is nothing to do.
|
||||
|
||||
For users of any XEmacs-version, any Emacs-version < 23.2 or the latest
|
||||
author CEDET version: Get it from http://cedet.sourceforge.net, read
|
||||
the setup-instructions in http://cedet.sourceforge.net/setup.shtml and
|
||||
read also the shipped file `INSTALL'.
|
||||
|
||||
*Please note*: If ECB detects an author version of CEDET (as available
|
||||
at http://cedet.sourceforge.net) then ECB will ALWAYS try to use that
|
||||
one even if you use Emacs >= 23.2! This is for users who want to use
|
||||
latest Emacs >= 23.2 but still prefer using the latest author version of
|
||||
CEDET instead of the Emacs-integrated one.
|
||||
|
||||
So if you want to use the Emacs-integrated CEDET-suite of Emacs >= 23.2
|
||||
you have to ensure that no author-version of CEDET is in the `load-path'!
|
||||
This means that the library cedet.el of the author-version MUST NOT be
|
||||
loaded into Emacs (as described in the file INSTALL of CEDET)! This is a
|
||||
valid check: (locate-library "semantic-ctxt") must return nil!
|
||||
|
||||
3. Only for XEmacs-users: If you use XEmacs you must have installed the
|
||||
package c-support (contains hideshow.el). If you want to read the
|
||||
online-help of ECB in HTML-format you must have the library browse-url
|
||||
(part of the mail-lib XEmacs package) installed; this package is also
|
||||
needed for submitting problem-reports to the ECB-maintainers!
|
||||
|
||||
4. Optional for Java-coding: ECB works very well with the JDEE package (
|
||||
http://jdee.sourceforge.net) but JDEE is not required by ECB.
|
||||
|
||||
|
||||
Do not install ECB before you have successfully installed the requirements!
|
||||
|
||||
|
||||
------------
|
||||
Installation
|
||||
------------
|
||||
|
||||
*IMPORTANT*: ECB is no longer runnable as XEmacs-package via the
|
||||
package-manager of XEmacs. This is because CEDET is not available as
|
||||
XEmacs-package. Therefore ECB can also not be run as XEmacs-package. If CEDET
|
||||
will later become a XEmacs-package then probably ECB will come back as
|
||||
XEmacs-package. But in the meanwhile you have to install ECB "by hand".
|
||||
|
||||
1. Fulfill all requirements ECB needs (s.a. Requirements)
|
||||
|
||||
ECB performs two autom checks:
|
||||
|
||||
- At load-time: It checks if the cedet-suite is at least installed so
|
||||
ECB can be loaded. If not it reports an error.
|
||||
|
||||
- At start-time: It checks if the correct versions of cedet and
|
||||
semantic are installed and gives you proper feedback.
|
||||
|
||||
So if you are not sure if you have installed the required packages at
|
||||
all or if you have installed the correct versions of these packages then
|
||||
do not worry about this, just go on with the following installation
|
||||
steps: If ECB is missing something it will give you proper feedback and
|
||||
support not later than at load-time or start-time!
|
||||
|
||||
2. Download and unpack the ECB archive (probably you have already done this
|
||||
:-)
|
||||
|
||||
3. Add the new ECB-directory to your `load-path' variable.
|
||||
|
||||
You *MUST* add the ECB-install-directory to the `load-path' either by
|
||||
changing the `load-path' variable directly in your `.emacs' or
|
||||
`site-lisp/site-start.el' or by working with a file `subdirs.el'(1).
|
||||
|
||||
So for example the needed entry for your `.emacs'-file could be:
|
||||
|
||||
(add-to-list 'load-path
|
||||
"/path/to/your/ecb/installation/directory")
|
||||
|
||||
*ATTENTION*: ECB is NOT properly installed if it's directory is not
|
||||
added to `load-path' and for example just loaded by
|
||||
|
||||
(load-file "/path/to/ecb/ecb.el")
|
||||
|
||||
Do not do this! It will not work!
|
||||
|
||||
4. Load ECB by adding code to your `.emacs':
|
||||
|
||||
If you want to load the complete ECB at (X)Emacs-loadtime (Advantage:
|
||||
All ECB-options available after loading ECB. Disadvantage: Increasing
|
||||
loadtime(2)):
|
||||
|
||||
(require 'ecb)
|
||||
|
||||
If you want to load the ECB first after starting it by `ecb-activate'
|
||||
(Advantage: Fast loading(3). Disadvantage: ECB- and semantic-options
|
||||
first available after starting ECB):
|
||||
|
||||
(require 'ecb-autoloads)
|
||||
|
||||
This loads all available autoloads of ECB, e.g. `ecb-activate',
|
||||
`ecb-minor-mode', `ecb-byte-compile' and `ecb-show-help'.
|
||||
|
||||
Regardless which method you prefer: In both cases the used statement
|
||||
must be placed *after* the statement of step 3!
|
||||
|
||||
Only for users of a manually installed author version of the CEDET-suite
|
||||
(not that one integrated into Emacs >= 23.2): Instructions for loading
|
||||
CEDET into Emacs must be placed somewhere before the statements needed for
|
||||
loading ECB (s.a.)!
|
||||
|
||||
5. Restart (X)Emacs.
|
||||
|
||||
ECB is now ready for use and can be activated by calling `M-x ecb-activate'
|
||||
or `ecb-minor-mode'. Now you can either starting using ECB or you can do
|
||||
these optional installation steps:
|
||||
|
||||
6. Reading the online help with `ecb-show-help'
|
||||
|
||||
Maybe you are interested to read the online-help of ECB before first
|
||||
start.
|
||||
|
||||
7. Bytecompiling ECB with `ecb-byte-compile'
|
||||
|
||||
This byte compiles ECB. You can safely ignore all messages if there are
|
||||
any. (You can also bytecompile ECB from the command-line either by using
|
||||
the `Makefile' or by using the batch-file `make.bat'; just read the
|
||||
comments in that file you choose.)
|
||||
|
||||
8. Installing the Info-help of ECB
|
||||
|
||||
The ECB distribution contains a subdirectory `info-help' which contains
|
||||
the online-help of ECB in Info-format. You can install this online help
|
||||
so it's available in the Top-directory of Info. There are two ways to do
|
||||
this:
|
||||
|
||||
- Use "install-info" (recommended):
|
||||
|
||||
1. Copy the files of the subdirectory `info-help' into the
|
||||
info-directory of Emacs
|
||||
|
||||
2. Install the file `info-help/ecb.info' with the command
|
||||
"install-info" (if available on your system) in the `dir'-file.
|
||||
|
||||
The supplied `Makefile' offers a target `install-help' which does
|
||||
both of these steps. You have just to call `make install-help' with
|
||||
the correct EMACSINFOPATH set (see the comment in `Makefile'). Here
|
||||
is an example:
|
||||
|
||||
make EMACSINFOPATH=/path/to/emacs/info install-help
|
||||
|
||||
- Manually Installation:
|
||||
|
||||
Copy the files of the subdirectory `info-help' into the
|
||||
info-directory of Emacs and modify the file `dir' manually.
|
||||
|
||||
But it doesn't matter if you do not execute this step (8.) because the
|
||||
online help of ECB is always available though, see `ecb-show-help'.
|
||||
|
||||
|
||||
-----
|
||||
Usage
|
||||
-----
|
||||
|
||||
Call "M-x ecb-activate" to activated ECB.
|
||||
|
||||
Call "M-x ecb-customize-most-important" to get a list of the most important
|
||||
options of ECB. These are options you should at least know that they exist.
|
||||
|
||||
Call "M-x ecb-show-help" to get a detailed online-help for ECB. If you are
|
||||
using ECB the first time you should read the online help accurately!
|
||||
|
||||
--------
|
||||
Contacts
|
||||
--------
|
||||
|
||||
Send comments, bug reports and improvement suggestions to:
|
||||
|
||||
ecb-list@lists.sourceforge.net
|
||||
|
||||
*IMPORTANT*: Cause of extra appearance of SPAM in the mailing-lists,
|
||||
SourceForge has changed its policy: Now it is only possible to post to the
|
||||
mailing-list for users who have subscribed this mailing-list.
|
||||
|
||||
So please be aware you will not be able to send comments, bug reports and
|
||||
improvement suggestions before you have subscribed the ECB-mailing-list. See
|
||||
the section "Mailing-list" at the ECB-website at http://ecb.sourceforge.net
|
||||
how to do this.
|
||||
|
|
@ -1,288 +0,0 @@
|
|||
This file contains some important release-notes for ECB version 2.40.1
|
||||
|
||||
General:
|
||||
--------
|
||||
|
||||
Please read also the sections "Known conflicts and bugs" and "Tips and Tricks"
|
||||
in the online help ('ecb-show-help'). The former one is a small list of known
|
||||
conflicts and for each conflict a proper and easy solution! Please read also
|
||||
carefully the upgrade informations below!
|
||||
|
||||
|
||||
Installing ECB first time:
|
||||
--------------------------
|
||||
|
||||
No special notes beyond the contents of README.
|
||||
|
||||
|
||||
Upgrading from any version:
|
||||
---------------------------
|
||||
|
||||
If you are upgrading from version newer then 2.27 (ie. ecb-version > 2.27)
|
||||
then you can skip the rest of this release notes.
|
||||
|
||||
|
||||
Upgrading from any version < 2.27:
|
||||
----------------------------------
|
||||
|
||||
The option `ecb-auto-expand-tag-tree-collapse-other' has changed its type. ECB
|
||||
autom. upgrades your old setting to the new option-type.
|
||||
|
||||
|
||||
Upgrading from any version < 2.26:
|
||||
----------------------------------
|
||||
|
||||
Some regexp-options has been changed to regexp-list-options:
|
||||
`ecb-excluded-directories-regexp' --> `ecb-excluded-directories-regexps'
|
||||
`ecb-source-file-regexps' --> `ecb-source-file-regexps'
|
||||
`ecb-exclude-parents-regexp' --> `ecb-exclude-parents-regexps'
|
||||
|
||||
All these options now accept (and require) a list of regexps instead of
|
||||
exactly one big regexp. ECB autom. upgrades your old settings to the new
|
||||
option-types rsp. also -names (if the option has been renamed).
|
||||
|
||||
|
||||
Upgrading from versions < 2.25:
|
||||
-------------------------------
|
||||
|
||||
`ecb-sort-history-items' has been renamed to `ecb-history-sort-method'. ECB
|
||||
autom. upgrades your old setting to the new option-name and -type.!
|
||||
|
||||
|
||||
Upgrading from versions < 2.23:
|
||||
-------------------------------
|
||||
|
||||
The option `ecb-show-tags' has changed its type. ECB autom. upgrades your old
|
||||
setting to the new option-type.!
|
||||
|
||||
|
||||
Upgrading from versions < 2.20:
|
||||
-------------------------------
|
||||
|
||||
All user-defined extensions written for and added to one of the options
|
||||
`ecb-directories-menu-user-extension', `ecb-sources-menu-user-extension',
|
||||
`ecb-methods-menu-user-extension' or `ecb-history-menu-user-extension' MUST be
|
||||
rewritten and redefined via the new macro `tree-buffer-defpopup-command'!
|
||||
|
||||
The option `ecb-primary-mouse-jump-destination' has been renamed to
|
||||
`ecb-mouse-click-destination' and has also changed its default value to
|
||||
'last-point.
|
||||
|
||||
The option `ecb-split-edit-window' has been renamed in
|
||||
`ecb-split-edit-window-after-start'. In addition the value t is not allowed
|
||||
anymore for this option - use 'before-activation instead. In a further
|
||||
addition this option has a new default value 'before-deactivation. See the
|
||||
docstring of this option to get all details.
|
||||
|
||||
The Option `ecb-other-window-jump-behavior' has been renamed to
|
||||
`ecb-other-window-behavior'.
|
||||
|
||||
ECB autom. upgrades your old settings to the new option types/names!
|
||||
|
||||
|
||||
Upgrading from versions < 2.11:
|
||||
-------------------------------
|
||||
|
||||
The type of the option `ecb-post-process-semantic-taglist' has been changed.
|
||||
ECB autom. upgrades the old-value of that option to the new type! There is
|
||||
nothing to do for you.
|
||||
|
||||
|
||||
Upgrading from versions < 2.01:
|
||||
-------------------------------
|
||||
|
||||
The following options have changed their name:
|
||||
|
||||
- ecb-auto-expand-token-tree -> ecb-auto-expand-tag-tree
|
||||
- ecb-font-lock-tokens -> ecb-font-lock-tags
|
||||
- ecb-token-jump-sets-mark -> ecb-tag-jump-sets-mark
|
||||
- ecb-token-display-function -> ecb-tag-display-function
|
||||
- ecb-type-token-display -> ecb-type-tag-display
|
||||
- ecb-post-process-semantic-tokenlist -> ecb-post-process-semantic-taglist
|
||||
- ecb-show-only-positioned-tokens -> ecb-show-only-positioned-tags
|
||||
- ecb-show-tokens -> ecb-show-tags
|
||||
- ecb-highlight-token-with-point -> ecb-highlight-tag-with-point
|
||||
- ecb-highlight-token-with-point-delay -> ecb-highlight-tag-with-point-delay
|
||||
- ecb-token-visit-post-actions -> ecb-tag-visit-post-actions
|
||||
- ecb-token-header-face -> ecb-tag-header-face
|
||||
|
||||
ECB autom. upgrades all old-values of these options to the new options! There
|
||||
is nothing to do for you.
|
||||
|
||||
The type of the options `ecb-directories-menu-user-extension',
|
||||
`ecb-sources-menu-user-extension', `ecb-methods-menu-user-extension' and
|
||||
`ecb-history-menu-user-extension' has been changed - now sub-menus are
|
||||
allowed. The new default values of these options contains now entries, mostly
|
||||
concerning "version control". ECB autom. upgrades the old-values to the new
|
||||
option-type by appending the new defaults to your old values. So no old
|
||||
personal menu-entries are lost, but cause of the new default maybe you have
|
||||
some entries twice. Feel free to delete via customize what you want from the
|
||||
new settings.
|
||||
|
||||
The old option `ecb-tree-use-image-icons' has been replaced by
|
||||
`ecb-tree-buffer-style'.
|
||||
|
||||
|
||||
Upgrading from versions < 1.96:
|
||||
-------------------------------
|
||||
|
||||
The options `ecb-mode-line-data' and `ecb-mode-line-prefixes' have changed
|
||||
their type. ECB will autom. upgrade the old values of these options as best as
|
||||
possible to the new types!
|
||||
|
||||
The option `ecb-layout-switch-to-compilation-window' has been removed. This
|
||||
mimic is now done automatically.
|
||||
|
||||
The name of the command `ecb-toggle-enlarged-compilation-window' has been
|
||||
changed to `ecb-toggle-compile-window-height' (The old name is still available
|
||||
as alias but is deprecated). The keybinding [C-. /] remains.
|
||||
|
||||
The command `ecb-eshell-goto-eshell' has been removed. Now just use `eshell'
|
||||
to work with the eshell. The old binding [C-. e] now simply runs `eshell'.
|
||||
|
||||
The command `ecb-eshell-enlarge' has been removed. Now just use the standard
|
||||
ECB-command `ecb-toggle-compile-window-height' for this.
|
||||
|
||||
|
||||
Upgrading from a version < 1.95.1:
|
||||
----------------------------------
|
||||
|
||||
If there are byte-compiled(!) user-defined layouts - either created
|
||||
interactively by `ecb-create-new-layout' or programmed with the macro
|
||||
`ecb-layout-define' - then the file where these user-defined layouts are saved
|
||||
(see option `ecb-create-layout-file') must be re-byte-compiled with latest ECB
|
||||
version >= 1.95.1! If the user-defined layouts are not byte-compiled then
|
||||
there is nothing to do.
|
||||
|
||||
Some default key-bindings have changed; the new bindings are:
|
||||
|
||||
C-c . g1: `ecb-goto-window-edit1' (was C-c . 1)
|
||||
C-c . g2: `ecb-goto-window-edit2' (was C-c . 2)
|
||||
C-c . gd: `ecb-goto-window-directories' (was C-c . d)
|
||||
C-c . gs: `ecb-goto-window-sources' (was C-c . s)
|
||||
C-c . gm: `ecb-goto-window-methods' (was C-c . m)
|
||||
C-c . gh: `ecb-goto-window-history' (was C-c . h)
|
||||
C-c . gb: `ecb-goto-window-speedbar' (was C-c . bw)
|
||||
C-c . gc: `ecb-goto-window-compilation' (was C-c . c)
|
||||
|
||||
|
||||
Upgrading from version < 1.95:
|
||||
------------------------------
|
||||
|
||||
Some default key-bindings have changed; the new bindings are:
|
||||
|
||||
C-c . r: `ecb-rebuild-methods-buffer' (was not bound before)
|
||||
C-c . lc: `ecb-change-layout' (was C-c . l)
|
||||
C-c . lr: `ecb-redraw-layout' (was C-c . r)
|
||||
C-c . lt: `ecb-toggle-layout' (was C-c . t)
|
||||
C-c . lw: `ecb-toggle-ecb-windows' (was C-c . w)
|
||||
|
||||
ECB now requires speedbar. ECB needs a version >= 0.14beta1.
|
||||
|
||||
For XEmacs now the package c-support (contains hideshow.el) has to be
|
||||
installed.
|
||||
|
||||
|
||||
Upgrading from versions < 1.92:
|
||||
--------------------------------
|
||||
|
||||
The type of the option `ecb-truncate-lines' has changed.
|
||||
ECB autom. upgrades the old value of this option to its new type!
|
||||
|
||||
|
||||
Upgrading from version 1.80:
|
||||
----------------------------
|
||||
|
||||
The type or name of the following options has changed:
|
||||
|
||||
- ecb-layout-nr: New name is ecb-layout-name
|
||||
- ecb-toggle-layout-sequence: New type
|
||||
- ecb-major-modes-activate: New type
|
||||
- ecb-layout-window-sizes: New type
|
||||
- ecb-show-sources-in-directories-buffer: New type
|
||||
- ecb-cache-directory-contents: New type
|
||||
- ecb-source-file-regexps: New type
|
||||
- ecb-show-ecb-windows-hook: New name is ecb-show-ecb-windows-before-hook
|
||||
- ecb-hide-ecb-windows-hook: New name is ecb-hide-ecb-windows-before-hook
|
||||
|
||||
ECB autom. upgrades the values of these options to theirs new names/types!
|
||||
|
||||
|
||||
Upgrading from version < 1.80:
|
||||
------------------------------
|
||||
|
||||
The type of the following options has changed:
|
||||
|
||||
- 'ecb-token-display-function'
|
||||
- 'ecb-window-sync'
|
||||
|
||||
ECB has a new feature 'ecb-auto-compatibility-check' which enables a check for
|
||||
incompatible or renamed ECB-options at ECB startup. These options are then
|
||||
autom. upgraded to the new type or reset to the default-values of current
|
||||
ECB-version if no upgrade is possible. All upgraded or reset options are
|
||||
displayed to the user with their old and new values!
|
||||
|
||||
ECB now requires Semantic version 1.4 and eieio version 0.17! Any previous
|
||||
beta version is not supported anymore!
|
||||
|
||||
|
||||
Upgrading from any version < 1.60:
|
||||
----------------------------------
|
||||
|
||||
- The options `ecb-show-node-name-in-minibuffer',
|
||||
`ecb-show-complete-file-name-in-minibuffer' and
|
||||
`ecb-show-file-info-in-minibuffer' are gone and have been replaced by one
|
||||
single new option `ecb-show-node-info-in-minibuffer' where you can define
|
||||
separately for every tree-buffer when and which node info should be
|
||||
displayed in the minibuffer
|
||||
|
||||
|
||||
Upgrading from versions < 1.52:
|
||||
-------------------------------
|
||||
|
||||
+ ECB now requires eieio >= 0.16 (see also README)
|
||||
|
||||
+ The option ecb-prefix-key has been removed. Now all customization of
|
||||
key-bindings is done via the new option ecb-key-map.
|
||||
|
||||
+ ecb-layout-window-sizes is now an association list. If you have customized
|
||||
this variable or used the ecb-store-window-sizes function, there will be an
|
||||
error when drawing the ECB layout. Reset ecb-layout-window-sizes to it's
|
||||
default value (nil) and store your window sizes using ecb-store-window-sizes.
|
||||
|
||||
+ A new customization variable ecb-show-tokens controls the behavior of the
|
||||
methods buffer. Read the documentation for more information.
|
||||
|
||||
|
||||
Upgrading from versions < 1.20:
|
||||
-------------------------------
|
||||
|
||||
+ Now mouse-1 and mouse-2 for opening source-files and jumping to
|
||||
methods/variables is not longer the default key-binding. Please take a look
|
||||
at the new options 'ecb-primary-secondary-mouse-buttons' and
|
||||
'ecb-primary-mouse-jump-destination'.
|
||||
|
||||
+ Now it is no longer necessary to bind in the ECB-hooks (ecb-activate-hook
|
||||
and ecb-deactivate-hook) some standard-Emacs-keys for window-handling to the
|
||||
ECB replacements for the related standard-functions to get proper
|
||||
window-handling within the edit-window(s) of ECB.
|
||||
|
||||
Example: With ECB < 1.20 it was necessary to bind [C-x o] to
|
||||
'ecb-other-window' in 'ecb-activate-hook' (and also "unbinding" it back to
|
||||
the standard other-window in the 'ecb-deactivate-hook') to get a more
|
||||
ECB-suitable other-window behavior. Same for other window-keys.
|
||||
|
||||
This way will work also in ECB 1.20 but it is NOT the recommended way
|
||||
because the new option 'ecb-advice-window-functions' makes this much easier
|
||||
and better. Please read the documentation of this option exactly!
|
||||
|
||||
+ Default-value of `ecb-other-window-jump-behavior' is now 'all.
|
||||
|
||||
+ Interactively calling 'ecb-update-methods-buffer' is not longer necessary as
|
||||
work-around for the bug, that sometimes the error "Wrong type argument,
|
||||
integer-or-marker-p nil" is displayed after clicking onto a method/variable
|
||||
in the ECB-method-buffer. This bug is fixed!
|
||||
|
||||
+ For a complete list of changes and new features for versions > 1.20 see the
|
||||
NEWS file.
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
- Distinction of include-tags by "" or <>. This can be done via
|
||||
(semantic-tag-include-system-p TAG). Thanks to Markus grietsch.
|
||||
But probably it would be the best if semantic itself does this special
|
||||
formating!
|
||||
|
||||
- Prevent layout-engine from splitting windows when smaller than
|
||||
window-min-height/width.
|
||||
|
||||
- (BUG) if a buffer is opened from within an archive (zip or tar) then
|
||||
clicking onto a method in this buffer tries to jump somewhere in the archive
|
||||
(tar or zip) buffer (Klaus)
|
||||
|
||||
This is fixed for GNU Emacs - for XEmacs see next point
|
||||
|
||||
- KB: I think it would be best if ECB would not be so file-based means it
|
||||
would be good if all semantic-parsable buffers could be displayed correct -
|
||||
regardless if saved in a file or not - this would be good for sources not
|
||||
yet saved as file or for extracted files from an archive with XEmacs (XEmacs
|
||||
does not handle such extracts as normal files like GUN Emacs does)
|
||||
|
||||
But this implies some deeper changes - because we must take care of
|
||||
ecb-path-selected-source and ecb-path-selected-directory and all places
|
||||
where buffer-file-name is used and ECB currently expects a real existing
|
||||
file...
|
||||
|
||||
A solution could be instead of storing filenames as tree-buffer-data storing
|
||||
either filenames (in case of real files) or buffer-object in case of buffers
|
||||
which can be parsed but are not real files (not saved sources or
|
||||
archive-extracts for example).
|
||||
|
||||
- For left-right-layouts: Not only hiding all the ecb-windows but offering to
|
||||
hide only one of the left or the right column. Maybe toggling in the
|
||||
sequence "Hide left" --> "Hide all" --> Hide right" --> "Show all". But i
|
||||
(Klaus) think this is not so easy........
|
|
@ -1,7 +0,0 @@
|
|||
|
||||
* TODO Fix make.bat
|
||||
|
||||
* Write macro that will emit emacs-specific code ?
|
||||
|
||||
Macro should wrap code & emit it only if needed emacs/xemacs is selected - instead of
|
||||
evaluating this condition in run-time
|
|
@ -1,281 +0,0 @@
|
|||
;;; ecb-advice-test.el --- test-lib for the advice backbone of ECB
|
||||
|
||||
;; Copyright (C) 2000 - 2009 Klaus Berndl,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2009
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Contains a test-suite for the advice-backbone of ECB.
|
||||
;;
|
||||
;; This file is part of the ECB package which can be found at:
|
||||
;; http://ecb.sourceforge.net
|
||||
|
||||
;;; Usage
|
||||
;;
|
||||
;; 1. Load this library into Emacs
|
||||
;; 2. Call M-x ecb-test-with-original-advice-set
|
||||
;; 3. Compare the Output in the message-buffer with the expected output at the
|
||||
;; end of this file
|
||||
;; 4. If there are differences then send this output to
|
||||
;; the ecb-mailing-list (see Info-manual)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(require 'ecb-util)
|
||||
(require 'ecb-common-browser)
|
||||
|
||||
(defecb-advice-set ecb-advice-test-set
|
||||
"An advice-set only for testing the advice-mechanism of ECB")
|
||||
|
||||
(defun ecb-advice-test-defun-1 ()
|
||||
(message "I'm the ORIGINAL function ecb-advice-test-defun-1"))
|
||||
|
||||
(defecb-advice ecb-advice-test-defun-1 around ecb-advice-test-set
|
||||
"An advice"
|
||||
(message "I'm the AROUND advice of ecb-advice-test-defun-1"))
|
||||
|
||||
(defun ecb-advice-test-defun-2 ()
|
||||
(message "I'm the ORIGINAL function ecb-advice-test-defun-2"))
|
||||
|
||||
(defecb-advice ecb-advice-test-defun-2 before ecb-advice-test-set
|
||||
"An advice"
|
||||
(message "I'm the BEFORE advice of ecb-advice-test-defun-2"))
|
||||
|
||||
(defecb-advice ecb-advice-test-defun-2 after ecb-advice-test-set
|
||||
"An advice"
|
||||
(message "I'm the AFTER advice of ecb-advice-test-defun-2"))
|
||||
|
||||
(defun ecb-advice-test-defun-3 ()
|
||||
(message "I'm the ORIGINAL function ecb-advice-test-defun-3"))
|
||||
|
||||
(defecb-advice ecb-advice-test-defun-3 around ecb-always-disabled-advices
|
||||
"An always disabled advice"
|
||||
(message "I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3"))
|
||||
|
||||
(defecb-advice ecb-advice-test-defun-3 after ecb-always-disabled-advices
|
||||
"An always disabled advice"
|
||||
(message "I'm the AFTER advice of (the always disabled) ecb-advice-test-defun-3"))
|
||||
|
||||
(defun ecb-advice-test-defun-4 ()
|
||||
(message "I'm the ORIGINAL function ecb-advice-test-defun-4"))
|
||||
|
||||
(defecb-advice ecb-advice-test-defun-4 around ecb-always-disabled-advices
|
||||
"An always disabled advice"
|
||||
(message "I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-4"))
|
||||
|
||||
(defun ecb-test-with-original-advice-set ()
|
||||
(interactive)
|
||||
(let ((ecb-advices-debug-error t))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(message "!!! BEGIN ecb-test-with-original-advice-set !!!!")
|
||||
(ecb-enable-advices 'ecb-advice-test-set)
|
||||
(ecb-disable-advices 'ecb-always-disabled-advices)
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4)
|
||||
(ecb-with-original-adviced-function-set 'ecb-advice-test-set
|
||||
(ecb-advice-test-defun-1)
|
||||
(message "LOC-0.1 ecb-test-with-original-advice-set")
|
||||
(ecb-with-ecb-advice 'ecb-advice-test-defun-3 'around
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4)
|
||||
(ecb-with-ecb-advice 'ecb-advice-test-defun-3 'around
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4)
|
||||
(ecb-with-ecb-advice 'ecb-advice-test-defun-3 'after
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4)
|
||||
(ecb-with-ecb-advice 'ecb-advice-test-defun-4 'around
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4))
|
||||
(message "LOC-0.2 ecb-test-with-original-advice-set")
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4))
|
||||
(message "LOC-0.3 ecb-test-with-original-advice-set")
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4))
|
||||
(message "LOC-0.4 ecb-test-with-original-advice-set")
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4))
|
||||
(ecb-advice-test-defun-2)
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4)
|
||||
(message "LOC-1 ecb-test-with-original-advice-set")
|
||||
(ecb-with-original-adviced-function-set 'ecb-advice-test-set
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2))
|
||||
(message "LOC-2 ecb-test-with-original-advice-set")
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)
|
||||
(message "LOC-3 ecb-test-with-original-advice-set")
|
||||
(ecb-with-original-adviced-function-set 'ecb-advice-test-set
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)
|
||||
(message "LOC-4 ecb-test-with-original-advice-set")
|
||||
(ecb-with-original-adviced-function-set 'ecb-advice-test-set
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)))
|
||||
(message "LOC-5 ecb-test-with-original-advice-set")
|
||||
)
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)
|
||||
(message "LOC-6 ecb-test-with-original-advice-set"))
|
||||
(ecb-disable-advices 'ecb-advice-test-set)
|
||||
(ecb-advice-test-defun-1)
|
||||
(ecb-advice-test-defun-2)
|
||||
(ecb-advice-test-defun-3)
|
||||
(ecb-advice-test-defun-4)
|
||||
(message "!!! END ecb-test-with-original-advice-set !!!!"))))
|
||||
|
||||
|
||||
;; expected output:
|
||||
|
||||
;; !!! BEGIN ecb-test-with-original-advice-set !!!!
|
||||
;; ECB 2.33: debug enabling the advice-set: ecb-advice-test-set
|
||||
;; ECB 2.33: debug enabling of 'after' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug enabling of 'before' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug enabling of 'around' advice ecb-advice-test-defun-1
|
||||
;; ECB 2.33: debug disabling the advice-set: ecb-always-disabled-advices
|
||||
;; ECB 2.33: debug disabling of 'around' advice ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug disabling of 'after' advice ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug disabling of 'around' advice ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug disabling of 'around' advice count-windows
|
||||
;; ECB 2.33: debug disabling of 'around' advice one-window-p
|
||||
;; ECB 2.33: debug disabling of 'around' advice walk-windows
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-1
|
||||
;; I'm the AROUND advice of ecb-advice-test-defun-1
|
||||
;; ECB 2.33: debug calling of 'before' advice ecb-advice-test-defun-2
|
||||
;; I'm the BEFORE advice of ecb-advice-test-defun-2
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug calling of 'after' advice ecb-advice-test-defun-2
|
||||
;; I'm the AFTER advice of ecb-advice-test-defun-2
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - ENTRY
|
||||
;; ECB 2.33: debug disabling the advice-set: ecb-advice-test-set
|
||||
;; ECB 2.33: debug disabling of 'after' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug disabling of 'before' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug disabling of 'around' advice ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; LOC-0.1 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: around ecb-advice-test-defun-3 - ENTRY
|
||||
;; ECB 2.33: debug enabling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: around ecb-advice-test-defun-3 - ENTRY
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: after ecb-advice-test-defun-3 - ENTRY
|
||||
;; ECB 2.33: debug enabling of 'after' advice ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug calling of 'after' advice ecb-advice-test-defun-3
|
||||
;; I'm the AFTER advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: around ecb-advice-test-defun-4 - ENTRY
|
||||
;; ECB 2.33: debug enabling of 'around' advice ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug calling of 'after' advice ecb-advice-test-defun-3
|
||||
;; I'm the AFTER advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-4
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug disabling of 'around' advice ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: around ecb-advice-test-defun-4 - EXIT
|
||||
;; LOC-0.2 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug calling of 'after' advice ecb-advice-test-defun-3
|
||||
;; I'm the AFTER advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug disabling of 'after' advice ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: after ecb-advice-test-defun-3 - EXIT
|
||||
;; LOC-0.3 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: around ecb-advice-test-defun-3 - EXIT
|
||||
;; LOC-0.4 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-3
|
||||
;; I'm the AROUND advice of (the always disabled) ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; ECB 2.33: debug disabling of 'around' advice ecb-advice-test-defun-3
|
||||
;; ECB 2.33: debug with always disabled ecb-advice: around ecb-advice-test-defun-3 - EXIT
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; LOC-1 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - ENTRY
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - EXIT
|
||||
;; LOC-2 ecb-test-with-original-advice-set
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; LOC-3 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - ENTRY
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; LOC-4 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - ENTRY
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - EXIT
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - EXIT
|
||||
;; LOC-5 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug enabling the advice-set: ecb-advice-test-set
|
||||
;; ECB 2.33: debug enabling of 'after' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug enabling of 'before' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug enabling of 'around' advice ecb-advice-test-defun-1
|
||||
;; ECB 2.33: debug with original advice-set: ecb-advice-test-set - EXIT
|
||||
;; ECB 2.33: debug calling of 'around' advice ecb-advice-test-defun-1
|
||||
;; I'm the AROUND advice of ecb-advice-test-defun-1
|
||||
;; ECB 2.33: debug calling of 'before' advice ecb-advice-test-defun-2
|
||||
;; I'm the BEFORE advice of ecb-advice-test-defun-2
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug calling of 'after' advice ecb-advice-test-defun-2
|
||||
;; I'm the AFTER advice of ecb-advice-test-defun-2
|
||||
;; LOC-6 ecb-test-with-original-advice-set
|
||||
;; ECB 2.33: debug disabling the advice-set: ecb-advice-test-set
|
||||
;; ECB 2.33: debug disabling of 'after' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug disabling of 'before' advice ecb-advice-test-defun-2
|
||||
;; ECB 2.33: debug disabling of 'around' advice ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-1
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-2
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-3
|
||||
;; I'm the ORIGINAL function ecb-advice-test-defun-4
|
||||
;; !!! END ecb-test-with-original-advice-set !!!!
|
||||
|
||||
(silentcomp-provide 'ecb-advice-test)
|
||||
|
||||
;;; ecb-advice-test.el ends here
|
||||
|
|
@ -1,714 +0,0 @@
|
|||
;;; ecb-analyse.el --- ECB analysis display window
|
||||
|
||||
;;; Copyright (C) 2004 - 2005 Klaus Berndl
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, analyse
|
||||
;; Created: 2004
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Displays the analysing informations of semantic-analyze in a special
|
||||
;; tree-buffer.
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ecb-layout)
|
||||
(require 'ecb-common-browser)
|
||||
(require 'ecb-method-browser)
|
||||
(require 'ecb-cedet-wrapper)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(eval-when-compile
|
||||
;; to avoid compiler grips
|
||||
(require 'cl))
|
||||
|
||||
|
||||
(defgroup ecb-analyse nil
|
||||
"Settings for the analyse-buffer in the Emacs code browser."
|
||||
:group 'ecb
|
||||
:prefix "ecb-")
|
||||
|
||||
|
||||
(defcustom ecb-analyse-buffer-name " *ECB Analyse*"
|
||||
"*Name of the ECB analyse buffer.
|
||||
Because it is not a normal buffer for editing you should enclose the name with
|
||||
stars, e.g. \"*ECB Analyse*\".
|
||||
|
||||
If it is necessary for you you can get emacs-lisp access to the buffer-object of
|
||||
the ECB-analyse-buffer by this name, e.g. by a call of `set-buffer'.
|
||||
|
||||
Changes for this option at runtime will take affect only after deactivating and
|
||||
then activating ECB again!"
|
||||
:group 'ecb-analyse
|
||||
:type 'string)
|
||||
|
||||
(defcustom ecb-analyse-buffer-after-create-hook nil
|
||||
"*Local hook running after the creation of the analyse-buffer.
|
||||
Every function of this hook is called once without arguments direct after
|
||||
creating the analyse-buffer of ECB and it's local key-map. So for example a
|
||||
function could be added which performs calls of `local-set-key' to define new
|
||||
key-bindings only for the analyse-buffer of ECB."
|
||||
:group 'ecb-analyse
|
||||
:type 'hook)
|
||||
|
||||
(defcustom ecb-analyse-show-node-info '(if-too-long . name)
|
||||
"*When to display which node-info in the analyse-buffer.
|
||||
Define which node info should displayed after moving the mouse over a node
|
||||
\(or after a shift click onto the node) in the analyse-buffer.
|
||||
|
||||
You can define \"when\" a node-info should be displayed:
|
||||
See `ecb-directories-show-node-info' for the possible choices.
|
||||
|
||||
You can define what info should be displayed:
|
||||
- name: The full name of the node
|
||||
- full-info: All infos available to a node.
|
||||
|
||||
Do NOT set this option directly via setq but use always customize!"
|
||||
:group 'ecb-analyse
|
||||
:type '(cons (choice :tag "When"
|
||||
(const :tag "Always" :value always)
|
||||
(const :tag "If too long" :value if-too-long)
|
||||
(const :tag "After shift click" :value shift-click)
|
||||
(const :tag "Never" :value never))
|
||||
(choice :tag "What"
|
||||
(const :tag "Node-name" :value name)
|
||||
(const :tag "Full info" :value full-info))))
|
||||
|
||||
|
||||
(defcustom ecb-analyse-collapsed-buckets nil
|
||||
"*Buckets collapsed when displaying the current semantic analysis.
|
||||
The semantic analyse-modul offers several categories of analysis which are
|
||||
called buckets here. These are for example:
|
||||
|
||||
Context: The current context, which is the current function/method, variable,
|
||||
class etc. \(what exactly depends on the programming language) point is in.
|
||||
This means not the current function/method/variable/class-name point stand on
|
||||
but the current surrounding context. Example: If point stays somewhere within
|
||||
a defun-definition in emacs-lisp or within a java-method then this defun rsp.
|
||||
method is the context. In object oriented languages this can be the full
|
||||
hierachy, i.e. not only the current method, but the current method, the class
|
||||
of this method, the superclass of this class and so on!
|
||||
|
||||
Local Variables: All accessible and bound local variables visible at current
|
||||
point.
|
||||
|
||||
Prefix: The currently parsed prefix, which is mostly the current identifier
|
||||
point stands on.
|
||||
|
||||
Assignee: See the semantic manual
|
||||
|
||||
Function: Current function-name point stands on.
|
||||
|
||||
Argument #: When point is located within a function-call then this is the
|
||||
number of the argument point stands on.
|
||||
|
||||
Completions: All possible completions for current prefix \(see above). This is
|
||||
probably the most helpful bucket.
|
||||
|
||||
If one of these categories/buckets are not needed per default then add the
|
||||
bucket-name \(s.a.) to this option and ECB will per default collapse this
|
||||
bucket. So most needed buckets are better visible in the analyse-buffer."
|
||||
:group 'ecb-analyse
|
||||
:type '(repeat (choice :tag "Bucket" :menu-tag "Bucket"
|
||||
(const :tag "Context" :value "Context")
|
||||
(const :tag "Arguments" :value "Arguments")
|
||||
(const :tag "Local Variables" :value "Local Variables")
|
||||
(const :tag "Prefix" :value "Prefix")
|
||||
(const :tag "Assignee" :value "Assignee")
|
||||
(const :tag "Function" :value "Function")
|
||||
(const :tag "Argument #" :value "Argument #")
|
||||
(const :tag "Completions" :value "Completions")
|
||||
(string :tag "Other bucketname"))))
|
||||
|
||||
(defcustom ecb-analyse-fontified-buckets '("Context" "Function")
|
||||
"*Buckets whose elements should be fontified as in the methods-buffer.
|
||||
If the name of a category/bucket is contained in this option then
|
||||
all elements of this bucket will be displayed as in the
|
||||
methods-buffer - at least if an element is a semantic-tag. This
|
||||
means if `ecb-font-lock-tags' is not nil and the font-lock
|
||||
feature is loaded into Emacs these elements will be fontified and
|
||||
also displayed with an appropriate icon if possible. The default
|
||||
value does this only for the Context-bucket because for most of
|
||||
the other buckets this makes not really much sense.
|
||||
|
||||
For available buckets see `ecb-analyse-collapsed-buckets'.
|
||||
|
||||
For the faces used to display a bucket-node itself or bucket-elements not
|
||||
fontified see the options `ecb-analyse-bucket-node-face' rsp.
|
||||
`ecb-analyse-bucket-element-face'."
|
||||
:group 'ecb-analyse
|
||||
:type '(repeat (choice :tag "Bucket" :menu-tag "Bucket"
|
||||
(const :tag "Context" :value "Context")
|
||||
(const :tag "Arguments" :value "Arguments")
|
||||
(const :tag "Local Variables" :value "Local Variables")
|
||||
(const :tag "Prefix" :value "Prefix")
|
||||
(const :tag "Assignee" :value "Assignee")
|
||||
(const :tag "Function" :value "Function")
|
||||
(const :tag "Argument #" :value "Argument #")
|
||||
(const :tag "Completions" :value "Completions")
|
||||
(string :tag "Other bucketname"))))
|
||||
|
||||
(defcustom ecb-analyse-gen-tag-info-fn nil
|
||||
"*Which info should be displayed for a tag of the analyse-buffer.
|
||||
If nil then the default information about a tag will be displayed. If a
|
||||
function then this function gets as argument the tag for which tag-information
|
||||
should be displayed. This function has to return a string which will be then
|
||||
display as tag-info. This string has to be fully formatted \(e.g. must already
|
||||
include line-breaks if the tag-info should be displayed in several lines).
|
||||
|
||||
See `ecb-analyse-show-tag-info-fn' how the tag-info is displayed."
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Default info" :value nil)
|
||||
(function :tag "")))
|
||||
|
||||
(defcustom ecb-analyse-show-tag-info-fn 'message
|
||||
"*How to display the tag-info for a tag of the analyse-buffer.
|
||||
The value of this option is a function which will be called with the
|
||||
info-string generated for the current tag of the analyse-buffer. This function
|
||||
must do all things necessary for displaying this info. When this function is
|
||||
called the window stored in `ecb-last-edit-window-with-point' is the selected
|
||||
window!
|
||||
|
||||
ECB offers two builtin ways: Display the info in the echo-area \(via the
|
||||
function `message') or in a temp-buffer in the edit-area \(via the function
|
||||
`ecb-analyse-show-tag-info-in-temp-buffer'). Default is echo-area-display.
|
||||
|
||||
See also `ecb-analyse-gen-tag-info-fn'."
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Display in the echo-area" :value message)
|
||||
(const :tag "Display in a temp-buffer"
|
||||
:value ecb-analyse-show-tag-info-in-temp-buffer)
|
||||
(function :tag "Info display-function")))
|
||||
|
||||
(defcustom ecb-analyse-buffer-sync 'basic
|
||||
"*Synchronize the analyse buffer automatically with current edit buffer.
|
||||
|
||||
If 'always then the synchronization takes place always a buffer changes in the
|
||||
edit window, if nil then never. If a list of major-modes then only if the
|
||||
`major-mode' of the new buffer belongs NOT to this list.
|
||||
|
||||
Normally it's not necessary to exclude some major-modes because with
|
||||
not-semantic supported major-modes simply nothing happens. But maybe it can be
|
||||
helpful for certain situations...
|
||||
|
||||
If the special value 'basic is set then ECB uses the setting of the option
|
||||
`ecb-basic-buffer-sync'.
|
||||
|
||||
IMPORTANT NOTE: Every time the synchronization is done the hook
|
||||
`ecb-analyse-buffer-sync-hook' is evaluated."
|
||||
:group 'ecb-analyse
|
||||
:type '(radio :tag "Synchronize ECBs analyse buffer"
|
||||
(const :tag "use basic value" :value basic)
|
||||
(const :tag "Always" :value always)
|
||||
(const :tag "Never" nil)
|
||||
(repeat :tag "Not with these modes"
|
||||
(symbol :tag "mode"))))
|
||||
|
||||
(defcustom ecb-analyse-buffer-sync-delay 2
|
||||
"*Time Emacs must be idle before the analyse-buffer is synchronized.
|
||||
Synchronizing is done with the current source displayed in the edit window. If
|
||||
nil then there is no delay, means synchronization takes place immediately.
|
||||
|
||||
CAUTION: With analysing a value not too small is strongly recommended because
|
||||
it can be very annoying if more or less after each typing the current context
|
||||
is analysed. If set to nil then *each* keyboard hit refreshes the
|
||||
analyse-buffer which will make ECB quite unusable!
|
||||
|
||||
If the special value 'basic is set then ECB uses the setting of the option
|
||||
`ecb-basic-buffer-sync-delay'"
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Use basic value" :value basic)
|
||||
(const :tag "No synchronizing delay" :value nil)
|
||||
(number :tag "Idle time before synchronizing" :value 2))
|
||||
:set (function (lambda (symbol value)
|
||||
(set symbol value)
|
||||
(if (and (boundp 'ecb-minor-mode)
|
||||
ecb-minor-mode)
|
||||
(ecb-activate-ecb-autocontrol-function
|
||||
value 'ecb-analyse-buffer-sync))))
|
||||
:initialize 'custom-initialize-default)
|
||||
|
||||
(defcustom ecb-analyse-buffer-sync-hook nil
|
||||
"Hook run at the end of `ecb-analyse-buffer-sync'.
|
||||
See documentation of `ecb-analyse-buffer-sync' for conditions when
|
||||
synchronization takes place and so in turn these hooks are evaluated.
|
||||
|
||||
Preconditions for such a hook:
|
||||
- Current buffer is the buffer of the currently selected
|
||||
edit-window.
|
||||
- The analyse-buffer is displayed in a visible window of the
|
||||
ecb-frame \(so no check for visibilty of the analyse-buffer in
|
||||
the ecb-frame is necessary in a hook function)
|
||||
|
||||
Postcondition for such a hook:
|
||||
Point must stay in the same edit-window as before evaluating the hook.
|
||||
|
||||
Important note: If the option `ecb-analyse-buffer-sync' is not
|
||||
nil the function `ecb-analyse-buffer-sync' is running either
|
||||
every time Emacs is idle or even after every command \(see
|
||||
`ecb-analyse-buffer-sync-delay'). So if the anaylse-buffer is
|
||||
displayed in a window of the ecb-frame \(see preconditions above)
|
||||
these hooks can be really called very often! Therefore each
|
||||
function of this hook should/must check in an efficient way at
|
||||
beginning if its task have to be really performed and then do
|
||||
them only if really necessary! Otherwise performance of Emacs
|
||||
could slow down dramatically!"
|
||||
:group 'ecb-analyse
|
||||
:type 'hook)
|
||||
|
||||
(defconst ecb-analyse-nodedata-tag-with-pos 0)
|
||||
(defconst ecb-analyse-nodedata-tag-without-pos 1)
|
||||
(defconst ecb-analyse-nodedata-no-tag 2)
|
||||
|
||||
(defconst ecb-analyse-nodetype-bucket 0)
|
||||
(defconst ecb-analyse-nodetype-context 1)
|
||||
(defconst ecb-analyse-nodetype-arguments 2)
|
||||
(defconst ecb-analyse-nodetype-completions 3)
|
||||
(defconst ecb-analyse-nodetype-localvars 4)
|
||||
(defconst ecb-analyse-nodetype-prefix 5)
|
||||
(defconst ecb-analyse-nodetype-assignee 6)
|
||||
(defconst ecb-analyse-nodetype-function 7)
|
||||
(defconst ecb-analyse-nodetype-function-arg 8)
|
||||
|
||||
(defecb-autocontrol/sync-function ecb-analyse-buffer-sync
|
||||
ecb-analyse-buffer-name ecb-analyse-buffer-sync t
|
||||
"Synchronize the analyse buffer with the current buffer and point.
|
||||
This means in fact display the current analysis for current point."
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: make interruptable. Necessary
|
||||
;; e.g. when typing: "(e" then scanning all elisp stuff beginning with e is
|
||||
;; really annoying....
|
||||
(let ((analysis nil)
|
||||
(scope nil)
|
||||
(completions nil)
|
||||
(cnt nil)
|
||||
(mode-local-active-mode nil)
|
||||
)
|
||||
;; Try and get some sort of analysis
|
||||
(condition-case nil
|
||||
(progn
|
||||
(setq mode-local-active-mode major-mode)
|
||||
(save-excursion
|
||||
;; Get the current scope
|
||||
(setq scope (semantic-calculate-scope (point)))
|
||||
;; Get the analysis
|
||||
(setq analysis (ecb--semantic-analyze-current-context (point)))
|
||||
(setq cnt (ecb--semantic-find-tag-by-overlay))
|
||||
(when analysis
|
||||
(setq completions (ecb--semantic-analyze-possible-completions analysis)))))
|
||||
(error nil))
|
||||
(ecb-exec-in-window ecb-analyse-buffer-name
|
||||
;; we must remove the old nodes
|
||||
(tree-buffer-set-root (tree-node-new-root))
|
||||
(when cnt
|
||||
(ecb-analyse-add-nodes "Context" "Context"
|
||||
cnt ecb-analyse-nodetype-context))
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: maybe we should adopt this
|
||||
;; for ecb-analyse..
|
||||
;; (when analysis
|
||||
;; ;; If this analyzer happens to point at a complete symbol, then
|
||||
;; ;; see if we can dig up some documentation for it.
|
||||
;; (semantic-ia-sb-show-doc analysis))
|
||||
|
||||
;; Show local variables
|
||||
(when scope
|
||||
(ecb-analyse-show-scope scope))
|
||||
|
||||
(when analysis
|
||||
;; Let different classes draw more buttons.
|
||||
(ecb-analyse-more-nodes analysis)
|
||||
(when completions
|
||||
(ecb-analyse-add-nodes "Completions" "Completions" completions
|
||||
ecb-analyse-nodetype-completions)))
|
||||
(tree-buffer-update)))
|
||||
(run-hooks 'ecb-analyse-buffer-sync-hook))
|
||||
|
||||
(defun ecb-analyse-show-scope (scope)
|
||||
"Show SCOPE information."
|
||||
(let ((localvars (when scope
|
||||
(oref scope localvar))))
|
||||
(when localvars
|
||||
(ecb-analyse-add-nodes "Local Variables" "Local Variables" localvars
|
||||
ecb-analyse-nodetype-localvars))))
|
||||
|
||||
(defmethod ecb-analyse-more-nodes ((context semantic-analyze-context))
|
||||
"Show a set of ecb-nodes specific to CONTEXT."
|
||||
(let ((prefix (oref context prefix)))
|
||||
(when prefix
|
||||
(ecb-analyse-add-nodes "Prefix" "Prefix" prefix ecb-analyse-nodetype-prefix))))
|
||||
|
||||
(defmethod ecb-analyse-more-nodes ((context semantic-analyze-context-assignment))
|
||||
"Show a set of ecb-nodes specific to CONTEXT."
|
||||
(call-next-method)
|
||||
(let ((assignee (oref context assignee)))
|
||||
(when assignee
|
||||
(ecb-analyse-add-nodes "Assignee" "Assignee" assignee
|
||||
ecb-analyse-nodetype-assignee))))
|
||||
|
||||
(defmethod ecb-analyse-more-nodes ((context semantic-analyze-context-functionarg))
|
||||
"Show a set of ecb-nodes specific to CONTEXT."
|
||||
(call-next-method)
|
||||
(let ((func (oref context function)))
|
||||
(when func
|
||||
(ecb-analyse-add-nodes "Function" "Function" func ecb-analyse-nodetype-function)
|
||||
;; An index for the argument the prefix is in:
|
||||
(let ((arg (oref context argument)))
|
||||
(when arg
|
||||
(ecb-analyse-add-nodes "Argument #"
|
||||
(format "Argument # %d" (oref context index))
|
||||
arg
|
||||
ecb-analyse-nodetype-function-arg))))))
|
||||
|
||||
;; Each category of nodes gets its own nodetype, so we can offer different
|
||||
;; popup-menus for different categories (e.g. completions have other senseful
|
||||
;; popup-menu-entries than the rest. The date of a node will always be a cons
|
||||
;; where the car is the analyse-elem and the cdr is a const if it is a
|
||||
;; semantic-tag (positionless or with position) or not.
|
||||
|
||||
(defun ecb-analyse-add-nodes (bucket bucket-name list nodetype)
|
||||
"Create ecb-nodes from LIST. BUCKET is one of the categories/buckets
|
||||
mentioned in `ecb-analyse-collapsed-buckets'. BUCKET-NAME is the name a bucket
|
||||
should be displayed with. LIST is a list of tags for this bucket. NODETYPE is
|
||||
an integer which will be added as type to the nodes created for the elements
|
||||
of LIST."
|
||||
(when list
|
||||
(with-current-buffer ecb-analyse-buffer-name
|
||||
(let* ((bucket-name-formatted
|
||||
(ecb-merge-face-into-text (ecb-format-bucket-name bucket-name)
|
||||
ecb-analyse-bucket-node-face))
|
||||
(bucket-node (tree-node-new bucket-name-formatted
|
||||
ecb-analyse-nodetype-bucket
|
||||
(list 'ecb-bucket-node
|
||||
ecb-analyse-nodetype-bucket)
|
||||
nil
|
||||
(tree-buffer-get-root))))
|
||||
(setf (tree-node->expanded bucket-node)
|
||||
(not (member bucket ecb-analyse-collapsed-buckets)))
|
||||
(ecb-exit-on-input 'ecb-analyse
|
||||
(dolist (elem list)
|
||||
(ecb-throw-on-input 'ecb-analyse-tree-buffer-build)
|
||||
(let* ((fontify-tags (member bucket ecb-analyse-fontified-buckets))
|
||||
(string-1 (typecase elem
|
||||
(string elem)
|
||||
(ecb--semantic-tag
|
||||
(if fontify-tags
|
||||
(ecb-displayed-tag-name elem)
|
||||
(ecb--semantic-format-tag-uml-concise-prototype elem)))
|
||||
(otherwise "foo")))
|
||||
(string (concat string-1)))
|
||||
(unless fontify-tags
|
||||
(ecb-merge-face-into-text string ecb-analyse-bucket-element-face))
|
||||
(if (ecb--semantic-tag-p elem)
|
||||
(tree-node-new string nodetype
|
||||
(list elem
|
||||
(if (ecb--semantic-tag-with-position-p elem)
|
||||
ecb-analyse-nodedata-tag-with-pos
|
||||
ecb-analyse-nodedata-tag-without-pos)
|
||||
nodetype)
|
||||
t bucket-node nil)
|
||||
(tree-node-new string nodetype
|
||||
(list elem ecb-analyse-nodedata-no-tag nodetype)
|
||||
t bucket-node nil)))))))))
|
||||
|
||||
(defun ecb-analyse-compare-node-data (left right)
|
||||
"Return not nil when LEFT and RIGHT are identical node-datas."
|
||||
(and (equal (nth 2 left) (nth 2 right))
|
||||
(ecb-compare-methods-buffer-node-data (car left) (car right))))
|
||||
|
||||
(tree-buffer-defpopup-command ecb-analyse-jump-to-tag
|
||||
"Jump to the definition of current tag of the analyse-buffer.
|
||||
If first arg of the REST-ARG-LIST is not nil then it must be a window and then
|
||||
ECB jumps to that window. If nil then `ecb-last-edit-window-with-point' is
|
||||
used as window."
|
||||
(let ((window (nth 0 rest-arg-list)))
|
||||
(when node
|
||||
(let* ((data (tree-node->data node))
|
||||
(tag (nth 0 data)))
|
||||
;; if we have a positioned tag we jump to it
|
||||
(when (and tag (= (nth 1 data) ecb-analyse-nodedata-tag-with-pos))
|
||||
;; We must highlight the tag
|
||||
(tree-buffer-highlight-node-by-data/name data)
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: what about tags without
|
||||
;; buffer but onlxy with start- and end-pos?!
|
||||
(ecb-display-tag (ecb-source-make (ecb-buffer-file-name
|
||||
(ecb-semantic-tag-buffer tag))
|
||||
(ecb-semantic-tag-buffer tag))
|
||||
tag
|
||||
(or window (ecb-get-edit-window nil))
|
||||
t nil))))))
|
||||
|
||||
(tree-buffer-defpopup-command ecb-analyse-complete/insert
|
||||
"Complete/insert at current point the selected completion/localvar."
|
||||
;; We must highlight the tag
|
||||
(let* ((data (tree-node->data node))
|
||||
(tag (nth 0 data))
|
||||
(type (tree-node->type node)))
|
||||
(when (or (= type ecb-analyse-nodetype-completions)
|
||||
(= type ecb-analyse-nodetype-localvars))
|
||||
(tree-buffer-highlight-node-by-data/name data)
|
||||
(ecb-display-source ecb-path-selected-source nil)
|
||||
(let* ((a (ecb--semantic-analyze-current-context (point)))
|
||||
(bounds (if a (oref a bounds)))
|
||||
(movepoint nil))
|
||||
(if (null bounds)
|
||||
(insert (ecb--semantic-tag-name tag))
|
||||
(save-excursion
|
||||
(if (and (<= (point) (cdr bounds)) (>= (point) (car bounds)))
|
||||
(setq movepoint t))
|
||||
(goto-char (car bounds))
|
||||
(delete-region (car bounds) (cdr bounds))
|
||||
(insert (ecb--semantic-tag-name tag))
|
||||
(if movepoint (setq movepoint (point))))
|
||||
(if movepoint
|
||||
(goto-char movepoint)))))))
|
||||
|
||||
(defecb-tree-buffer-callback ecb-analyse-node-clicked ecb-analyse-buffer-name select nil
|
||||
"Handles clicking onto any of the nodes in the analyse-buffer of ECB."
|
||||
(if shift-mode
|
||||
(ecb-mouse-over-analyse-node node nil nil 'force))
|
||||
(let* ((data (tree-node->data node))
|
||||
(tag (nth 0 data))
|
||||
(type (tree-node->type node)))
|
||||
;; we handle hiding the ecb-windows for ourself
|
||||
(setq no-meta-hiding t)
|
||||
(cond
|
||||
((= type ecb-analyse-nodetype-bucket)
|
||||
(tree-node-toggle-expanded node)
|
||||
(tree-buffer-update node))
|
||||
((= type ecb-analyse-nodetype-completions)
|
||||
(ecb-analyse-complete/insert node))
|
||||
((= type ecb-analyse-nodetype-localvars)
|
||||
(ecb-analyse-complete/insert node))
|
||||
(t
|
||||
(ecb-analyse-jump-to-tag node (ecb-get-edit-window
|
||||
;; `ecb-analyse-jump-to-tag' expects all
|
||||
;; args beyond NODE as one list.
|
||||
`(,(ecb-combine-ecb-button/edit-win-nr
|
||||
ecb-button edit-window-nr))))
|
||||
(when (and tag (= (nth 1 data) ecb-analyse-nodedata-tag-with-pos))
|
||||
(when meta-mode
|
||||
(ecb-run-with-idle-timer 0.001 nil 'ecb-hide-ecb-windows)))))))
|
||||
|
||||
(defecb-window-dedicator-to-ecb-buffer ecb-set-analyse-buffer ecb-analyse-buffer-name t
|
||||
"Display the analyse buffer in current window and make window dedicated."
|
||||
(ecb-activate-ecb-autocontrol-function ecb-analyse-buffer-sync-delay
|
||||
'ecb-analyse-buffer-sync)
|
||||
(switch-to-buffer ecb-analyse-buffer-name))
|
||||
|
||||
(defun ecb-maximize-window-analyse ()
|
||||
"Maximize the ECB-analyse-window.
|
||||
I.e. delete all other ECB-windows, so only one ECB-window and the
|
||||
edit-window\(s) are visible \(and maybe a compile-window). Works also if the
|
||||
ECB-analyse-window is not visible in current layout."
|
||||
(interactive)
|
||||
(ecb-maximize-ecb-buffer ecb-analyse-buffer-name t))
|
||||
|
||||
(defun ecb-goto-window-analyse ()
|
||||
"Make the ECB-analyse window the current window."
|
||||
(interactive)
|
||||
(ecb-goto-ecb-window ecb-analyse-buffer-name))
|
||||
|
||||
(defun ecb-analyse-show-tag-info-in-temp-buffer (info-string)
|
||||
"Display INFO-STRING in a temp-buffer in the edit-area."
|
||||
(with-output-to-temp-buffer "*Tag Information*"
|
||||
(with-current-buffer "*Tag Information*"
|
||||
(insert info-string)))
|
||||
;; Make it small
|
||||
(shrink-window-if-larger-than-buffer
|
||||
(get-buffer-window "*Tag Information*")))
|
||||
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: we could use the function
|
||||
;; `semantic-documentation-for-tag' here to display more infos?!
|
||||
|
||||
(defun ecb-analyse-gen-tag-info (tag)
|
||||
"Return the info-string for TAG."
|
||||
(or (and (functionp ecb-analyse-gen-tag-info-fn)
|
||||
(or (funcall ecb-analyse-gen-tag-info-fn tag)
|
||||
(format "No info generated by `%s'." ecb-analyse-gen-tag-info-fn)))
|
||||
(concat (ecb-displayed-tag-name tag)
|
||||
"\n"
|
||||
(let ((typetag
|
||||
(condition-case nil
|
||||
(save-excursion
|
||||
(ecb--semantic-analyze-tag-type tag))
|
||||
(error nil))))
|
||||
(if typetag
|
||||
(ecb-displayed-tag-name typetag)
|
||||
;; No type found by the analyzer The below used
|
||||
;; to try and select the buffer from the last
|
||||
;; analysis, but since we are already in the
|
||||
;; correct buffer, I don't think that is needed.
|
||||
(when (fboundp 'semantic-lex-keyword-p)
|
||||
(let ((type (ecb--semantic-tag-type tag)))
|
||||
(typecase type
|
||||
(ecb--semantic-tag
|
||||
(setq type (ecb--semantic-tag-name type)))
|
||||
(list
|
||||
(setq type (car type))))
|
||||
(if (semantic-lex-keyword-p type)
|
||||
(setq typetag
|
||||
(semantic-lex-keyword-get type 'summary))))
|
||||
(if typetag
|
||||
typetag))
|
||||
)))))
|
||||
|
||||
|
||||
(tree-buffer-defpopup-command ecb-analyse-show-tag-info
|
||||
"Display as much information as possible about current tag.
|
||||
Show the information in a shrunk split-buffer and expand out as many details
|
||||
as possible."
|
||||
(let* ((data (tree-node->data node))
|
||||
(tag (car data)))
|
||||
(when (ecb--semantic-tag-p tag)
|
||||
(save-selected-window
|
||||
(select-window ecb-last-edit-window-with-point)
|
||||
(funcall ecb-analyse-show-tag-info-fn (ecb-analyse-gen-tag-info tag))))))
|
||||
|
||||
(defun ecb-mouse-over-analyse-node (node &optional window no-message click-force)
|
||||
"Displays help text if mouse moves over a node in the analyse buffer or if
|
||||
CLICK-FORCE is not nil and always with regards to the settings in
|
||||
`ecb-analyse-show-node-info'. NODE is the node for which help text should be
|
||||
displayed, WINDOW is the related window, NO-MESSAGE defines if the help-text
|
||||
should be printed here."
|
||||
(let ((str (when (or click-force
|
||||
(ecb-show-minibuffer-info node window
|
||||
(car
|
||||
ecb-analyse-show-node-info)))
|
||||
(if (equal (cdr ecb-analyse-show-node-info) 'full-info)
|
||||
(ecb-analyse-gen-tag-info (car (tree-node->data node)))
|
||||
(tree-node->name node)))))
|
||||
(prog1 str
|
||||
(unless no-message
|
||||
(ecb-nolog-message str)))))
|
||||
|
||||
(defun ecb-analyse-node-mouse-highlighted-p (node)
|
||||
"Return not nil when NODE has a positioned tag as data or belongs to the
|
||||
completions. This means that this node should be highlighted when mouse is
|
||||
moved over it."
|
||||
(or (equal ecb-analyse-nodedata-tag-with-pos
|
||||
(nth 1 (tree-node->data node)))
|
||||
(member (tree-node->type node)
|
||||
(list ecb-analyse-nodetype-completions
|
||||
ecb-analyse-nodetype-localvars))))
|
||||
|
||||
(defun ecb-analyse-create-menu (node)
|
||||
"Return a popup-menu suitable for NODE."
|
||||
(let* ((data (tree-node->data node))
|
||||
(tag-p (not (equal (nth 1 data) ecb-analyse-nodedata-no-tag)))
|
||||
(tag-with-pos-p (equal (nth 1 data) ecb-analyse-nodedata-tag-with-pos))
|
||||
(nodetype (nth 2 data)))
|
||||
(delq nil (list (if (member nodetype (list
|
||||
ecb-analyse-nodetype-completions
|
||||
ecb-analyse-nodetype-localvars))
|
||||
'(ecb-analyse-complete/insert "Complete/insert"))
|
||||
(if tag-p
|
||||
'(ecb-analyse-show-tag-info "Show tag info"))
|
||||
(if tag-with-pos-p
|
||||
'(ecb-analyse-jump-to-tag "Jump to tag"))))))
|
||||
|
||||
(defun ecb-analyse-menu-creator (tree-buffer-name node)
|
||||
"Creates the popup-menus for the analyse-buffer."
|
||||
(setq ecb-layout-prevent-handle-ecb-window-selection t)
|
||||
(let ((nodetype (tree-node->type node)))
|
||||
(unless (equal nodetype ecb-analyse-nodetype-bucket)
|
||||
(mapcar (function (lambda (type)
|
||||
(cons type (ecb-analyse-create-menu node))))
|
||||
`(,ecb-analyse-nodetype-context
|
||||
,ecb-analyse-nodetype-arguments
|
||||
,ecb-analyse-nodetype-completions
|
||||
,ecb-analyse-nodetype-localvars
|
||||
,ecb-analyse-nodetype-prefix
|
||||
,ecb-analyse-nodetype-assignee
|
||||
,ecb-analyse-nodetype-function
|
||||
,ecb-analyse-nodetype-function-arg)))))
|
||||
|
||||
|
||||
(defun ecb-analyse-gen-menu-title-creator ()
|
||||
"Returns a menu-title-create-function for the nodetypes of the
|
||||
analyse-buffer."
|
||||
(mapcar (function (lambda (nodetype)
|
||||
(cons nodetype
|
||||
(function (lambda (node)
|
||||
(tree-node->name node))))))
|
||||
`(,ecb-analyse-nodetype-context
|
||||
,ecb-analyse-nodetype-arguments
|
||||
,ecb-analyse-nodetype-completions
|
||||
,ecb-analyse-nodetype-localvars
|
||||
,ecb-analyse-nodetype-prefix
|
||||
,ecb-analyse-nodetype-assignee
|
||||
,ecb-analyse-nodetype-function
|
||||
,ecb-analyse-nodetype-function-arg)))
|
||||
|
||||
|
||||
(defecb-tree-buffer-creator ecb-create-analyse-tree-buffer ecb-analyse-buffer-name
|
||||
"Create the tree-buffer for analyse-display."
|
||||
(tree-buffer-create
|
||||
ecb-analyse-buffer-name
|
||||
:frame ecb-frame
|
||||
:mouse-action-trigger ecb-tree-mouse-action-trigger
|
||||
:is-click-valid-fn 'ecb-interpret-mouse-click
|
||||
:node-selected-fn 'ecb-tree-buffer-node-select-callback
|
||||
:node-expanded-fn 'ecb-tree-buffer-node-expand-callback
|
||||
:node-collapsed-fn 'ecb-tree-buffer-node-collapsed-callback
|
||||
:node-mouse-over-fn 'ecb-mouse-over-analyse-node
|
||||
:mouse-highlight-fn 'ecb-analyse-node-mouse-highlighted-p
|
||||
:node-data-equal-fn 'ecb-analyse-compare-node-data
|
||||
:maybe-empty-node-types nil
|
||||
:leaf-node-types nil
|
||||
:menu-creator 'ecb-analyse-menu-creator
|
||||
:menu-titles (ecb-analyse-gen-menu-title-creator)
|
||||
:modeline-menu-creator 'ecb-common-tree-buffer-modeline-menu-creator
|
||||
:sticky-parent-p ecb-tree-make-parent-node-sticky
|
||||
:sticky-indent-string ecb-tree-stickynode-indent-string
|
||||
:sticky-parent-fn nil
|
||||
:trunc-lines (ecb-member-of-symbol/value-list ecb-analyse-buffer-name
|
||||
ecb-tree-truncate-lines)
|
||||
:read-only t
|
||||
:tree-indent ecb-tree-indent
|
||||
:incr-search-p nil ;; ecb-tree-incremental-search
|
||||
:incr-search-additional-pattern nil ;; ecb-methods-incr-searchpattern-node-prefix
|
||||
:arrow-navigation ecb-tree-navigation-by-arrow
|
||||
:hor-scroll-step ecb-tree-easy-hor-scroll
|
||||
:default-images-dir (car ecb-tree-image-icons-directories)
|
||||
:additional-images-dir (ecb-member-of-symbol/value-list ecb-analyse-buffer-name
|
||||
(cdr ecb-tree-image-icons-directories)
|
||||
'car 'cdr)
|
||||
:image-file-prefix "ecb-"
|
||||
:tree-style ecb-tree-buffer-style
|
||||
:ascii-guide-face ecb-tree-guide-line-face
|
||||
:type-facer nil
|
||||
:expand-symbol-before-p ecb-tree-expand-symbol-before
|
||||
:highlight-node-face ecb-analyse-face
|
||||
:general-face ecb-analyse-general-face
|
||||
:after-create-hook (append
|
||||
(list (function (lambda ()
|
||||
(ecb-common-after-tree-buffer-create-actions))))
|
||||
ecb-common-tree-buffer-after-create-hook
|
||||
ecb-analyse-buffer-after-create-hook)
|
||||
:after-update-hook nil))
|
||||
|
||||
|
||||
|
||||
(silentcomp-provide 'ecb-analyse)
|
||||
|
||||
;;; ecb-anaylse.el ends here
|
|
@ -1,160 +0,0 @@
|
|||
;;; ecb-autogen.el --- Auto load statement generator
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Jesper Nordenberg <mayhem@home.se>
|
||||
;; Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Kevin A. Burton <burton@openprivacy.org>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2003
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Automatically generate autoloads for ECB
|
||||
;;
|
||||
;; This code is based onto semantic-autogen.el, the autoload generator of
|
||||
;; semantic.
|
||||
;;
|
||||
|
||||
;;; History
|
||||
;;
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
;;; Code
|
||||
;;
|
||||
|
||||
(require 'autoload)
|
||||
|
||||
(require 'ecb-util)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
|
||||
(when (ecb-noninteractive)
|
||||
;; If the user is doing this non-interactively, we need to set up
|
||||
;; these conveniences.
|
||||
(add-to-list 'load-path nil)
|
||||
(set (if (boundp 'find-file-hook)
|
||||
'find-file-hook
|
||||
'find-file-hooks) nil)
|
||||
(setq find-file-suppress-same-file-warnings t)
|
||||
)
|
||||
|
||||
|
||||
(defconst ecb-autogen-header
|
||||
"Auto-generated ecb autoloads"
|
||||
"Header of the auto-generated autoloads file.")
|
||||
|
||||
(defconst ecb-autogen-file "ecb-autoloads.el"
|
||||
"Name of the auto-generated autoloads file.")
|
||||
|
||||
(defconst ecb-autoload-feature "ecb-autoloads"
|
||||
"Feature-name of the autoloads")
|
||||
|
||||
(defvar ecb-autogen-subdirs nil
|
||||
"Sub-directories to scan for autoloads.")
|
||||
|
||||
(defun ecb-autogen-update-header ()
|
||||
"Update header of the auto-generated autoloads file.
|
||||
Run as `write-contents-hooks'."
|
||||
(when (ecb-string= generated-autoload-file (buffer-file-name))
|
||||
(let ((tag (format ";;; %s ---" (file-name-nondirectory
|
||||
(buffer-file-name)))))
|
||||
(message "Updating header...")
|
||||
(goto-char (point-min))
|
||||
(cond
|
||||
;; Replace existing header line
|
||||
((re-search-forward (concat "^" (regexp-quote tag)) nil t)
|
||||
(beginning-of-line)
|
||||
(kill-line 1)
|
||||
)
|
||||
;; Insert header before first ^L encountered (XEmacs)
|
||||
((re-search-forward "^" nil t)
|
||||
(beginning-of-line)
|
||||
))
|
||||
(insert tag " " ecb-autogen-header)
|
||||
(newline)
|
||||
(message "Updating header...done")
|
||||
nil ;; Say not already written.
|
||||
)))
|
||||
|
||||
;; We code this so clumsy to silence the bytecompiler of GNU Emacs >= 21.4 not
|
||||
;; to complain about obsoleteness of `write-contents-hooks'.
|
||||
(defun ecb-batch-update-autoloads ()
|
||||
(let ((old-val (symbol-value (if (boundp 'write-contents-functions)
|
||||
'write-contents-functions
|
||||
'write-contents-hooks))))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(set (if (boundp 'write-contents-functions)
|
||||
'write-contents-functions
|
||||
'write-contents-hooks)
|
||||
'(ecb-autogen-update-header))
|
||||
(batch-update-autoloads))
|
||||
(set (if (boundp 'write-contents-functions)
|
||||
'write-contents-functions
|
||||
'write-contents-hooks)
|
||||
old-val))))
|
||||
|
||||
(defun ecb-update-autoloads ()
|
||||
"Update ecb autoloads from sources.
|
||||
Autoloads file name is defined in variable `ecb-autogen-file'. If ECB is
|
||||
installed as regular XEmacs-package then this function reports an error and
|
||||
does nothing."
|
||||
(interactive)
|
||||
(if ecb-regular-xemacs-package-p
|
||||
(ecb-error "Updating autoloads not possible for regular XEmacs-packages!")
|
||||
(if (file-exists-p (expand-file-name ecb-autogen-file))
|
||||
(delete-file (expand-file-name ecb-autogen-file)))
|
||||
(when (not ecb-running-xemacs)
|
||||
;; generate a new one but do this not for XEmacs because XEmacs must(!)
|
||||
;; handle this itself
|
||||
(with-temp-file (expand-file-name ecb-autogen-file)
|
||||
(insert "")))
|
||||
(let* ((default-directory (file-name-directory (locate-library "ecb")))
|
||||
(generated-autoload-file (expand-file-name ecb-autogen-file))
|
||||
;; needed for XEmacs to ensure that always a feature 'ecb-autoloads
|
||||
;; is provided and not a feature like 'ecb-1.91.2-autoloads (XEmacs
|
||||
;; uses the installation-directory of ECB as feature prefix if
|
||||
;; autoload-package-name is not provided.
|
||||
(autoload-package-name "ecb")
|
||||
(subdirs (mapcar 'expand-file-name ecb-autogen-subdirs))
|
||||
(command-line-args-left (cons default-directory subdirs))
|
||||
)
|
||||
(ecb-batch-update-autoloads))
|
||||
;; XEmacs adds autom. the provide statement but for GNU Emacs we must do
|
||||
;; this:
|
||||
(when (not ecb-running-xemacs)
|
||||
(with-current-buffer (find-file-noselect (expand-file-name ecb-autogen-file))
|
||||
(goto-char (point-min))
|
||||
(when (not (re-search-forward (format "^(provide '%s)"
|
||||
ecb-autoload-feature) nil t))
|
||||
(goto-char (point-max))
|
||||
(insert (format "\n(provide '%s)\n" ecb-autoload-feature))
|
||||
(save-buffer)
|
||||
(kill-buffer (current-buffer)))))))
|
||||
|
||||
(silentcomp-provide 'ecb-autogen)
|
||||
|
||||
;;; ecb-autogen.el ends here
|
|
@ -1,115 +0,0 @@
|
|||
;;; ecb-buffertab.el ---
|
||||
|
||||
;; $Id$
|
||||
|
||||
;; Copyright (C) 2000-2003 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2000-2003 Kevin A. Burton (burton@openprivacy.org)
|
||||
|
||||
;; Author: Kevin A. Burton (burton@openprivacy.org)
|
||||
;; Maintainer: Kevin A. Burton (burton@openprivacy.org)
|
||||
;; Location: http://relativity.yi.org
|
||||
;; Keywords:
|
||||
;; Version: 1.0.0
|
||||
|
||||
;; This file is [not yet] part of GNU Emacs.
|
||||
|
||||
;; This program 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 of the License, or any later version.
|
||||
;;
|
||||
;; This program 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
|
||||
;; this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
;; Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; NOTE: If you enjoy this software, please consider a donation to the EFF
|
||||
;; (http://www.eff.org)
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;; TODO: make sure we don't do this TOO many times.
|
||||
;;
|
||||
;; - we need to define a property with 'local-map set correctly.
|
||||
;;
|
||||
;; - write a function that generates a popup menu
|
||||
;;
|
||||
;; - the popup menu should allow the user to check a buffer view to set it as
|
||||
;; the default when opening new files.
|
||||
;;
|
||||
;; - is this possible? I think it might but I would need to set it up
|
||||
;; correctly.
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(require 'ecb-compilation)
|
||||
|
||||
(defface ecb-buffertab-primary-face '((t (:bold t :foreground "black")))
|
||||
"Face used to highlight the annotation lines to the left of the annotate buffer."
|
||||
:group 'ecb)
|
||||
|
||||
(defface ecb-buffertab-secondary-face '((t (:bold nil :foreground "black")))
|
||||
"Face used to highlight the annotation lines to the left of the annotate buffer."
|
||||
:group 'ecb)
|
||||
|
||||
(defface ecb-buffertab-secondary-mouse-face '((t (:bold nil :foreground "black" :italic t)))
|
||||
"Face used to highlight the annotation lines to the left of the annotate buffer."
|
||||
:group 'ecb)
|
||||
|
||||
(defcustom ecb-buffertab-map (let ((map (make-sparse-keymap)))
|
||||
(define-key map [header-line down-mouse-2] 'ecb-buffertab-popup-menu)
|
||||
map)
|
||||
|
||||
"Key map used for buffertab navigation"
|
||||
:group 'ecb)
|
||||
|
||||
(defun ecb-buffertab-popup-menu()
|
||||
"Popup a menu for selecting an ECB buffer."
|
||||
(interactive)
|
||||
|
||||
(let((menu (ecb-buffertab-make-menu "Compilation Buffers")))
|
||||
|
||||
(popup-menu menu)))
|
||||
|
||||
(defun ecb-buffertab-make-menu(name)
|
||||
"Make a menu for use on the buffertab."
|
||||
|
||||
(let((menu (list 'keymap name)))
|
||||
|
||||
(dolist(entry (ecb-compilation-get-buffers))
|
||||
|
||||
(add-to-list 'menu (cons (list (car entry) (car entry))
|
||||
'switch-to-buffer)) t)
|
||||
|
||||
(pp menu)
|
||||
|
||||
menu))
|
||||
|
||||
(defun ecb-buffertab-setup-header()
|
||||
""
|
||||
(interactive)
|
||||
|
||||
(let((ecb-prefix " ECB: " ))
|
||||
(with-current-buffer (get-buffer ecb-speedbar-buffer-name)
|
||||
;;FIXME: figure out what modeline tab to use
|
||||
(setq header-line-format (concat ecb-prefix "/ " (buffer-name)" "))
|
||||
|
||||
(add-text-properties 0 (length ecb-prefix)
|
||||
(list 'face 'ecb-buffertab-primary-face)
|
||||
header-line-format)
|
||||
|
||||
(add-text-properties (1+ (length ecb-prefix)) (length header-line-format)
|
||||
(list 'face 'ecb-buffertab-secondary-face
|
||||
'mouse-face 'ecb-buffertab-secondary-mouse-face
|
||||
'local-map 'ecb-buffertab-map)
|
||||
header-line-format))))
|
||||
|
||||
(silentcomp-provide 'ecb-buffertab)
|
||||
|
||||
;;; ecb-buffertab.el ends here
|
|
@ -1,368 +0,0 @@
|
|||
;;; ecb-cedet-wrapper.el -- define wrappers for all cedet funcs/vars
|
||||
|
||||
;; Copyright (C) 2000 - 2009 Klaus Berndl,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2009
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file contains wrappers for every cedet-function and -variable used
|
||||
;; by ECB independent which cedet version is used. So the ECB-code is
|
||||
;; independent from the fact, if cedet offers backward-compatibility or
|
||||
;; not. This library offers for each used variable V of cedet a getter-function
|
||||
;; named "ecb--V" and for each function F an alias named "ecb--F". V and F
|
||||
;; follow the naming conventiones of cedet 1.0 but the resulting functions
|
||||
;; always point to the correct variable or function of cedet independent
|
||||
;; which cedet version is loaded. ECB only uses the functions exported from
|
||||
;; ecb-cedet-wrapper.el!
|
||||
;;
|
||||
;; In addition this file defines all requirements ECB needs of CEDET.
|
||||
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(eval-when-compile
|
||||
;; to avoid compiler grips
|
||||
(require 'cl))
|
||||
|
||||
(require 'ecb-util)
|
||||
|
||||
(defconst ecb-cedet-old-sourcetree-structure-detected-p
|
||||
(locate-library "semantic-ctxt")
|
||||
"Not nil if old cedet sourcetree-structure is detected.")
|
||||
|
||||
;; Additonal cedet libraries needed by ecb must be added here!!
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: We have to pay attention if there
|
||||
;; are changes when Eric marriages the two styles for his CVS-repository
|
||||
(defconst ecb-cedet-lib-registry '((cedet . cedet)
|
||||
(semantic . semantic)
|
||||
(semantic-ctxt . semantic/ctxt)
|
||||
(semantic-analyze . semantic/analyze)
|
||||
(semanticdb . semantic/db)
|
||||
(semanticdb-find . semantic/db-find)
|
||||
(semanticdb-mode . semantic/db-mode)
|
||||
(semantic-el . semantic/bovine/el)
|
||||
(eieio . eieio)
|
||||
(speedbar . speedbar))
|
||||
"Maps the old library-structure of cedet to the equivalent libs
|
||||
of Emacs >= 23.2. The value is an assoc list where the car is the
|
||||
lib-symbol of an old-style cedet-library and the cdr is the
|
||||
corresponding lib-symbol of the new style library \(as with the
|
||||
cedet-suite integrated into Emacs >= 23.2).
|
||||
|
||||
ALL CEDET-LIBRARIES NEEDED BY ECB MUST BE REGISTERED HERE!")
|
||||
|
||||
(defconst ecb-cedet-required-version-min '(1 0 2 6)
|
||||
"Minimum version of cedet needed by ECB.
|
||||
The meaning is as follows:
|
||||
1. Major-version
|
||||
2. Minor-version
|
||||
3. 0 = alpha, 1 = beta, 2 = pre, 3 = nothing \(e.g. \"1.4\"), 4 = . \(e.g. \"1.4.3\"
|
||||
4. Subversion after the alpha, beta, pre or .")
|
||||
|
||||
(defconst ecb-cedet-required-version-max '(10 0 0 0)
|
||||
"Maximum version of CEDET currently accepted by ECB.
|
||||
See `ecb-required-cedet-version-min' for an explanation.")
|
||||
|
||||
(defun ecb-cedet-missing-libs ()
|
||||
"Return a list of names of missing cedet-libs.
|
||||
If no cedet libs are missing nil is returned."
|
||||
(let ((missing-libs-list nil)
|
||||
(lib nil))
|
||||
(dolist (l-elem ecb-cedet-lib-registry)
|
||||
(setq lib (symbol-name (if ecb-cedet-old-sourcetree-structure-detected-p
|
||||
(car l-elem)
|
||||
(cdr l-elem))))
|
||||
(when (not (locate-library lib))
|
||||
(push lib missing-libs-list)))
|
||||
missing-libs-list))
|
||||
|
||||
(defun ecb-cedet-require (old-style-lib)
|
||||
"Loads a cedet-library CVS-LIB into Emacs.
|
||||
OLD-STYLE-LIB is the symbol-name of the cedet-library as in the cvs-version of
|
||||
cedet in feb 2010 \(ie. there is a lib semantic-ctxt instead of semantic/ctxt).
|
||||
All cedet libaryies needed by ECB must be loaded with this function! Do not
|
||||
use `require' for looading a cedet-library into Emacs!"
|
||||
(require (if ecb-cedet-old-sourcetree-structure-detected-p
|
||||
old-style-lib
|
||||
(cdr (assoc old-style-lib ecb-cedet-lib-registry)))))
|
||||
|
||||
;; With old style CEDET-load-mechanism cedet.el must be loaded "by
|
||||
;; hand" to setup load-path correctly for cedet.
|
||||
;; + Old-style CEDET-loader: The following require for 'cedet fails if
|
||||
;; cedet.el is either not loaded or cedet/common is not contained in the
|
||||
;; load-path. For these cases we encapsulate it with ignore-errors.
|
||||
;; + New-style CEDET-loader (as in Emacs >= 23.2): cedet.el is not needed to
|
||||
;; setup the load-path but it contains the costant `cedet-version' which is
|
||||
;; needed by ECB.
|
||||
(ignore-errors (ecb-cedet-require 'cedet))
|
||||
|
||||
(defconst ecb-cedet-missing-libraries
|
||||
(ecb-cedet-missing-libs)
|
||||
"List of library-names of CEDET missed by ECB.
|
||||
Nil if all libs needed by ECB are found.")
|
||||
|
||||
(unless ecb-cedet-missing-libraries
|
||||
(ecb-cedet-require 'semantic)
|
||||
(ecb-cedet-require 'semantic-ctxt)
|
||||
(ecb-cedet-require 'semantic-analyze)
|
||||
(ecb-cedet-require 'semanticdb)
|
||||
(ecb-cedet-require 'semanticdb-find)
|
||||
(ecb-cedet-require 'semanticdb-mode)
|
||||
(ecb-cedet-require 'eieio))
|
||||
|
||||
(defconst ecb-compiled-in-semantic-version
|
||||
(eval-when-compile (ignore-errors semantic-version))
|
||||
"Semantic-version used for byte-compiling ECB. Either nil when no semantic
|
||||
is loaded or the value of `semantic-version' at ECB-compilation time.")
|
||||
|
||||
(defconst ecb-compiled-in-cedet-version
|
||||
(eval-when-compile (ignore-errors cedet-version))
|
||||
"Cedet-version used for byte-compiling ECB. Either nil when no semantic
|
||||
is loaded or the value of `cedet-version' at ECB-compilation time.")
|
||||
|
||||
(defun ecb-check-semantic-load ()
|
||||
"Checks if cedet is correctly loaded if semantic 2.X is used and if the same
|
||||
semantic-version has been used for byte-compiling ECB and loading into Emacs.
|
||||
If ECB detects a problem it is reported and then an error is thrown."
|
||||
(when (boundp 'semantic-version)
|
||||
(let ((err-msg
|
||||
(cond ;; Different semantic-version used for byte-compiling ECB and
|
||||
;; loading into Emacs.
|
||||
((not (string= semantic-version ecb-compiled-in-semantic-version))
|
||||
(concat "ECB has been byte-compiled with another semantic-version than currently\n"
|
||||
"loaded into Emacs:\n"
|
||||
(format " + Semantic used for byte-compiling ECB: %s\n"
|
||||
ecb-compiled-in-semantic-version)
|
||||
(format " + Semantic currently loaded into Emacs: %s\n"
|
||||
semantic-version)
|
||||
"Please ensure that ECB is byte-compiled with the same semantic-version as you\n"
|
||||
"you load into your Emacs. Check if you have byte-compiled ECB with the cedet-\n"
|
||||
"suite but loaded old semantic 1.X into Emacs or vice versa.\n\n"
|
||||
"In general it is recommended to start ECB first-time not byte-compiled\n"
|
||||
"and then call the command `ecb-byte-compile'. This ensures you byte-compile ECB\n"
|
||||
"with the same library-versions \(semantic etc.) as you load into Emacs.\n"
|
||||
"If you use the Makefile check the variables CEDET before compiling!\n"
|
||||
))
|
||||
(t ""))))
|
||||
(unless (= 0 (length err-msg))
|
||||
(with-output-to-temp-buffer "*ECB semantic-load problems*"
|
||||
(princ "Currently ECB can not be activated cause of the following reason:\n\n")
|
||||
(princ err-msg)
|
||||
(princ "\n\nPlease fix the reported problem and restart Emacs\n"))
|
||||
(ecb-error "Please fix the reported problem and restart Emacs!")))))
|
||||
|
||||
(defun ecb-check-cedet-load ()
|
||||
"Checks if cedet is correctly loaded if semantic 2.X is used and if the same
|
||||
semantic-version has been used for byte-compiling ECB and loading into Emacs.
|
||||
If ECB detects a problem it is reported and then an error is thrown."
|
||||
(when (boundp 'cedet-version)
|
||||
(let ((err-msg
|
||||
(cond ;; cedet was not compiled into ECB
|
||||
((null ecb-compiled-in-cedet-version)
|
||||
(concat (format "Currently CEDET %s is loaded but ECB has been byte-compiled without\n"
|
||||
cedet-version)
|
||||
"any CEDET. Please either use ECB un-byte-compiled \(remove all *.elc\n"
|
||||
"files from the ECB-directory) or byte-compile ECB correctly with CEDET!\n"
|
||||
"In the later case it is recommended to start ECB first-time not byte-compiled\n"
|
||||
"and then call the command `ecb-byte-compile'. This ensures you byte-compile ECB\n"
|
||||
"with the same CEDET-library-version as you load into Emacs.\n"
|
||||
"If you use the Makefile check the variable CEDET before compiling!\n"
|
||||
))
|
||||
;; Different cedet-version used for byte-compiling ECB and
|
||||
;; loading into Emacs.
|
||||
((not (string= cedet-version ecb-compiled-in-cedet-version))
|
||||
(concat "ECB has been byte-compiled with another cedet-version than currently\n"
|
||||
"loaded into Emacs:\n"
|
||||
(format " + CECET used for byte-compiling ECB: %s\n"
|
||||
ecb-compiled-in-cedet-version)
|
||||
(format " + CEDET currently loaded into Emacs: %s\n"
|
||||
cedet-version)
|
||||
"Please ensure that ECB is byte-compiled with the same cedet-version as you\n"
|
||||
"you load into your Emacs.\n\n"
|
||||
"In general it is recommended to start ECB first-time not byte-compiled\n"
|
||||
"and then call the command `ecb-byte-compile'. This ensures you byte-compile ECB\n"
|
||||
"with the same CEDET-library-version as you load into Emacs.\n"
|
||||
"If you use the Makefile check the variable CEDET before compiling!\n"))
|
||||
(t ""))))
|
||||
(unless (= 0 (length err-msg))
|
||||
(with-output-to-temp-buffer "*ECB cedet-load problems*"
|
||||
(princ "Currently ECB can not be activated cause of the following reason:\n\n")
|
||||
(princ err-msg)
|
||||
(princ "\n\nPlease fix the reported problem and restart Emacs\n"))
|
||||
(ecb-error "Please fix the reported problem and restart Emacs!")))))
|
||||
|
||||
(defconst ecb-semantic-2-loaded (ignore-errors
|
||||
(string-match "^2" semantic-version)))
|
||||
|
||||
;; -- getter functions for all variables of cedet currently used by ECB ---
|
||||
|
||||
(defsubst ecb--semantic-symbol->name-assoc-list ()
|
||||
"Return the value of `semantic-symbol->name-assoc-list'."
|
||||
(symbol-value 'semantic-symbol->name-assoc-list))
|
||||
|
||||
(defsubst ecb--semantic-symbol->name-assoc-list-for-type-parts ()
|
||||
"Return the value of `semantic-symbol->name-assoc-list-for-type-parts'."
|
||||
(symbol-value 'semantic-symbol->name-assoc-list-for-type-parts))
|
||||
|
||||
(defsubst ecb--semantic-format-tag-functions ()
|
||||
"Return value of `semantic-format-tag-functions'."
|
||||
(symbol-value 'semantic-format-tag-functions))
|
||||
|
||||
(defsubst ecb--semantic-orphaned-member-metaparent-type ()
|
||||
"Return the value of `semantic-orphaned-member-metaparent-type'."
|
||||
(symbol-value 'semantic-orphaned-member-metaparent-type))
|
||||
|
||||
(defsubst ecb--semantic-uml-colon-string ()
|
||||
"Return the value of `semantic-uml-colon-string'."
|
||||
(symbol-value 'semantic-uml-colon-string))
|
||||
|
||||
(defsubst ecb--semantic-format-face-alist ()
|
||||
"Return the value of `semantic-format-face-alist'."
|
||||
(symbol-value 'semantic-format-face-alist))
|
||||
|
||||
(defsubst ecb--semantic-after-toplevel-cache-change-hook ()
|
||||
"Return the hook-symbol `semantic-after-toplevel-cache-change-hook'."
|
||||
'semantic-after-toplevel-cache-change-hook)
|
||||
|
||||
(defsubst ecb--semantic-after-partial-cache-change-hook ()
|
||||
"Return the hook-symbol `semantic-after-partial-cache-change-hook'."
|
||||
'semantic-after-partial-cache-change-hook)
|
||||
|
||||
(defsubst ecb--semantic--before-fetch-tags-hook ()
|
||||
"Return the hook-symbol `semantic--before-fetch-tags-hook'."
|
||||
'semantic--before-fetch-tags-hook)
|
||||
|
||||
(defsubst ecb--ezimage-use-images ()
|
||||
(if (boundp 'ezimage-use-images)
|
||||
ezimage-use-images))
|
||||
|
||||
(defsubst ecb--semantic-format-use-images-flag ()
|
||||
(if (boundp 'semantic-format-use-images-flag)
|
||||
semantic-format-use-images-flag))
|
||||
|
||||
;; -- an alias for all functions of cedet currently used by ECB ---
|
||||
|
||||
;; (delq nil (mapcar (function (lambda (f)
|
||||
;; (if (not (fboundp f))
|
||||
;; f)))
|
||||
;; ecb--cedet-function-list))
|
||||
|
||||
(defconst ecb--cedet-function-list
|
||||
'(
|
||||
semantic--format-colorize-text
|
||||
semantic--tag-get-property
|
||||
semantic--tag-overlay-cdr
|
||||
semantic--tag-put-property
|
||||
semantic--tag-set-overlay
|
||||
semantic-active-p
|
||||
semantic-adopt-external-members
|
||||
semantic-analyze-current-context
|
||||
semantic-analyze-find-tag
|
||||
semantic-analyze-possible-completions
|
||||
semantic-analyze-tag-type
|
||||
semantic-brute-find-first-tag-by-name
|
||||
semantic-bucketize
|
||||
semantic-c-template-string
|
||||
semantic-calculate-scope
|
||||
semantic-clear-toplevel-cache
|
||||
semantic-current-tag
|
||||
semantic-current-tag-parent
|
||||
semantic-dependency-tag-file
|
||||
semantic-documentation-for-tag
|
||||
semantic-equivalent-tag-p
|
||||
semantic-fetch-available-tags
|
||||
semantic-fetch-tags
|
||||
semantic-find-tag-by-overlay
|
||||
semantic-find-tags-by-class
|
||||
semantic-find-tags-by-name
|
||||
semantic-flatten-tags-table
|
||||
semantic-get-local-arguments
|
||||
semantic-go-to-tag
|
||||
semantic-lex-token-start
|
||||
semantic-overlay-live-p
|
||||
semantic-overlay-p
|
||||
semantic-something-to-tag-table
|
||||
semantic-tag
|
||||
semantic-tag-abstract-p
|
||||
semantic-tag-bounds
|
||||
semantic-tag-buffer
|
||||
semantic-tag-calculate-parent
|
||||
semantic-tag-children-compatibility
|
||||
semantic-tag-class
|
||||
semantic-tag-components
|
||||
semantic-tag-components-with-overlays
|
||||
semantic-tag-end
|
||||
semantic-tag-faux-p
|
||||
semantic-tag-function-arguments
|
||||
semantic-tag-function-constructor-p
|
||||
semantic-tag-function-destructor-p
|
||||
semantic-tag-function-parent
|
||||
semantic-tag-get-attribute
|
||||
semantic-tag-name
|
||||
semantic-tag-named-parent
|
||||
semantic-tag-new-variable
|
||||
semantic-tag-overlay
|
||||
semantic-tag-p
|
||||
semantic-tag-protection
|
||||
semantic-tag-prototype-p
|
||||
semantic-tag-start
|
||||
semantic-tag-static-p
|
||||
semantic-tag-type
|
||||
semantic-tag-type-interfaces
|
||||
semantic-tag-type-members
|
||||
semantic-tag-type-superclasses
|
||||
semantic-tag-with-position-p
|
||||
semanticdb-brute-deep-find-tags-by-name
|
||||
semanticdb-deep-find-tags-by-name
|
||||
semanticdb-find-result-length
|
||||
semanticdb-find-result-nth
|
||||
semanticdb-find-tags-by-name
|
||||
semanticdb-full-filename
|
||||
semanticdb-minor-mode-p
|
||||
semanticdb-strip-find-results
|
||||
)
|
||||
)
|
||||
|
||||
(defconst ecb--semantic-format-function-list
|
||||
'(
|
||||
semantic-format-tag-abbreviate
|
||||
semantic-format-tag-concise-prototype
|
||||
semantic-format-tag-name
|
||||
semantic-format-tag-prin1
|
||||
semantic-format-tag-prototype
|
||||
semantic-format-tag-summarize
|
||||
semantic-format-tag-uml-abbreviate
|
||||
semantic-format-tag-uml-concise-prototype
|
||||
semantic-format-tag-uml-prototype
|
||||
))
|
||||
|
||||
;; new let us create the aliase. Each alias has the name "ecb--"<function of
|
||||
;; cedet >= 1.0
|
||||
(unless ecb-cedet-missing-libraries
|
||||
(dolist (f-elem (append ecb--cedet-function-list ecb--semantic-format-function-list))
|
||||
(defalias (intern (concat "ecb--" (symbol-name f-elem))) f-elem)))
|
||||
|
||||
(silentcomp-provide 'ecb-cedet-wrapper)
|
||||
|
||||
;;; ecb-cedet-wrapper.el end here
|
File diff suppressed because it is too large
Load Diff
|
@ -1,369 +0,0 @@
|
|||
;;; ecb-compatibility.el --- ECB-compatibility for other packages
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2004
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Contains compatibility-code for other-packages.
|
||||
;;
|
||||
;; Whenever commands of other packages are not fully compatible with ECB then
|
||||
;; this library should contain the necessary code to make it fully compatible
|
||||
;; - or at least working acceptable.
|
||||
;;
|
||||
;; This file is part of the ECB package which can be found at:
|
||||
;; http://ecb.sourceforge.net
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
|
||||
(require 'ecb-util)
|
||||
(require 'ecb-common-browser)
|
||||
(require 'ecb-layout)
|
||||
|
||||
;; To add compatibilty code for packages just do:
|
||||
;;
|
||||
;; 1. Add the needed advice(s) to `ecb-compatibility-advices'
|
||||
;; 2. Add the advice-code below.
|
||||
;;
|
||||
;; All advices of `ecb-compatibility-advices' will be autom. enabled when ECB
|
||||
;; starts and autom. disabled when ECB shuts down. No advice is enabled just
|
||||
;; by loading the ECB-library!
|
||||
|
||||
(defecb-advice-set ecb-compatibility-advices
|
||||
"Contains all advices needed for package-compatibility.")
|
||||
|
||||
;; package bs.el ----------------------------------------------------------
|
||||
|
||||
(defecb-advice bs-show before ecb-compatibility-advices
|
||||
"Ensures `bs-show' works well when called from another window as an
|
||||
edit-window. Does nothing if called in another frame as the `ecb-frame'."
|
||||
(when (equal (selected-frame) ecb-frame)
|
||||
(unless (ecb-point-in-edit-window-number)
|
||||
(ecb-select-edit-window))
|
||||
;; now we handle if bs-show should always display in the compile-window
|
||||
(let ((my-bs-buffer (get-buffer-create "*buffer-selection*")))
|
||||
;; ecb-compilation-buffer-p needs a living buffer!
|
||||
(when (and (ecb-compilation-buffer-p my-bs-buffer)
|
||||
ecb-compile-window-height)
|
||||
(display-buffer (buffer-name my-bs-buffer))))))
|
||||
|
||||
;; package electric.el ------------------------------------------------------
|
||||
|
||||
|
||||
(defecb-advice one-window-p around ecb-always-disabled-advices
|
||||
"If called for the `ecb-frame' it only returns not nil if there is exactly
|
||||
one edit-window. Neither the ecb-windows nor the compile-window nor the
|
||||
minibuffer-window are considered. This adviced version of `one-window-p' is
|
||||
not for direct usage therefore it's added to `ecb-always-disabled-advices' and
|
||||
therefore it's always disabled\; use the macro `ecb-with-ecb-advice' instead
|
||||
if you need this adviced version of `one-window-p'!"
|
||||
(if (and ecb-minor-mode
|
||||
(equal (selected-frame) ecb-frame))
|
||||
(setq ad-return-value
|
||||
(= (length (ecb-canonical-edit-windows-list)) 1))
|
||||
ad-do-it))
|
||||
|
||||
(defecb-advice Electric-pop-up-window around ecb-compatibility-advices
|
||||
"Ensures that the electric-* commands \(e.g. `electric-buffer-list') work
|
||||
well with ECB. If BUFFER is a \"compilation-buffer\" in the sense of
|
||||
`ecb-compilation-buffer-p' then BUFFER will be displayed in the compile-window
|
||||
of ECB - if there is any. If the compile-window is temporally hidden then the
|
||||
BUFFER is displayed in an edit-window!"
|
||||
(if (and ecb-minor-mode
|
||||
(equal (selected-frame) ecb-frame))
|
||||
(if (and (ecb-compilation-buffer-p (ad-get-arg 0))
|
||||
(equal (ecb-compile-window-state) 'visible))
|
||||
(pop-to-buffer (ad-get-arg 0))
|
||||
(let ((ecb-compilation-buffer-names nil)
|
||||
(ecb-compilation-major-modes nil)
|
||||
(ecb-compilation-predicates nil))
|
||||
(ecb-with-ecb-advice 'one-window-p 'around
|
||||
ad-do-it)))
|
||||
ad-do-it))
|
||||
|
||||
(defecb-advice electric-command-history before ecb-compatibility-advices
|
||||
"Ensures that the electric-* commands work well with ECB."
|
||||
(when (and ecb-minor-mode
|
||||
(equal (selected-frame) ecb-frame)
|
||||
(ecb-point-in-dedicated-special-buffer))
|
||||
(ecb-select-edit-window)))
|
||||
|
||||
(defecb-advice electric-buffer-list before ecb-compatibility-advices
|
||||
"Ensures that the electric-* commands work well with ECB."
|
||||
(when (and ecb-minor-mode
|
||||
(equal (selected-frame) ecb-frame)
|
||||
(ecb-point-in-dedicated-special-buffer))
|
||||
(ecb-select-edit-window)))
|
||||
|
||||
(defecb-advice electric-buffer-list after ecb-compatibility-advices
|
||||
"Ensures that the electric-* commands work well with ECB."
|
||||
(when (and ecb-minor-mode
|
||||
(equal (selected-frame) ecb-frame))
|
||||
(if (ecb-buffer-obj "*Buffer List*")
|
||||
(bury-buffer (ecb-buffer-obj "*Buffer List*")))))
|
||||
|
||||
;; package master.el (only Emacs >= 22.X) ------------------------------------
|
||||
|
||||
;; The adviced version of switch-to-buffer-other-window can redraw the layout
|
||||
;; (e.g. if the buffer in the compile-window is the slave and the
|
||||
;; compile-window has been made visible), so <window> in the code below can be
|
||||
;; a destroyed window-object! we have to prevent from this (e.g. by selecting
|
||||
;; the window before by number).
|
||||
(when-ecb-running-emacs
|
||||
(defecb-advice master-says around ecb-compatibility-advices
|
||||
"Makes the function compatible with ECB."
|
||||
(if (or (not ecb-minor-mode)
|
||||
(not (equal (selected-frame) ecb-frame)))
|
||||
(ecb-with-original-basic-functions ad-do-it)
|
||||
(if (null (buffer-live-p (ecb-buffer-obj master-of)))
|
||||
(error "Slave buffer has disappeared")
|
||||
(let ((window (selected-window))
|
||||
(point-loc (ecb-where-is-point))
|
||||
(p (point)))
|
||||
(if (not (eq (window-buffer window) (ecb-buffer-obj master-of)))
|
||||
(switch-to-buffer-other-window master-of))
|
||||
(if (ad-get-arg 0)
|
||||
(condition-case nil
|
||||
(apply (ad-get-arg 0) (ad-get-arg 1))
|
||||
(error nil)))
|
||||
(select-window (case (car point-loc)
|
||||
(ecb
|
||||
(ecb-get-ecb-window-by-number (cdr point-loc)))
|
||||
(edit
|
||||
(ecb-get-edit-window-by-number (cdr point-loc)))
|
||||
(compile
|
||||
ecb-compile-window)
|
||||
(minibuf
|
||||
(minibuffer-window ecb-frame))
|
||||
(other-dedicated
|
||||
(ecb-get-window-by-number (cdr point-loc)))))
|
||||
(goto-char (point))))))
|
||||
)
|
||||
|
||||
;; package scroll-all.el --------------------------------------------------
|
||||
|
||||
(defecb-advice scroll-all-function-all around ecb-compatibility-advices
|
||||
"Make it compatible with ECB."
|
||||
(if (or (not ecb-minor-mode)
|
||||
(not (equal (selected-frame) ecb-frame)))
|
||||
(ecb-with-original-basic-functions ad-do-it)
|
||||
(let (;; This runs the `other-window'-calls in the body in the right mode
|
||||
(ecb-other-window-behavior 'only-edit))
|
||||
;; return the current number of edit-windows if point is in an edit-window
|
||||
;; and always return 1 if point is not in an edit-window.
|
||||
(flet ((count-windows (&optional minibuf)
|
||||
(if (ecb-point-in-edit-window-number)
|
||||
(length (ecb-canonical-edit-windows-list))
|
||||
1)))
|
||||
ad-do-it))))
|
||||
|
||||
|
||||
;; package tmm.el --------------------------------------------------------
|
||||
|
||||
;; Klaus Berndl <klaus.berndl@sdm.de>: We can not use our
|
||||
;; Electric-pop-up-window advice instaed of this advice because otherwise
|
||||
;; some commands of the popup-menus of the ecb-buffers would not work - this
|
||||
;; comes from the save-window-excursion in the the tmm.
|
||||
(when-ecb-running-emacs
|
||||
(defecb-advice tmm-prompt around ecb-compatibility-advices
|
||||
"Make it compatible with ECB."
|
||||
(if (or (not ecb-minor-mode)
|
||||
(not (equal (selected-frame) ecb-frame)))
|
||||
(ecb-with-original-basic-functions ad-do-it)
|
||||
;; we set temporally `ecb-other-window-behavior' to a function which
|
||||
;; always selects the "next" window after the
|
||||
;; `ecb-last-edit-window-with-point'
|
||||
(let ((ecb-other-window-behavior
|
||||
(lambda (win-list edit-win-list ecb-win-list comp-win
|
||||
mini-win point-loc nth-win)
|
||||
(ecb-next-listelem edit-win-list
|
||||
ecb-last-edit-window-with-point)))
|
||||
;; we must not handle the tmm-stuff as compilation-buffer
|
||||
(ecb-compilation-buffer-names nil)
|
||||
(ecb-compilation-major-modes nil)
|
||||
(ecb-compilation-predicates nil))
|
||||
ad-do-it)))
|
||||
)
|
||||
|
||||
;; ediff-stuff ---------------------------------------------------------------
|
||||
|
||||
(silentcomp-defun ediff-cleanup-mess)
|
||||
(silentcomp-defvar ediff-quit-hook)
|
||||
|
||||
;; (defecb-advice ediff-setup-windows around ecb-compatibility-advices
|
||||
;; "Ediff can manage all its windows with deactivated ECB-advices.
|
||||
|
||||
;; This is possible because we have in the setup-hook cleared the whole ecb-frame."
|
||||
;; (if (and (boundp 'ecb-minor-mode)
|
||||
;; ecb-minor-mode
|
||||
;; (eq (selected-frame) ecb-frame))
|
||||
;; (ecb-with-original-basic-functions
|
||||
;; ad-do-it)
|
||||
;; ad-do-it))
|
||||
|
||||
(defvar ecb-before-ediff-window-config nil)
|
||||
|
||||
;; We must not add this function to `ediff-before-setup-windows-hook' because
|
||||
;; this hook is called very often - see docu. The hook
|
||||
;; `ediff-before-setup-hook' is called only once - so it can be used to store
|
||||
;; window-configs!
|
||||
(defun ecb-ediff-before-setup-hook ()
|
||||
"Special ecb-setup before starting ediff."
|
||||
(if (and ecb-minor-mode
|
||||
(equal (selected-frame) ecb-frame))
|
||||
(progn
|
||||
(setq ecb-before-ediff-window-config (ecb-current-window-configuration))
|
||||
(if ecb-run-ediff-in-ecb-frame
|
||||
;; !!!! we must delete all ECB-windows and the compile-window so
|
||||
;; ediff can manage the whole ecb-frame concerning its windows!
|
||||
;; This is the reason why we can advice `ediff-setup-windows' so
|
||||
;; it runs with all original layout basic functions (especially
|
||||
;; delete-other-window is necessary!)
|
||||
(progn
|
||||
(ecb-toggle-ecb-windows -1)
|
||||
(ecb-toggle-compile-window -1))
|
||||
(if (not (ecb-windows-all-hidden))
|
||||
(delete-other-windows (car (ecb-canonical-edit-windows-list))))))
|
||||
(setq ecb-before-ediff-window-config nil)))
|
||||
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: Should we add this function to
|
||||
;; `ediff-suspend-hook' too?! We should add something but this functions is
|
||||
;; not perfectly....in general suspending ediff need some work here...
|
||||
(defun ecb-ediff-quit-hook ()
|
||||
"Added to the end of `ediff-quit-hook' during ECB is activated. It
|
||||
does all necessary after finishing ediff."
|
||||
(when ecb-minor-mode
|
||||
(if (and (not (equal (selected-frame) ecb-frame))
|
||||
(y-or-n-p
|
||||
"Ediff finished. Do you want to delete the extra ediff-frame? "))
|
||||
(delete-frame (selected-frame) t))
|
||||
(select-frame ecb-frame)
|
||||
(when ecb-before-ediff-window-config
|
||||
(ecb-set-window-configuration ecb-before-ediff-window-config)
|
||||
(setq ecb-before-ediff-window-config nil))))
|
||||
|
||||
(defun ecb-activate-ediff-compatibility ()
|
||||
(if (boundp 'ediff-quit-hook)
|
||||
(put 'ediff-quit-hook 'ecb-ediff-quit-hook-value
|
||||
ediff-quit-hook))
|
||||
(add-hook 'ediff-quit-hook 'ediff-cleanup-mess)
|
||||
(add-hook 'ediff-quit-hook 'ecb-ediff-quit-hook t)
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: suspending ediff and
|
||||
;; especially reactivating does currently not really work well...
|
||||
;; (add-hook 'ediff-suspend-hook 'ecb-ediff-quit-hook t)
|
||||
(add-hook 'ediff-before-setup-hook
|
||||
'ecb-ediff-before-setup-hook))
|
||||
|
||||
(defun ecb-deactivate-ediff-compatibility ()
|
||||
(if (get 'ediff-quit-hook 'ecb-ediff-quit-hook-value)
|
||||
(setq ediff-quit-hook (get 'ediff-quit-hook
|
||||
'ecb-ediff-quit-hook-value))
|
||||
(remove-hook 'ediff-quit-hook 'ecb-ediff-quit-hook))
|
||||
(remove-hook 'ediff-before-setup-hook
|
||||
'ecb-ediff-before-setup-hook))
|
||||
|
||||
|
||||
;; view-stuff --------------------------------------------------------------------
|
||||
|
||||
;; The code of the view-package of GNU Emacs has to be advices when the
|
||||
;; view-buffer is displayed in the compile-window of ECB.
|
||||
;; The much simpler view-mechanism of XEmacs (view-less.el) should work out of
|
||||
;; the box.
|
||||
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: for Emacs 22 we need also a
|
||||
;; workaround when no compile-window is active because the return-to-alist
|
||||
;; stuff in Emacs 22 is not really smart and does not work with layout like
|
||||
;; ECB - with Emacs 23 it works perfectly without a compile-window.
|
||||
;; In Emacs 22 the return-to-alist contains in case of a window-layout with
|
||||
;; more than two windows quit-window which switches the buffer after quiting
|
||||
;; (which is not what we want); with deactivated ECB and more than 2 windows
|
||||
;; the same dump behavior - but unfortunatelly ECB contains always more than
|
||||
;; two windows (at least in by far most cases), so current view-mode-exit
|
||||
;; stuff wil not work with Emacs 22 and ECB ==> we simplify the logic in the
|
||||
;; following case:
|
||||
;; - Emacs 22 is running and
|
||||
;; - there is no compile-window:
|
||||
;; - current buffer is in view-mode
|
||||
;; then we just delete the current-window (for which view-mode-exit is called)
|
||||
;; and select ecb-last-edit-window-with-point (hmm, is this possible - this
|
||||
;; one will be the deleted one...how to go back to that window we have to go
|
||||
;; back??
|
||||
|
||||
(when-ecb-running-emacs
|
||||
(defecb-advice view-mode-exit around ecb-compatibility-advices
|
||||
"Makes view-mode compatible with ECB.
|
||||
|
||||
If there is no compile-window \(i.e. the buffer with view-mode is not
|
||||
displayed in the special compile-window of ECB) then nothing special is done
|
||||
but the original `view-mode-exit' is performed.
|
||||
|
||||
If the view-buffer is displayed in the compile-window \(i.e. this function is
|
||||
called from within the compile-window) then the whole window-management stuff
|
||||
of view-mode is disabled only `view-no-disable-on-exit' is taken into acount.
|
||||
|
||||
The compile-window will be shrinked down with
|
||||
`ecb-toggle-compile-window-height' and the last edit-window with point will be
|
||||
selected afterwards."
|
||||
(if (and (boundp 'ecb-minor-mode)
|
||||
ecb-minor-mode
|
||||
(eq (selected-frame) ecb-frame)
|
||||
(eq (selected-window) ecb-compile-window))
|
||||
(when view-mode
|
||||
(or view-no-disable-on-exit
|
||||
(view-mode-disable))
|
||||
;; (when (ad-get-arg 1) ;; = exit-action
|
||||
;; (setq view-exit-action nil)
|
||||
;; (funcall (ad-get-arg 1) (current-buffer)))
|
||||
(force-mode-line-update)
|
||||
(ecb-toggle-compile-window-height -1)
|
||||
(select-window ecb-last-edit-window-with-point))
|
||||
ad-do-it))
|
||||
)
|
||||
|
||||
|
||||
;; not yet done ----------------------------------------------------------------
|
||||
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>:
|
||||
;; *** The new package gdb-ui.el provides an enhanced graphical interface to
|
||||
;; GDB. You can interact with GDB through the GUD buffer in the usual way, but
|
||||
;; there are also further buffers which control the execution and describe the
|
||||
;; state of your program. It separates the input/output of your program from
|
||||
;; that of GDB and watches expressions in the speedbar. It also uses features
|
||||
;; of Emacs 21 such as the display margin for breakpoints, and the toolbar.
|
||||
;; This is new in Emacs 21.4 so maybe we have to make it compatible with ECB!
|
||||
;; But maybe this could be hard because AFAIK gdb-ui.el uses dedicated
|
||||
;; windows!
|
||||
|
||||
|
||||
|
||||
|
||||
;; we disable the advices at load-time
|
||||
(ecb-disable-advices 'ecb-compatibility-advices t)
|
||||
|
||||
(silentcomp-provide 'ecb-compatibility)
|
||||
|
||||
;;; ecb-compatibility.el ends here
|
|
@ -1,312 +0,0 @@
|
|||
;;; ecb-compilation.el --- code for buffers displayed in compile-window
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Jesper Nordenberg <mayhem@home.se>
|
||||
;; Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Kevin A. Burton <burton@openprivacy.org>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2001
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; NOTE: If you enjoy this software, please consider a donation to the EFF
|
||||
;; (http://www.eff.org)
|
||||
|
||||
;;; History
|
||||
;;
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(silentcomp-defun comint-check-proc)
|
||||
|
||||
(require 'ecb-util)
|
||||
|
||||
(defcustom ecb-compilation-buffer-names `(("*Calculator*" . nil)
|
||||
("*vc*" . nil)
|
||||
("*vc-diff*" . nil)
|
||||
,(if ecb-running-xemacs
|
||||
'("\\*Apropos.*\\*" . t)
|
||||
'("*Apropos*" . nil))
|
||||
("*Occur*" . nil)
|
||||
("*shell*" . nil)
|
||||
("\\*[cC]ompilation.*\\*" . t)
|
||||
("\\*i?grep.*\\*" . t)
|
||||
("*JDEE Compile Server*" . nil)
|
||||
,(if ecb-running-xemacs
|
||||
'("\\*Help.*\\*" . t)
|
||||
'("*Help*" . nil))
|
||||
("*Completions*" . nil)
|
||||
("*Backtrace*" . nil)
|
||||
("*Compile-log*" . nil)
|
||||
("*bsh*" . nil)
|
||||
(,(if ecb-running-xemacs
|
||||
" *Message-Log*"
|
||||
"*Messages*") . nil))
|
||||
"*Additional buffer names that should be displayed in the compile-window.
|
||||
Buffer names can either be defined as strings or as regexps. If the
|
||||
buffer-name of a buffer matches one of the defined string or regexp then it
|
||||
will be displayed in the compile-window of ECB even if `compilation-buffer-p'
|
||||
says nil for this buffer.
|
||||
|
||||
It is not recommended to add the name of eshell-buffers to this list because
|
||||
ECB already handles the eshell-integration as best as possible.
|
||||
|
||||
See also the options `ecb-compilation-major-modes' and
|
||||
`ecb-compilation-predicates'."
|
||||
:group 'ecb-compilation
|
||||
:group 'ecb-most-important
|
||||
:type '(repeat (cons (string :tag "Buffer name")
|
||||
(boolean :tag "Handled as regexp"))))
|
||||
|
||||
(defvar ecb-compilation-buffer-names-internal nil
|
||||
"This variable is for ECB internal use and can be used by ECB to add
|
||||
buffer-names to the set specified in `ecb-compilation-buffer-names'. Type is
|
||||
the same as of option `ecb-compilation-buffer-names'")
|
||||
|
||||
(defun ecb-compilation-buffer-names ()
|
||||
"Return the set of buffer names which should be displayed in the
|
||||
compile-window of ECB. This is a list combined of
|
||||
`ecb-compilation-buffer-names' and `ecb-compilation-buffer-names-internal'."
|
||||
(append ecb-compilation-buffer-names
|
||||
ecb-compilation-buffer-names-internal))
|
||||
|
||||
(defun ecb-compilation-registered-buffer-p (name)
|
||||
"Check if name belongs to the set of buffers returned by
|
||||
`ecb-compilation-buffer-names'. If yes returns NAME."
|
||||
(catch 'exit
|
||||
(dolist (b (ecb-compilation-buffer-names))
|
||||
(if (null (cdr b))
|
||||
(if (ecb-string= name (car b))
|
||||
(throw 'exit name))
|
||||
(save-match-data
|
||||
(if (string-match (car b) name)
|
||||
(throw 'exit name))))
|
||||
nil)))
|
||||
|
||||
(defcustom ecb-compilation-major-modes '(compilation-mode)
|
||||
"*Additional major-mode that should be displayed in the compile-window.
|
||||
All buffers of a major-mode contained in this list are displayed in the
|
||||
compile-window even if `compilation-buffer-p' says nil for such a buffer.
|
||||
|
||||
It is not recommended to add `eshell-mode' to this list because ECB already
|
||||
handles the eshell-integration as best as possible."
|
||||
:group 'ecb-compilation
|
||||
:type '(repeat (symbol :tag "major-mode name")))
|
||||
|
||||
(defvar ecb-compilation-major-modes-internal nil
|
||||
"This variable is for ECB internal use and can be used by ECB to add
|
||||
major-mode symbols to the set specified in `ecb-compilation-major-modes'.")
|
||||
|
||||
(defun ecb-compilation-major-modes ()
|
||||
"Return all major-mode symbols which should be displayed in the
|
||||
compile-window. This is a list combined of `ecb-compilation-major-modes' and
|
||||
`ecb-compilation-major-modes-internal'."
|
||||
(append ecb-compilation-major-modes
|
||||
ecb-compilation-major-modes-internal))
|
||||
|
||||
|
||||
(defcustom ecb-compilation-predicates '(comint-check-proc)
|
||||
"*Predicates when a buffer should be treated as compilation-buffer.
|
||||
Every element of this list has to be a function or lambda-expression which
|
||||
gets as argument a buffer-object and which has to return not nil when this
|
||||
buffer should be treated as compilation-buffer \(even if
|
||||
`compilation-buffer-p' says nil) and therefore be displayed in the
|
||||
compile-window of ECB \(if there is any).
|
||||
|
||||
In combination with the values of `ecb-compilation-buffer-names' and
|
||||
`ecb-compilation-major-modes' ECB decides when a buffer is displayed in the
|
||||
compile-window.
|
||||
|
||||
Default value is the function `comint-check-proc' which returns not nil when
|
||||
the buffer is related to a living process."
|
||||
:group 'ecb-compilation
|
||||
:type '(repeat (symbol :tag "Compilation predicate")))
|
||||
|
||||
(defvar ecb-compilation-predicates-internal nil
|
||||
"This variable is for ECB internal use and can be used by ECB to add
|
||||
predicates to the set defined in `ecb-compilation-predicates'.")
|
||||
|
||||
(defun ecb-compilation-predicates ()
|
||||
"Return all predicates which should be used to test if a buffer should be
|
||||
displayed in the compile-window. This is a list combined of
|
||||
`ecb-compilation-predicates' and `ecb-compilation-predicates-internal'."
|
||||
(append ecb-compilation-predicates
|
||||
ecb-compilation-predicates-internal))
|
||||
|
||||
|
||||
|
||||
(defun ecb-compilation-get-buffers()
|
||||
"Get all known compilation buffer names. See `ecb-compilation-buffer-p'."
|
||||
|
||||
(let((buffer-names '())
|
||||
(buffer-list (buffer-list ecb-frame))
|
||||
(index 0))
|
||||
|
||||
(setq buffer-list (sort buffer-list (lambda(first second)
|
||||
(ecb-string< (buffer-name first)
|
||||
(buffer-name second)))))
|
||||
(dolist(buffer buffer-list)
|
||||
(when (ecb-compilation-buffer-p buffer)
|
||||
(setq buffer-names
|
||||
(append buffer-names
|
||||
(list (cons (buffer-name buffer) index))))
|
||||
(setq index (1+ index))))
|
||||
|
||||
buffer-names))
|
||||
|
||||
|
||||
(defun ecb-compilation-buffer-p (buffer-or-name)
|
||||
"Test if the given buffer BUFFER-OR-NAME should be treated as a compilation
|
||||
buffer. Note that in this case we define \"compilation buffer\" as a buffer
|
||||
that should ideally be displayed in the compile-window of ECB \(see
|
||||
`ecb-compile-window-height'). This means that in some situations this might
|
||||
not be the result of a real `compile-internal'. A good example would be the
|
||||
*Help* buffer.
|
||||
|
||||
BUFFER-OR-NAME can be the name of a living\(!) buffer or a buffer-object.
|
||||
|
||||
This function returns the buffer-object of BUFFER-OR-NAME - i.e.
|
||||
BUFFER-OR-NAME will be treated as compilation-buffer - if:
|
||||
|
||||
- The name of the buffer is contained in the list returned by the function
|
||||
`ecb-compilation-buffer-names' or
|
||||
- the `major-mode' of the buffer is contained in the list returned by the
|
||||
function `ecb-compilation-major-modes' or
|
||||
- if `compilation-buffer-p' returns true or
|
||||
- one of the predicates returned by `ecb-compilation-predicates' returns not
|
||||
nil for the buffer.
|
||||
|
||||
Otherwise nil is returned.
|
||||
|
||||
Summary for ECB-end-users: A buffer will be treated as compilation-buffer if
|
||||
either
|
||||
- `compilation-buffer-p' returns not nil, i.e. if a real compilation-buffer or
|
||||
- if at least one of the options `ecb-compilation-buffer-names',
|
||||
`ecb-compilation-major-modes' or `ecb-compilation-predicates' define the
|
||||
buffer as compilation-buffer."
|
||||
;;determine the best valid for the buffer.
|
||||
(let ((buffer (ecb-buffer-obj buffer-or-name))
|
||||
(ecb-comp-predicates (ecb-compilation-predicates)))
|
||||
(when buffer
|
||||
|
||||
;;test if this is a valid buffer by name.
|
||||
(if (ecb-compilation-registered-buffer-p (buffer-name buffer))
|
||||
buffer
|
||||
;;else test if this is a valid buffer by mode
|
||||
(if (with-current-buffer buffer
|
||||
(member major-mode (ecb-compilation-major-modes)))
|
||||
buffer
|
||||
;;else test if this is a regular compilation buffer
|
||||
(if (compilation-buffer-p buffer)
|
||||
buffer
|
||||
;; we do not use run-hook-with-args-until-success because we have
|
||||
;; to check if the functions are bound!!
|
||||
(if (dolist (p ecb-comp-predicates)
|
||||
(if (and (fboundp p) (funcall p buffer))
|
||||
(return t)))
|
||||
buffer
|
||||
nil)))))))
|
||||
|
||||
;; Klaus Berndl <klaus.berndl@sdm.de>: The following mechanism is necessary to
|
||||
;; avoid eating up whole CPU for updating the menu-entries for the
|
||||
;; compilation-buffers. Especially if you have opened a lot of buffers this
|
||||
;; can slow down Emacs/ECB dramatically. Now we add an idle-times
|
||||
;; check-function `ecb-compilation-buffer-list-changed-p' which checks if the
|
||||
;; buffer-list has changed. If yes, then the variable
|
||||
;; `ecb-compilation-update-menu-p' is set to t. Only if this variable is not
|
||||
;; nil the menu-bar-update-hook `ecb-compilation-update-menu' updates the
|
||||
;; ECB-menu.
|
||||
|
||||
(defvar ecb-compilation-update-menu-p nil)
|
||||
(defvar ecb-compilation-buffer-list-cache nil)
|
||||
(defvar ecb-compilation-update-idle-time 0.25)
|
||||
|
||||
(defun ecb-compilation-buffer-list-init ()
|
||||
"Initialize the compilation buffer list cache."
|
||||
(setq ecb-compilation-update-menu-p nil)
|
||||
(setq ecb-compilation-buffer-list-cache nil)
|
||||
(ecb-compilation-buffer-list-changed-p))
|
||||
|
||||
(defecb-autocontrol/sync-function ecb-compilation-buffer-list-changed-p nil nil nil
|
||||
"Check if current active buffer list has changed - i.e. if a new buffer has
|
||||
been created or a buffer has been deleted. If yes then
|
||||
`ecb-compilation-update-menu-p' is set to not nil and the cache is updated."
|
||||
(let ((new-buffer-list (buffer-list)))
|
||||
(when (not (equal new-buffer-list
|
||||
ecb-compilation-buffer-list-cache))
|
||||
(ecb-bodytrace-autocontrol/sync-fcn-error
|
||||
'ecb-compilation-buffer-list-changed-p
|
||||
"New buffer list not equal with cached buffer list.")
|
||||
(setq ecb-compilation-buffer-list-cache new-buffer-list)
|
||||
;; Nowhere else this variable will be set to t.
|
||||
(setq ecb-compilation-update-menu-p t))))
|
||||
|
||||
|
||||
(defun ecb-compilation-update-menu()
|
||||
"Create an install a menu that allows the user to navigate buffers that are
|
||||
valid ECB compilation buffers. This is only done if
|
||||
`ecb-compilation-update-menu-p' is not nil; see
|
||||
`ecb-compilation-buffer-list-changed-p'. For more information about
|
||||
compilation buffers see `ecb-compilation-buffer-p'."
|
||||
|
||||
(when ecb-compilation-update-menu-p
|
||||
(let ((submenu nil)
|
||||
(buffers (ecb-compilation-get-buffers)))
|
||||
(condition-case nil
|
||||
(progn
|
||||
(setq ecb-compilation-update-menu-p nil)
|
||||
(dolist(buffer buffers)
|
||||
(setq submenu
|
||||
(append submenu
|
||||
(list (vector (car buffer)
|
||||
;; switch-to-buffer-other-window is
|
||||
;; ok for all situations because if
|
||||
;; no compile-window it uses another
|
||||
;; edit-window otherwise it uses the
|
||||
;; compile-window.
|
||||
`(funcall 'switch-to-buffer-other-window
|
||||
,(car buffer))
|
||||
:active t)))))
|
||||
|
||||
;;Klaus Berndl <klaus.berndl@sdm.de>: Seems not to work with
|
||||
;;Emacs 20.X, but who cares, 20.x is outdated and not supported
|
||||
;;anymore by ECB
|
||||
(easy-menu-change (list ecb-menu-name)
|
||||
"Compilation Buffers"
|
||||
submenu
|
||||
"Navigate")
|
||||
t)
|
||||
(error nil)))))
|
||||
|
||||
|
||||
|
||||
(silentcomp-provide 'ecb-compilation)
|
||||
|
||||
;;; ecb-compilation.el ends here
|
|
@ -1,861 +0,0 @@
|
|||
;;; ecb-create-layout.el --- creating new layouts
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2002
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Contains code for easy creating new layouts
|
||||
|
||||
;;; History
|
||||
;;
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
|
||||
;;; Code
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(eval-when-compile
|
||||
;; to avoid compiler grips
|
||||
(require 'cl))
|
||||
|
||||
(require 'ecb-mode-line)
|
||||
(require 'ecb-util)
|
||||
(require 'ecb-compilation)
|
||||
|
||||
;; XEmacs stuff
|
||||
(silentcomp-defvar vertical-divider-map)
|
||||
(silentcomp-defvar modeline-map)
|
||||
;; Emacs 21.X stuff
|
||||
(silentcomp-defvar before-make-frame-hook)
|
||||
(silentcomp-defvar after-make-frame-functions)
|
||||
;; First loaded during activated ECB
|
||||
(silentcomp-defvar ecb-buildin-layouts)
|
||||
|
||||
(defgroup ecb-create-layout nil
|
||||
"Settings for creating new ECB-layouts."
|
||||
:group 'ecb-layout
|
||||
:prefix "ecb-create-layout-")
|
||||
|
||||
(defcustom ecb-create-layout-file "~/.ecb-user-layouts.el"
|
||||
"*File where all layouts created by `ecb-create-new-layout' are stored."
|
||||
:group 'ecb-create-layout
|
||||
:type 'file)
|
||||
|
||||
(defcustom ecb-create-layout-frame-width 140
|
||||
"*Frame width of the layout creation frame."
|
||||
:group 'ecb-create-layout
|
||||
:type 'integer)
|
||||
|
||||
(defcustom ecb-create-layout-frame-height 51
|
||||
"*Frame height of the layout creation frame."
|
||||
:group 'ecb-create-layout
|
||||
:type 'integer)
|
||||
|
||||
|
||||
;; internal vars and consts
|
||||
|
||||
|
||||
(defconst ecb-create-layout-buf-prefix " *ECB-LC-")
|
||||
(defconst ecb-create-layout-frame-name "Creation of a new ECB-layout")
|
||||
(defconst ecb-create-layout-all-buf-types
|
||||
'("directories" "history" "methods" "sources" "speedbar" "analyse" "symboldef"))
|
||||
|
||||
(defconst ecb-create-layout-help-text-left-right
|
||||
"
|
||||
ECB layout creation mode
|
||||
========================
|
||||
|
||||
This is the help-screen of this mode. The window
|
||||
displaying this help text is called the edit-window
|
||||
which is neither selectable nor delete-able nor
|
||||
split-able in this mode.
|
||||
|
||||
<left/right/up/down-arrow>: Moving around in current
|
||||
window C-n, C-p: Go to next/previous window (beside
|
||||
the edit-window)
|
||||
|
||||
C-s: Split current window. You will be asked:
|
||||
- If \"vertical\" or \"horizontal\" split
|
||||
- How to split: \"at-point\", \"half\" or
|
||||
\"other\" (i.e. you can specify any fraction
|
||||
between 0.1 and 0.9)
|
||||
- Which type the current window should be
|
||||
\(see description of C-t below).
|
||||
C-u: Unsplit, ie. delete current window
|
||||
C-t: Give the current window a built-in type
|
||||
(\"directories\", \"sources\", \"methods\",
|
||||
\"history\" etc.) or any arbitrary user-defined
|
||||
type (\"other\"). See the Online-manual!
|
||||
|
||||
C-c: Cancel layout creation. This does not save the
|
||||
layout. Deletes this frame.
|
||||
C-q: Save current defined layout and quit the layout
|
||||
creation. You will be asked for a layout-name.
|
||||
With TAB-completion you can get the names already
|
||||
in use. You have to choose a new name!
|
||||
Deletes this frame.
|
||||
|
||||
There are NO other commands or keys available. ALL
|
||||
other keys are disabled in this mode!
|
||||
")
|
||||
|
||||
(defconst ecb-create-layout-help-text-top
|
||||
" ECB layout creation mode
|
||||
========================
|
||||
|
||||
This is the help-screen of this mode. The window displaying this help text is called
|
||||
the edit-window which is neither selectable nor delete-able nor split-able in this mode.
|
||||
|
||||
<left/right/up/down-arrow>: Moving around in current window
|
||||
C-n, C-p: Go to next/previous window (beside the edit-window)
|
||||
|
||||
C-s: Split current window. You will be asked:
|
||||
- If \"vertical\" or \"horizontal\" split
|
||||
- How to split: \"at-point\", \"half\" or \"other\" (i.e. you can specify any
|
||||
fraction between 0.1 and 0.9)
|
||||
- Which type the current window should be \(see description of C-t below).
|
||||
C-u: Unsplit, ie. delete current window
|
||||
C-t: Give the current window a built-in type (\"directories\", \"sources\", \"methods\",
|
||||
\"history\" etc.) or any arbitrary user-defined type (\"other\").
|
||||
|
||||
C-c: Cancel layout creation. This does not save the layout. Deletes this frame.
|
||||
C-q: Save current defined layout and quit the layout creation. You will be asked for a
|
||||
layout-name. With TAB-completion you can get the names already in use.
|
||||
You have to choose a new name! Deletes this frame.
|
||||
|
||||
There are NO other commands or keys available. ALL other keys are disabled in this mode!
|
||||
")
|
||||
|
||||
(defconst ecb-create-layout-file-header
|
||||
"
|
||||
|
||||
;; Copyright (C) 2001 - 2005 Jesper Nordenberg
|
||||
;; Copyright (C) 2001 - 2005 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001 - 2005 Klaus Berndl <klaus.berndl@sdm.de>
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: java, class, browser
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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 GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file contains all user-defined ECB-layouts created by the command
|
||||
;; `ecb-create-new-layout'.
|
||||
|
||||
;; !!! DO NOT EDIT THIS FILE MANUALLY - IT IS GENERATED BY ECB !!!
|
||||
|
||||
")
|
||||
|
||||
|
||||
(defvar ecb-create-layout-frame nil)
|
||||
(defvar ecb-create-layout-edit-window nil)
|
||||
|
||||
(defvar ecb-create-layout-old-global-map nil)
|
||||
(defvar ecb-create-layout-old-minor-mode-map-alist nil)
|
||||
(defvar ecb-create-layout-old-hscroll nil)
|
||||
(defvar ecb-create-layout-old-debug-on-error nil)
|
||||
(defvar ecb-create-layout-old-frame nil)
|
||||
(defvar ecb-create-layout-old-vertical-div-map nil)
|
||||
(defvar ecb-create-layout-old-modeline-map nil)
|
||||
(defvar ecb-create-layout-old-after-frame-h nil)
|
||||
(defvar ecb-create-layout-old-before-frame-h nil)
|
||||
|
||||
(defvar ecb-create-layout-generated-lisp nil)
|
||||
(defvar ecb-create-layout-gen-counter 0)
|
||||
|
||||
(defvar ecb-create-layout-buf-types nil)
|
||||
|
||||
;; can be 'left, 'right, 'top or 'left-right
|
||||
(defvar ecb-create-layout-type 'left)
|
||||
|
||||
(defun ecb-create-layout-initilize ()
|
||||
(setq ecb-create-layout-buf-types
|
||||
(ecb-copy-list ecb-create-layout-all-buf-types))
|
||||
(setq ecb-create-layout-frame nil)
|
||||
(setq ecb-create-layout-edit-window nil)
|
||||
(setq ecb-create-layout-old-global-map nil)
|
||||
(setq ecb-create-layout-old-minor-mode-map-alist nil)
|
||||
(setq ecb-create-layout-old-hscroll nil)
|
||||
(setq ecb-create-layout-old-frame nil)
|
||||
|
||||
(if ecb-running-xemacs
|
||||
(progn
|
||||
(setq ecb-create-layout-old-vertical-div-map nil)
|
||||
(setq ecb-create-layout-old-modeline-map nil))
|
||||
(setq ecb-create-layout-old-after-frame-h nil)
|
||||
(setq ecb-create-layout-old-before-frame-h nil))
|
||||
|
||||
(setq ecb-create-layout-generated-lisp nil)
|
||||
(setq ecb-create-layout-gen-counter 0))
|
||||
|
||||
(defvar ecb-create-layout-frame-deleted nil)
|
||||
|
||||
(defadvice delete-frame (before ecb-create-layout)
|
||||
"Ensure calling `ecb-create-layout-cancel' during deleting the
|
||||
layout-creation frame. Does nothing for any other other frame!"
|
||||
(let ((frame (or (ad-get-arg 0) (selected-frame))))
|
||||
(when (ecb-string= (ecb-frame-parameter frame 'name)
|
||||
ecb-create-layout-frame-name)
|
||||
(setq ecb-create-layout-frame-deleted t)
|
||||
(ecb-create-layout-cancel))))
|
||||
|
||||
(defadvice delete-frame (after ecb-create-layout)
|
||||
"Ensures correct deleting of the layout-creation frame. Does nothing for any
|
||||
other other frame!"
|
||||
(when ecb-create-layout-frame-deleted
|
||||
(setq ecb-create-layout-frame-deleted nil)
|
||||
(ecb-activate))
|
||||
(ad-disable-advice 'delete-frame 'after 'ecb-create-layout)
|
||||
(ad-activate 'delete-frame))
|
||||
|
||||
|
||||
(defun ecb-create-layout-frame-ok ()
|
||||
"Return not nil if current frame is the `ecb-create-layout-frame'"
|
||||
(and ecb-create-layout-frame
|
||||
(frame-live-p ecb-create-layout-frame)
|
||||
(equal (selected-frame) ecb-create-layout-frame)))
|
||||
|
||||
(defun ecb-create-layout-cancel (&rest ignore)
|
||||
"Cancel layout-creation without saving the layout."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
(ecb-create-layout-clear-all (called-interactively-p 'interactive))
|
||||
(message "ECB Layout Creation canceled - the layout is not saved!")
|
||||
(and (called-interactively-p 'interactive) (ecb-activate))))
|
||||
|
||||
(defun ecb-create-layout-clear-all (&optional delete-frame)
|
||||
"Resets all stuff to state before `ecb-create-new-layout' was called. If
|
||||
DELETE-FRAME is not nil then the new created frame will be deleted and the
|
||||
`ecb-create-layout-old-frame' will be selected."
|
||||
;; disabling the advice
|
||||
(ad-disable-advice 'delete-frame 'before 'ecb-create-layout)
|
||||
(ad-activate 'delete-frame)
|
||||
;; killing all white-space-filled layout-buffers
|
||||
(save-match-data
|
||||
(dolist (b (buffer-list ecb-create-layout-frame))
|
||||
(if (string-match "^ \\*ECB-LC-" (buffer-name b))
|
||||
(kill-buffer b))))
|
||||
;; restore the global-map
|
||||
(if (keymapp ecb-create-layout-old-global-map)
|
||||
(use-global-map ecb-create-layout-old-global-map))
|
||||
;; restore the minor-mode-maps
|
||||
(if ecb-create-layout-old-minor-mode-map-alist
|
||||
(setq minor-mode-map-alist
|
||||
ecb-create-layout-old-minor-mode-map-alist))
|
||||
;; restore horiz. scrolling
|
||||
(unless ecb-running-xemacs
|
||||
(setq auto-hscroll-mode ecb-create-layout-old-hscroll))
|
||||
;; for XEmacs restore these maps
|
||||
(if ecb-running-xemacs
|
||||
(progn
|
||||
(setq vertical-divider-map ecb-create-layout-old-vertical-div-map)
|
||||
(setq modeline-map ecb-create-layout-old-modeline-map))
|
||||
;; before and after making frame stuff
|
||||
(setq before-make-frame-hook ecb-create-layout-old-before-frame-h)
|
||||
(setq after-make-frame-functions ecb-create-layout-old-after-frame-h))
|
||||
;; restore old debug-on-error
|
||||
(setq debug-on-error ecb-create-layout-old-debug-on-error)
|
||||
;; delete the layout-frame and select the ecb-create-layout-old-frame
|
||||
(when delete-frame
|
||||
(when (and ecb-create-layout-old-frame
|
||||
(frame-live-p ecb-create-layout-old-frame))
|
||||
(raise-frame ecb-create-layout-old-frame)
|
||||
(select-frame ecb-create-layout-old-frame))
|
||||
(when (and ecb-create-layout-frame
|
||||
(frame-live-p ecb-create-layout-frame))
|
||||
(ad-with-originals 'delete-frame
|
||||
(delete-frame ecb-create-layout-frame))))
|
||||
(setq ecb-create-layout-frame nil))
|
||||
|
||||
(defun ecb-create-layout-save-and-quit (&rest ignore)
|
||||
"Quit the ECB Layout creation and save the defined layout."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
(if (ecb-create-layout-ready-for-save-p)
|
||||
(let ((delete-frame (called-interactively-p 'interactive)))
|
||||
;; if an error occurs during `ecb-create-layout-save-layout' or the
|
||||
;; user hits C-q we must clean the layout creation stuff!
|
||||
(unwind-protect
|
||||
(ecb-create-layout-save-layout)
|
||||
;; clean the layout creation stuff
|
||||
(ecb-create-layout-clear-all delete-frame)
|
||||
(message "ECB Layout Creation finished.")
|
||||
(ecb-activate)))
|
||||
(ecb-error "You must give every ECB-tree-window a type (use C-t)!"))))
|
||||
|
||||
|
||||
(defun ecb-create-layout-ready-for-save-p ()
|
||||
"Returns only not nil if all windows in current layout have a type."
|
||||
(let ((save-p t))
|
||||
(save-excursion
|
||||
(dolist (win (ecb-window-list (selected-frame) 0))
|
||||
(unless (equal win ecb-create-layout-edit-window)
|
||||
(set-buffer (window-buffer win))
|
||||
(setq save-p (ecb-create-layout-buffer-type)))))
|
||||
save-p))
|
||||
|
||||
|
||||
(defmacro ecb-create-layout-insert-line (line)
|
||||
"Insert LINE in current-buffer and adds a newline."
|
||||
`(progn
|
||||
(insert ,line)
|
||||
(insert "\n")))
|
||||
|
||||
(defun ecb-create-layout-insert-file-header ()
|
||||
(insert (format ";;; %s --- user defined ECB-layouts" ;;
|
||||
(ecb-file-name-nondirectory ecb-create-layout-file)))
|
||||
(insert ecb-create-layout-file-header))
|
||||
|
||||
(defun ecb-create-layout-save-layout ()
|
||||
"Saves current layout in `ecb-create-layout-file'."
|
||||
;; make edit-window the current selected window
|
||||
(ecb-create-layout-select-edit-window)
|
||||
;; we need the reversed sequence of the generated code
|
||||
(setq ecb-create-layout-generated-lisp
|
||||
(nreverse ecb-create-layout-generated-lisp))
|
||||
;; ensure we have load all layouts defined until now
|
||||
(ecb-load-layouts)
|
||||
;; now we have the create-code in the right sequence so we can save the new
|
||||
;; layout in the user-layout file
|
||||
(let ((layout-name ""))
|
||||
;; a repeat...until-loop
|
||||
(while (progn
|
||||
;;the while body
|
||||
(setq layout-name
|
||||
(ecb-choose-layout-name (ecb-available-layouts-of-type nil)
|
||||
nil))
|
||||
;; the while condition
|
||||
(ecb-available-layouts-member-p layout-name)))
|
||||
(with-temp-file (expand-file-name ecb-create-layout-file)
|
||||
(erase-buffer)
|
||||
(if (file-readable-p (expand-file-name ecb-create-layout-file))
|
||||
(insert-file-contents (expand-file-name ecb-create-layout-file))
|
||||
(ecb-create-layout-insert-file-header))
|
||||
(goto-char (point-max))
|
||||
;; insert header of the layout-define macro
|
||||
(ecb-create-layout-insert-line
|
||||
(format "(ecb-layout-define \"%s\" %s nil"
|
||||
layout-name
|
||||
(symbol-name ecb-create-layout-type)))
|
||||
;; insert all the generated layout-code of the new layout
|
||||
(dolist (line ecb-create-layout-generated-lisp)
|
||||
(ecb-create-layout-insert-line
|
||||
(format " %s" line)))
|
||||
;; close the new layout-function
|
||||
(ecb-create-layout-insert-line " )"))
|
||||
;; now we load the new layout
|
||||
(load-file (expand-file-name ecb-create-layout-file))
|
||||
(message "The new layout is saved in %s, loaded and available!"
|
||||
ecb-create-layout-file)))
|
||||
|
||||
(defun ecb-create-layout-gen-lisp (lisp-statement)
|
||||
(setq ecb-create-layout-generated-lisp
|
||||
(cons lisp-statement ecb-create-layout-generated-lisp)))
|
||||
|
||||
(defun ecb-create-layout-split-ver (&optional fraction)
|
||||
(let ((factor (or fraction
|
||||
(/ (float (count-lines (window-start) (point)))
|
||||
(float (- (ecb-window-full-height) 2))))))
|
||||
(ecb-split-ver factor t)
|
||||
(ecb-create-layout-gen-lisp `(ecb-split-ver ,factor t))
|
||||
factor))
|
||||
|
||||
(defun ecb-create-layout-split-hor (&optional fraction)
|
||||
(let ((factor (or fraction
|
||||
(/ (float (- (point) (ecb-line-beginning-pos)))
|
||||
(float (- (window-width) 3))))))
|
||||
(ecb-split-hor factor t)
|
||||
(ecb-create-layout-gen-lisp `(ecb-split-hor ,factor t))
|
||||
(beginning-of-line)
|
||||
factor))
|
||||
|
||||
(defun ecb-create-layout-add-to-buf-types (type)
|
||||
(when (and (stringp type)
|
||||
(member type ecb-create-layout-all-buf-types))
|
||||
(add-to-list 'ecb-create-layout-buf-types type)
|
||||
(setq ecb-create-layout-buf-types
|
||||
(sort ecb-create-layout-buf-types 'ecb-string<))))
|
||||
|
||||
(defun ecb-create-layout-remove-from-buf-type (type)
|
||||
(when (stringp type)
|
||||
(setq ecb-create-layout-buf-types
|
||||
(sort (delete type ecb-create-layout-buf-types) 'ecb-string<))))
|
||||
|
||||
(defun ecb-create-layout-buffer-type ()
|
||||
(get-text-property (point-min) 'ecb-create-layout-type))
|
||||
|
||||
(defun ecb-create-layout-buffer-factor ()
|
||||
(get-text-property (point-min) 'ecb-create-layout-factor))
|
||||
|
||||
(defun ecb-create-layout-set-buffer-type (type)
|
||||
(let ((buffer-read-only nil))
|
||||
(put-text-property (point-min) (1+ (point-min)) 'ecb-create-layout-type
|
||||
type)))
|
||||
|
||||
(defun ecb-create-layout-set-buffer-factor (factor)
|
||||
(let ((buffer-read-only nil))
|
||||
(put-text-property (point-min) (1+ (point-min)) 'ecb-create-layout-factor
|
||||
factor)))
|
||||
|
||||
|
||||
(defun ecb-create-layout-gen-lisp-for-buffer-type (type)
|
||||
(let ((func-sym (intern (format "ecb-set-%s-buffer" type))))
|
||||
(ecb-create-layout-gen-lisp
|
||||
`(if (fboundp (quote ,func-sym))
|
||||
(,func-sym)
|
||||
(ecb-set-default-ecb-buffer)))))
|
||||
|
||||
|
||||
(defun ecb-create-layout-set-buffer-to-type (&optional type)
|
||||
"Give current ECB-buffer a type."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
;; adding the old buffer type to the available-list
|
||||
(ecb-create-layout-add-to-buf-types (or type
|
||||
(ecb-create-layout-buffer-type)))
|
||||
(let ((new-type (or (and (stringp type) type)
|
||||
(ecb-query-string "Type of current ECB-tree-buffer:"
|
||||
ecb-create-layout-buf-types
|
||||
"Insert the buffer type"))))
|
||||
;; removing the new buffer type from the available-list
|
||||
(ecb-create-layout-remove-from-buf-type new-type)
|
||||
(ecb-mode-line-set (buffer-name (current-buffer))
|
||||
(selected-frame)
|
||||
(concat "ECB " new-type) nil t)
|
||||
;; setting the new buffer type in the buffer itself
|
||||
(ecb-create-layout-set-buffer-type new-type)
|
||||
(when (called-interactively-p 'interactive)
|
||||
(ecb-create-layout-gen-lisp-for-buffer-type new-type)
|
||||
(ecb-create-layout-next-window))
|
||||
new-type)))
|
||||
|
||||
(defun ecb-create-layout-select-edit-window ()
|
||||
(let ((counter 0))
|
||||
(while (not (equal (selected-window) ecb-create-layout-edit-window))
|
||||
(other-window 1)
|
||||
(setq counter (1+ counter)))
|
||||
(ecb-create-layout-gen-lisp `(dotimes (i ,counter)
|
||||
(other-window 1)
|
||||
(if (equal (selected-window)
|
||||
ecb-compile-window)
|
||||
(other-window 1))))))
|
||||
|
||||
(defun ecb-create-layout-split ()
|
||||
"Split current window."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
;; splitting
|
||||
(let* ((old-buf-type (ecb-create-layout-buffer-type))
|
||||
(split-choices (if (equal ecb-create-layout-type 'top)
|
||||
'("horizontal" "vertical")
|
||||
'("vertical" "horizontal")))
|
||||
(split-type (ecb-query-string "Split type:" split-choices))
|
||||
(split-method
|
||||
(ecb-query-string "Split method:"
|
||||
'("at-point" "half")
|
||||
"Insert a fraction between 0.1 and 0.9"))
|
||||
(fraction (cond ((ecb-string= split-method "at-point")
|
||||
nil)
|
||||
((ecb-string= split-method "half")
|
||||
0.5)
|
||||
((floatp (string-to-number split-method))
|
||||
(string-to-number split-method))
|
||||
(t 0.5)))
|
||||
(real-split-factor
|
||||
(if (ecb-string= split-type "horizontal")
|
||||
(ecb-create-layout-split-hor fraction)
|
||||
(ecb-create-layout-split-ver fraction))))
|
||||
;; creating new fitting buffers
|
||||
(ecb-create-layout-new-buffer)
|
||||
(save-excursion
|
||||
(save-selected-window
|
||||
(select-window (next-window))
|
||||
(ecb-create-layout-new-buffer)))
|
||||
;; asking for the buffer type
|
||||
(ecb-create-layout-set-buffer-factor real-split-factor)
|
||||
(ecb-create-layout-gen-lisp-for-buffer-type
|
||||
(ecb-create-layout-set-buffer-to-type old-buf-type))
|
||||
(ecb-create-layout-next-window))))
|
||||
|
||||
(defun ecb-create-layout-forward-char ()
|
||||
"Move one character forward."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
(unless (> (- (point) (ecb-line-beginning-pos)) (- (window-width)
|
||||
(if ecb-running-xemacs
|
||||
3
|
||||
2)))
|
||||
(call-interactively 'forward-char))))
|
||||
|
||||
(defun ecb-create-layout-next-window ()
|
||||
"Go to the next window.
|
||||
This command always goes to the next special ECB-window, i.e. it never selects
|
||||
the edit-window."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
(let ((steps (if (equal (next-window) ecb-create-layout-edit-window) 2 1)))
|
||||
(other-window steps)
|
||||
(ecb-create-layout-gen-lisp `(dotimes (i ,steps)
|
||||
(other-window 1)
|
||||
(if (equal (selected-window)
|
||||
ecb-compile-window)
|
||||
(other-window 1)))))))
|
||||
|
||||
(defun ecb-create-layout-previous-window ()
|
||||
"Go to the previous window.
|
||||
This command always goes to the ECB-window preceding current window, i.e. it
|
||||
never selects the edit-window."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
(let ((steps (if (equal (previous-window (selected-window) 0)
|
||||
ecb-create-layout-edit-window)
|
||||
-2 -1)))
|
||||
(other-window steps)
|
||||
(ecb-create-layout-gen-lisp `(dotimes (i ,(abs steps))
|
||||
(other-window -1)
|
||||
(if (equal (selected-window)
|
||||
ecb-compile-window)
|
||||
(other-window -1)))))))
|
||||
|
||||
(defun ecb-create-layout-delete-window ()
|
||||
"Delete current window."
|
||||
(interactive)
|
||||
(when (ecb-create-layout-frame-ok)
|
||||
(unless (or (equal (selected-window) ecb-create-layout-edit-window)
|
||||
(= (length (ecb-window-list nil 0))
|
||||
(if (equal ecb-create-layout-type 'left-right) 3 2)))
|
||||
(if (and (member ecb-create-layout-type '(right left-right))
|
||||
(equal (previous-window (selected-window) 0)
|
||||
ecb-create-layout-edit-window)
|
||||
(> (nth 0 (ecb-window-edges (next-window))) (nth 0 (ecb-window-edges)))
|
||||
(= (nth 3 (ecb-window-edges ecb-create-layout-edit-window))
|
||||
(nth 3 (ecb-window-edges))))
|
||||
;; In exactly this window context we can not delete the current
|
||||
;; window because otherwise the edit-window would enlarge and the
|
||||
;; wrong window would be deleted!
|
||||
(ecb-error "This window can not be deleted! Delete another one.")
|
||||
;; add the buffer type of the deleted window to the available-list
|
||||
(ecb-create-layout-add-to-buf-types (ecb-create-layout-buffer-type))
|
||||
(kill-buffer (current-buffer))
|
||||
(delete-window)
|
||||
(ecb-create-layout-gen-lisp '(delete-window))
|
||||
(if (equal (selected-window) ecb-create-layout-edit-window)
|
||||
(ecb-create-layout-previous-window))
|
||||
;; add the buffer type of the new bigger window to the available-list
|
||||
(ecb-create-layout-add-to-buf-types (ecb-create-layout-buffer-type))
|
||||
(kill-buffer (current-buffer))
|
||||
(ecb-create-layout-new-buffer)))))
|
||||
|
||||
(defvar ecb-create-layout-mode-map nil
|
||||
"`ecb-create-layout-mode' key-map.")
|
||||
|
||||
(if ecb-create-layout-mode-map
|
||||
()
|
||||
(setq ecb-create-layout-mode-map (make-sparse-keymap))
|
||||
;; (suppress-key-map ecb-create-layout-mode-map t)
|
||||
|
||||
;; for minibuffer insertion we need the following
|
||||
(dotimes (i 26)
|
||||
(define-key ecb-create-layout-mode-map
|
||||
(string (+ i 97)) 'self-insert-command))
|
||||
|
||||
(dotimes (i 26)
|
||||
(define-key ecb-create-layout-mode-map
|
||||
(string (+ i 65)) 'self-insert-command))
|
||||
|
||||
(dotimes (i 10)
|
||||
(define-key ecb-create-layout-mode-map
|
||||
(string (+ i 48)) 'self-insert-command))
|
||||
|
||||
(define-key ecb-create-layout-mode-map "." 'self-insert-command)
|
||||
(define-key ecb-create-layout-mode-map "-" 'self-insert-command)
|
||||
|
||||
(if ecb-running-xemacs
|
||||
(define-key ecb-create-layout-mode-map (kbd "<BS>")
|
||||
'delete-backward-char)
|
||||
(define-key ecb-create-layout-mode-map (kbd "<DEL>")
|
||||
'backward-delete-char-untabify))
|
||||
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-q")
|
||||
'ecb-create-layout-save-and-quit)
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-c")
|
||||
'ecb-create-layout-cancel)
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-u")
|
||||
'ecb-create-layout-delete-window)
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-s") 'ecb-create-layout-split)
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-t")
|
||||
'ecb-create-layout-set-buffer-to-type)
|
||||
(define-key ecb-create-layout-mode-map (kbd "<left>") 'backward-char)
|
||||
(define-key ecb-create-layout-mode-map (kbd "<right>")
|
||||
'ecb-create-layout-forward-char)
|
||||
(define-key ecb-create-layout-mode-map (kbd "<up>") 'previous-line)
|
||||
(define-key ecb-create-layout-mode-map (kbd "<down>") 'next-line)
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-n")
|
||||
'ecb-create-layout-next-window)
|
||||
(define-key ecb-create-layout-mode-map (kbd "C-p")
|
||||
'ecb-create-layout-previous-window)
|
||||
;; (define-key ecb-create-layout-mode-map (kbd "C-h v")
|
||||
;; 'describe-variable)
|
||||
;; (define-key ecb-create-layout-mode-map (kbd "C-h k")
|
||||
;; 'describe-key)
|
||||
;; (define-key ecb-create-layout-mode-map (kbd "C-h d")
|
||||
;; 'ecb-create-layout-debug)
|
||||
;; (define-key ecb-create-layout-mode-map (kbd "M-<down>")
|
||||
;; 'scroll-other-window)
|
||||
(set-keymap-parent ecb-create-layout-mode-map nil))
|
||||
|
||||
|
||||
(defun ecb-create-layout-new-buffer (&optional do-not-fill)
|
||||
(set-window-dedicated-p (selected-window) nil)
|
||||
(switch-to-buffer (generate-new-buffer ecb-create-layout-buf-prefix))
|
||||
(erase-buffer)
|
||||
(unless do-not-fill
|
||||
(dotimes (i (ecb-window-full-height))
|
||||
(insert
|
||||
(format "%s\n"
|
||||
(make-string (- (window-width)
|
||||
(if ecb-running-xemacs 3 1))
|
||||
?\ )))))
|
||||
(goto-char (point-min))
|
||||
(ecb-create-layout-mode)
|
||||
(set-window-dedicated-p (selected-window) t))
|
||||
|
||||
|
||||
|
||||
(defun ecb-create-layout-mode ()
|
||||
"Major mode for creating new ECB-layouts."
|
||||
(setq major-mode 'ecb-create-layout-mode)
|
||||
(setq mode-name "ECB Create-Layout")
|
||||
(use-local-map ecb-create-layout-mode-map)
|
||||
(make-local-variable 'buffer-read-only)
|
||||
(ecb-mode-line-set (buffer-name (current-buffer))
|
||||
(selected-frame) "" nil t)
|
||||
(setq buffer-read-only t))
|
||||
|
||||
(defun ecb-create-layout-init-layout (&optional new)
|
||||
(delete-other-windows)
|
||||
(ecb-create-layout-new-buffer)
|
||||
(when new
|
||||
(setq ecb-create-layout-type (intern (ecb-query-string
|
||||
"Location of the the ECB-tree-windows:"
|
||||
'("left" "right" "top" "left-right")))))
|
||||
(case ecb-create-layout-type
|
||||
(left
|
||||
(ecb-split-hor ecb-windows-width))
|
||||
(right
|
||||
(ecb-split-hor (- ecb-windows-width) t))
|
||||
(top
|
||||
(ecb-split-ver ecb-windows-height))
|
||||
(otherwise
|
||||
(ecb-split-hor (- (* 0.667 ecb-windows-width)) t)
|
||||
(ecb-split-hor (* 0.667 ecb-windows-width) nil t)))
|
||||
;; we set the buffer in the big edit-window
|
||||
(ecb-create-layout-new-buffer t)
|
||||
;; now we insert the help in the edit-window
|
||||
(let ((buffer-read-only nil))
|
||||
(insert (if (equal ecb-create-layout-type 'top)
|
||||
ecb-create-layout-help-text-top
|
||||
ecb-create-layout-help-text-left-right)))
|
||||
(setq ecb-create-layout-edit-window (selected-window))
|
||||
(ecb-mode-line-set (buffer-name (current-buffer))
|
||||
(selected-frame) " ECB edit-window" nil t)
|
||||
;; The edit window must not be dedicated
|
||||
(set-window-dedicated-p (selected-window) nil)
|
||||
;; we set the buffer for the (currently unsplitted) ECB-window
|
||||
(other-window 1)
|
||||
(ecb-create-layout-new-buffer)
|
||||
;; for the left-right type we have to set the other column too
|
||||
(when (equal ecb-create-layout-type 'left-right)
|
||||
(other-window 1)
|
||||
(ecb-create-layout-new-buffer)))
|
||||
|
||||
|
||||
(defun ecb-create-layout-make-frame ()
|
||||
"Create a new frame for the layout creation process and return it."
|
||||
(if ecb-running-xemacs
|
||||
(make-frame `((name . ,ecb-create-layout-frame-name)
|
||||
(minibuffer . t)
|
||||
(user-position . t)
|
||||
(width . ,ecb-create-layout-frame-width)
|
||||
(height . ,ecb-create-layout-frame-height)
|
||||
(default-toolbar-visible-p . nil)
|
||||
(left-toolbar-visible-p . nil)
|
||||
(right-toolbar-visible-p . nil)
|
||||
(top-toolbar-visible-p . nil)
|
||||
(bottom-toolbar-visible-p . nil)
|
||||
(default-gutter-visible-p . nil)
|
||||
(left-gutter-visible-p . nil)
|
||||
(right-gutter-visible-p . nil)
|
||||
(top-gutter-visible-p . nil)
|
||||
(bottom-gutter-visible-p . nil)
|
||||
(has-modeline-p . t)
|
||||
(use-left-overflow . nil)
|
||||
(vertical-scrollbar-visible-p . nil)
|
||||
(horizontal-scrollbar-visible-p . nil)
|
||||
(use-right-overflow . nil)
|
||||
(menubar-visible-p . nil)))
|
||||
(make-frame `((name . ,ecb-create-layout-frame-name)
|
||||
(minibuffer . t)
|
||||
(user-position . t)
|
||||
(width . ,ecb-create-layout-frame-width)
|
||||
(height . ,ecb-create-layout-frame-height)
|
||||
(vertical-scroll-bars . nil)
|
||||
(horizontal-scroll-bars . nil)
|
||||
(tool-bar-lines . 0)
|
||||
(menu-bar-lines . 0)))))
|
||||
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: Wir müssen ev. ECB vorher
|
||||
;; deaktivieren, da sonst ein 2. ECB-menu entsteht. Beim C-c oder C-q eben
|
||||
;; dann wieder aktivieren.
|
||||
(defun ecb-create-new-layout ()
|
||||
"Start interactively layout creating."
|
||||
(interactive)
|
||||
|
||||
(ecb-deactivate)
|
||||
(ecb-create-layout-initilize)
|
||||
|
||||
;; before- and after make frame stuff
|
||||
(when (not ecb-running-xemacs)
|
||||
(setq ecb-create-layout-old-after-frame-h after-make-frame-functions)
|
||||
(setq after-make-frame-functions nil)
|
||||
(setq ecb-create-layout-old-before-frame-h before-make-frame-hook)
|
||||
(setq before-make-frame-hook nil))
|
||||
|
||||
;; saving old frame
|
||||
(setq ecb-create-layout-old-frame (selected-frame))
|
||||
|
||||
;; creating new frame
|
||||
(setq ecb-create-layout-frame (ecb-create-layout-make-frame))
|
||||
(raise-frame ecb-create-layout-frame)
|
||||
(select-frame ecb-create-layout-frame)
|
||||
(ad-enable-advice 'delete-frame 'before 'ecb-create-layout)
|
||||
(ad-enable-advice 'delete-frame 'after 'ecb-create-layout)
|
||||
(ad-activate 'delete-frame)
|
||||
|
||||
;; global map
|
||||
(setq ecb-create-layout-old-global-map (current-global-map))
|
||||
(use-global-map ecb-create-layout-mode-map)
|
||||
|
||||
;; minor-modes map
|
||||
(setq ecb-create-layout-old-minor-mode-map-alist minor-mode-map-alist)
|
||||
(setq minor-mode-map-alist nil)
|
||||
|
||||
;; horiz. scrolling
|
||||
(unless ecb-running-xemacs
|
||||
(setq ecb-create-layout-old-hscroll auto-hscroll-mode)
|
||||
(setq auto-hscroll-mode nil))
|
||||
|
||||
;; for XEmacs modeline- and vertical-divider maps
|
||||
(when ecb-running-xemacs
|
||||
(setq ecb-create-layout-old-vertical-div-map vertical-divider-map)
|
||||
(setq vertical-divider-map nil)
|
||||
(setq ecb-create-layout-old-modeline-map modeline-map)
|
||||
(setq modeline-map nil))
|
||||
|
||||
;; debug on error
|
||||
(setq ecb-create-layout-old-debug-on-error debug-on-error)
|
||||
(setq debug-on-error nil)
|
||||
|
||||
(ecb-create-layout-init-layout t))
|
||||
|
||||
|
||||
(defun ecb-delete-new-layout ()
|
||||
"Select a layout-name and delete this layout.
|
||||
This means the layout-definition is removed from the file
|
||||
`ecb-create-layout-file' and the layout-function and associated aliases are
|
||||
unbound."
|
||||
(interactive)
|
||||
;; ensure we have load all layouts defined until now
|
||||
(ecb-load-layouts)
|
||||
(let ((new-layout-list
|
||||
(sort (ecb-set-difference (ecb-available-layouts-of-type nil)
|
||||
(mapcar (function (lambda (elem)
|
||||
(car elem)))
|
||||
ecb-buildin-layouts)
|
||||
'member)
|
||||
'ecb-string<))
|
||||
(layout-name nil))
|
||||
(if (= (length new-layout-list) 0)
|
||||
(ecb-error "There are no layouts to delete!")
|
||||
(setq layout-name (ecb-choose-layout-name new-layout-list t)))
|
||||
(with-temp-file (expand-file-name ecb-create-layout-file)
|
||||
(erase-buffer)
|
||||
(if (file-readable-p (expand-file-name ecb-create-layout-file))
|
||||
(insert-file-contents (expand-file-name ecb-create-layout-file))
|
||||
(ecb-error "This layout is not defined in %s!" ecb-create-layout-file))
|
||||
(goto-char (point-min))
|
||||
(if (re-search-forward (concat "^(ecb-layout-define +"
|
||||
"\"" layout-name "\".+$")
|
||||
nil t)
|
||||
(progn
|
||||
;; Deleting the layout definition in the file
|
||||
;; `ecb-create-layout-file'.
|
||||
(beginning-of-line)
|
||||
(delete-region (match-beginning 0)
|
||||
(progn
|
||||
(forward-sexp)
|
||||
(point)))
|
||||
(kill-line)
|
||||
;; undefining the function and aliases.
|
||||
(ecb-layout-undefine layout-name))
|
||||
(ecb-error "This layout is not defined in %s!" ecb-create-layout-file)))))
|
||||
|
||||
(defun ecb-create-layout-debug ()
|
||||
"Debugging command for the ECB-developers."
|
||||
(interactive)
|
||||
(message "Layout-Debug: Type: %s, Factor: %s"
|
||||
(ecb-create-layout-buffer-type)
|
||||
(ecb-create-layout-buffer-factor)))
|
||||
|
||||
;; Klaus Berndl <klaus.berndl@sdm.de>: Cause of the magic autostart stuff of
|
||||
;; the advice-package we must disable at load-time all these advices!!
|
||||
;; Otherwise would just loading ecb (not activating!) activate each advice
|
||||
;; AFTER the FIRST usage of our advices!!
|
||||
(ad-disable-advice 'delete-frame 'after 'ecb-create-layout)
|
||||
(ad-disable-advice 'delete-frame 'before 'ecb-create-layout)
|
||||
(ad-activate 'delete-frame)
|
||||
|
||||
|
||||
(silentcomp-provide 'ecb-create-layout)
|
||||
|
||||
;; ecb-help.el ends here
|
|
@ -1,137 +0,0 @@
|
|||
;;; ecb-cycle.el --- cycle buffers through ecb windows.
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Kevin A. Burton <burton@openprivacy.org>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2002
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; NOTE: If you enjoy this software, please consider a donation to the EFF
|
||||
;; (http://www.eff.org)
|
||||
|
||||
;;; History:
|
||||
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
;;; TODO:
|
||||
;;
|
||||
;; - What is the pattern we should use for cycling through other windows?
|
||||
;;
|
||||
;; - ecb-cycle-through-X-buffers (select the next X buffer)
|
||||
;; - ecb-cycle-switch-to-X-buffer (set the X buffer using completion)
|
||||
;;
|
||||
;; - How do we setup the menubar?
|
||||
;;
|
||||
;; - ECB
|
||||
;; Cycle
|
||||
;; - Forward Compilation Buffer
|
||||
;; - Set Compilation Buffer
|
||||
;;
|
||||
;; - What do we use for key bindings?
|
||||
;;
|
||||
;; - We need an easier way to setup completion and a better way to get the
|
||||
;; index.
|
||||
;;
|
||||
;; - If possible, try to put fit the buffer so that the end of buffer is at the
|
||||
;; end of the window... if necessary.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(require 'ecb-compilation)
|
||||
(require 'ecb-layout)
|
||||
|
||||
(defgroup ecb-cycle nil
|
||||
"Setting for cycling through misc ECB buffers."
|
||||
:group 'ecb
|
||||
:prefix "ecb-cycle-")
|
||||
|
||||
|
||||
(defun ecb-cycle-through-compilation-buffers(&optional choose-buffer)
|
||||
"Cycle through all compilation buffers currently open.
|
||||
The choosen compilation buffer is displayed within the compilation window
|
||||
`ecb-compile-window' \(if this window doesn't exist then an error is
|
||||
displayed). If the currently opened buffer within the compilation window is
|
||||
not a compilation buffer, we jump to the first compilation buffer. If not we
|
||||
try to loop through all compilation buffers. If we hit the end we go back to
|
||||
the beginning.
|
||||
|
||||
If CHOOSE-BUFFER is not nil then the user will be prompted for the
|
||||
compilation-buffer to switch to.
|
||||
|
||||
Afterwards always the compile-window of ECB is selected."
|
||||
|
||||
(interactive "P")
|
||||
(if (not (numberp ecb-compile-window-height))
|
||||
(ecb-error "This command needs a persistent compile window!")
|
||||
(if choose-buffer
|
||||
(switch-to-buffer (completing-read "ECB compilation buffer: "
|
||||
(ecb-compilation-get-buffers)))
|
||||
|
||||
(let* ((compilation-buffers (ecb-compilation-get-buffers))
|
||||
;; This works even if ecb-compile-window is nil or not alive
|
||||
;; (means temporally hidden) --> then current-buffer is the
|
||||
;; buffer of the currently selected window!
|
||||
(current-buffer (or (and (ecb-compile-window-live-p)
|
||||
(window-buffer ecb-compile-window))
|
||||
(current-buffer)))
|
||||
(current-buffer-name (buffer-name current-buffer))
|
||||
(current nil)
|
||||
(index nil))
|
||||
(when (null compilation-buffers)
|
||||
(ecb-error "No compilation buffers available."))
|
||||
|
||||
(if (not (ecb-compilation-buffer-p current-buffer))
|
||||
;;if the current buffer is not a compilation buffer, goto the first
|
||||
;;compilation buffer.
|
||||
|
||||
(ecb-cycle-set-compilation-buffer 0 compilation-buffers)
|
||||
|
||||
;;else... we need to determine what buffer to display.
|
||||
|
||||
(setq current (assoc current-buffer-name compilation-buffers))
|
||||
|
||||
(setq index (cdr current))
|
||||
|
||||
(if (= (1+ index) (length compilation-buffers))
|
||||
;;go back to the first buffer.
|
||||
(ecb-cycle-set-compilation-buffer 0 compilation-buffers)
|
||||
(ecb-cycle-set-compilation-buffer (1+ index)
|
||||
compilation-buffers)))))))
|
||||
|
||||
|
||||
(defun ecb-cycle-set-compilation-buffer(index compilation-buffers)
|
||||
"Set the buffer in the compilation window."
|
||||
|
||||
(let ((buffer-name (car (nth index compilation-buffers))))
|
||||
(switch-to-buffer buffer-name)))
|
||||
|
||||
|
||||
(silentcomp-provide 'ecb-cycle)
|
||||
|
||||
;;; ecb-cycle.el ends here
|
|
@ -1,394 +0,0 @@
|
|||
;;; ecb-eshell.el --- eshell integration for the ECB.
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Kevin A. Burton <burton@openprivacy.org>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2001
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This package provides eshell integration for the ECB. This basically allows
|
||||
;; you to jump to the eshell in the compilation window, sync up the current
|
||||
;; eshell with the current ECB buffer and run commands without getting in the
|
||||
;; way.
|
||||
;;
|
||||
;; It provides the following features:
|
||||
;;
|
||||
;; - ability to jump to the eshell buffer within the compilation window ( C-.e )
|
||||
;; If the eshell isn't running it will be started
|
||||
;;
|
||||
;; - expands the compilation window when you run commands. So for example it
|
||||
;; allows you to view the eshell in minimized mode and then when you run 'ls'
|
||||
;; the window automatically expands.
|
||||
;;
|
||||
;; - Synchronizes the current directory of the eshell with the current buffer
|
||||
;; of the either the edit-window or the ecb-windows.
|
||||
;;
|
||||
;; - Provides smart window layout of the eshell buffer. This makes sure that
|
||||
;; the eshell is taking up the exact amount of space and that nothing is
|
||||
;; hidden.
|
||||
;;
|
||||
;; The goal is to make it easy to jump to a command prompt to run OS level
|
||||
;; commands.
|
||||
;;
|
||||
;; If you enjoy this software, please consider a donation to the EFF
|
||||
;; (http://www.eff.org)
|
||||
|
||||
;;; History:
|
||||
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
;;; Design:
|
||||
;;
|
||||
;; Syncing the current buffer with the eshell is done two ways. If the buffer
|
||||
;; is visible in a window, we always resync. If it is not visible then
|
||||
;; ecb-eshell-goto-eshell will sync up when the user goes to the eshell
|
||||
;; buffer.
|
||||
;;
|
||||
;; Integrating of eshell is mostly done by advicing the command `eshell' which
|
||||
;; uses the mechanism of the display-buffer (adviced version).
|
||||
|
||||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(require 'ecb-util)
|
||||
(require 'ecb-compilation)
|
||||
(require 'ecb-common-browser)
|
||||
|
||||
(silentcomp-defvar eshell-buffer-name)
|
||||
(silentcomp-defun eshell)
|
||||
(silentcomp-defun eshell/cd)
|
||||
(silentcomp-defun eshell-send-input)
|
||||
(silentcomp-defun eshell-bol)
|
||||
|
||||
(defgroup ecb-eshell nil
|
||||
"Settings for eshell integration within the ECB."
|
||||
:group 'ecb
|
||||
:prefix "ecb-eshell-")
|
||||
|
||||
(defcustom ecb-eshell-enlarge-when-eshell t
|
||||
"*Enlarge the compile-window if it is selected by `eshell'.
|
||||
This takes only effect if the command `eshell' is called!"
|
||||
:group 'ecb-eshell
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom ecb-eshell-fit-window-to-command-output t
|
||||
"*Fit the compile-window after an eshell-command to the output.
|
||||
This is done by the function `ecb-eshell-fit-window-to-output' which is added
|
||||
to `eshell-post-command-hook' ie. which is running autom. after each
|
||||
eshell-command."
|
||||
:group 'ecb-eshell
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom ecb-eshell-auto-activate nil
|
||||
"*Startup the eshell and display it in the compile-window.
|
||||
If current layout does not display a compile-window \(see
|
||||
`ecb-compile-window-height') then nothing is done."
|
||||
:group 'ecb-eshell
|
||||
:type 'boolean)
|
||||
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: was ecb-eshell-synchronize -->
|
||||
;; rename in texi and also to ecb-upgrade (also with value-upgrade!)
|
||||
(defcustom ecb-eshell-buffer-sync 'basic
|
||||
"*Synchronize eshell with the default-directory of current source-buffer.
|
||||
|
||||
This option takes only effect if a permanant compile-window is used in the
|
||||
current layout.
|
||||
|
||||
If 'always then the synchronization takes place always a buffer
|
||||
changes in the edit window and if after this the
|
||||
default-directory of the new edit-buffer is different from the
|
||||
default-directory of the current eshell-buffer. If value is nil
|
||||
then never a synchronization will take place. If a list of
|
||||
major-modes then only if the `major-mode' of the new buffer
|
||||
belongs NOT to this list.
|
||||
|
||||
If the special value 'basic is set then ECB uses the setting of the option
|
||||
`ecb-basic-buffer-sync'."
|
||||
:group 'ecb-eshell
|
||||
:type '(radio :tag "Synchronize the eshell if in compile-window."
|
||||
(const :tag "Use basic value" :value basic)
|
||||
(const :tag "Always" :value always)
|
||||
(const :tag "Never" nil)
|
||||
(repeat :tag "Not with these modes"
|
||||
(symbol :tag "mode"))))
|
||||
|
||||
|
||||
(defcustom ecb-eshell-buffer-sync-delay 'basic
|
||||
"*Time Emacs must be idle before the eshell-buffer of ECB is synchronized.
|
||||
Synchronizing is done with the current source displayed in the edit window. If
|
||||
nil then there is no delay, means synchronization takes place immediately. A
|
||||
small value of about 0.25 seconds saves CPU resources and you get even though
|
||||
almost the same effect as if you set no delay.
|
||||
|
||||
If the special value 'basic is set then ECB uses the setting of the option
|
||||
`ecb-basic-buffer-sync-delay'."
|
||||
:group 'ecb-eshell
|
||||
:type '(radio (const :tag "Use basic value" :value basic)
|
||||
(const :tag "No synchronizing delay" :value nil)
|
||||
(number :tag "Idle time before synchronizing" :value 2))
|
||||
:set (function (lambda (symbol value)
|
||||
(set symbol value)
|
||||
(if (and (boundp 'ecb-minor-mode)
|
||||
ecb-minor-mode)
|
||||
(ecb-activate-ecb-autocontrol-function
|
||||
value 'ecb-analyse-buffer-sync))))
|
||||
:initialize 'custom-initialize-default)
|
||||
|
||||
|
||||
|
||||
(defvar ecb-eshell-pre-command-point nil
|
||||
"Point in the buffer we are at before we executed a command.")
|
||||
|
||||
(defvar ecb-eshell-buffer-list nil
|
||||
"List of eshell-buffers created until now.
|
||||
Background: `eshell' creates new eshell-buffers with `generate-new-buffer' if
|
||||
called with an prefix arg!")
|
||||
|
||||
|
||||
(defecb-advice-set ecb-eshell-adviced-functions
|
||||
"These functions of eshell are adviced if ehsell is active during ECB is
|
||||
active.")
|
||||
|
||||
(defecb-advice eshell around ecb-eshell-adviced-functions
|
||||
"Ensure that ehsell is running in the ECB-compile-window if any."
|
||||
;; we tell ECB to handle the eshell-buffers as compilation-buffers so they
|
||||
;; will be displayed in the compile-window (if any). We must add this as
|
||||
;; regexp because ehsell can open new eshell-buffers with a name created by
|
||||
;; generate-new-buffer-name! This approach is not completely save because if
|
||||
;; a users changes `eshell-buffer-name' during acivated ECB we get not
|
||||
;; informed about this and maybe we can handle the new buffer-name of eshell
|
||||
;; not as compilation-buffer. But we have no other chance: Adding the return
|
||||
;; value of `eshell' in the advice to `ecb-compilation-buffer-names-internal'
|
||||
;; does not help because `eshell' uses the new buffer-name already for
|
||||
;; `pop-to-buffer'. So an after advice would add the new buffer-name to late
|
||||
;; and a before-advice does not know the new-buffer name. The only way would
|
||||
;; be to reimplement the whole `eshell'-code in an around advice but this is
|
||||
;; not related to the benefit. IMO is it very improbably that a user changes
|
||||
;; `eshell-buffer-name' at all...
|
||||
(let ((new-elem (cons (concat ".*"
|
||||
(regexp-quote eshell-buffer-name)
|
||||
".*")
|
||||
t)))
|
||||
(if ecb-compile-window-height
|
||||
(progn
|
||||
(add-to-list 'ecb-compilation-buffer-names-internal new-elem)
|
||||
(add-to-list 'ecb-compilation-major-modes-internal 'eshell-mode))
|
||||
;; if we have no persistent compile-window we do not handle eshell autom.
|
||||
;; as compilation-buffer. If the user wants this then he has to modify
|
||||
;; `ecb-compilation-buffer-names' and/or `ecb-compilation-major-modes'.
|
||||
;; Therefore we remove the new-elem here from the internal lists.
|
||||
(setq ecb-compilation-buffer-names-internal
|
||||
(delete new-elem ecb-compilation-buffer-names-internal))
|
||||
(setq ecb-compilation-major-modes-internal
|
||||
(delete 'eshell-mode ecb-compilation-major-modes-internal))))
|
||||
|
||||
;; maybe we have to auto toggle our compile-window if temporally hidden
|
||||
(when (equal 'hidden (ecb-compile-window-state))
|
||||
(ecb-layout-debug-error "eshell around-advice: comp-win will be toggled.")
|
||||
(ecb-toggle-compile-window 1))
|
||||
|
||||
(ecb-activate-ecb-autocontrol-function ecb-eshell-buffer-sync-delay
|
||||
'ecb-eshell-buffer-sync)
|
||||
;; some hooks
|
||||
(add-hook 'eshell-post-command-hook 'ecb-eshell-recenter)
|
||||
(add-hook 'eshell-post-command-hook 'ecb-eshell-fit-window-to-output)
|
||||
(add-hook 'eshell-pre-command-hook 'ecb-eshell-precommand-hook)
|
||||
(add-hook 'window-size-change-functions 'ecb-eshell-window-size-change)
|
||||
|
||||
;; run `eshell' --------------------------------------------
|
||||
(ecb-eshell-save-buffer-history
|
||||
ad-do-it)
|
||||
;; ---------------------------------------------------------
|
||||
|
||||
;; some post processing
|
||||
|
||||
;; add the buffer of the buffer used/created by `eshell' to
|
||||
;; `ecb-eshell-buffer-list'
|
||||
(add-to-list 'ecb-eshell-buffer-list ad-return-value)
|
||||
|
||||
(when ecb-eshell-enlarge-when-eshell
|
||||
(ecb-toggle-compile-window-height 1))
|
||||
|
||||
;;always recenter because if the point is at the top of the eshell buffer
|
||||
;;and we switch to it the user is not going to be able to type a command
|
||||
;;right away.
|
||||
(ecb-eshell-recenter)
|
||||
|
||||
;;sync to the current buffer
|
||||
(ecb-eshell-buffer-sync))
|
||||
|
||||
|
||||
|
||||
(defun ecb-eshell-activate-integration ()
|
||||
"Does all necessary to activate the eshell-integration. But this doesn not
|
||||
load or activate eshell - it just prepares ECB to work perfectly with eshell."
|
||||
(ecb-enable-advices 'ecb-eshell-adviced-functions))
|
||||
|
||||
(defun ecb-eshell-deactivate-integration ()
|
||||
(ecb-disable-advices 'ecb-eshell-adviced-functions)
|
||||
(ecb-stop-autocontrol/sync-function 'ecb-eshell-buffer-sync)
|
||||
(remove-hook 'eshell-post-command-hook 'ecb-eshell-recenter)
|
||||
(remove-hook 'eshell-post-command-hook 'ecb-eshell-fit-window-to-output)
|
||||
(remove-hook 'eshell-pre-command-hook 'ecb-eshell-precommand-hook)
|
||||
(remove-hook 'window-size-change-functions 'ecb-eshell-window-size-change))
|
||||
|
||||
(defecb-autocontrol/sync-function ecb-eshell-buffer-sync nil ecb-eshell-buffer-sync t
|
||||
"Synchronize the eshell with the directory of current source-buffer.
|
||||
This is only done if the eshell is currently visible in the compile-window of
|
||||
ECB and if either this function is called interactively or
|
||||
`ecb-eshell-buffer-sync' is not nil."
|
||||
(when (and (equal (selected-frame) ecb-frame)
|
||||
(ecb-compile-window-live-p)
|
||||
(ecb-point-in-edit-window-number))
|
||||
(let* ((my-eshell-buffer
|
||||
;; nil or a living eshell-buffer in the ecb-compile-window
|
||||
(car (member (window-buffer ecb-compile-window)
|
||||
ecb-eshell-buffer-list)))
|
||||
(my-reference-directory default-directory)
|
||||
(my-eshell-directory (and (bufferp my-eshell-buffer)
|
||||
(with-current-buffer my-eshell-buffer
|
||||
default-directory))))
|
||||
(when (and (bufferp my-eshell-buffer)
|
||||
(stringp my-reference-directory)
|
||||
(stringp my-eshell-directory)
|
||||
(not (ecb-string= (ecb-fix-filename my-reference-directory)
|
||||
(ecb-fix-filename my-eshell-directory))))
|
||||
(ecb-eshell-save-buffer-history
|
||||
(with-current-buffer my-eshell-buffer
|
||||
;; make sure we have a clean eshell-command-line
|
||||
(goto-char (point-max))
|
||||
(eshell-bol)
|
||||
(delete-region (point) (point-at-eol))
|
||||
;;change the directory without showing the cd command
|
||||
(eshell/cd my-reference-directory))
|
||||
|
||||
;;execute the command
|
||||
(save-selected-window
|
||||
(select-window ecb-compile-window)
|
||||
(eshell-send-input)))
|
||||
|
||||
(ecb-eshell-recenter)
|
||||
|
||||
;; we need to make sure that that the eshell buffer isn't at the
|
||||
;; top of the buffer history list just because we implicitly
|
||||
;; changed its directory and switched to it. It might not be a
|
||||
;; good idea in the long term to put it all the way at the end of
|
||||
;; the history list but it is better than leaving it at the top.
|
||||
(bury-buffer eshell-buffer-name)))))
|
||||
|
||||
(defmacro ecb-eshell-save-buffer-history (&rest body)
|
||||
"Protect the buffer-list so that the eshell buffer name is not placed early
|
||||
in the buffer list or at all if it currently doesn't exist."
|
||||
(let ((eshell-buffer-list (make-symbol "my-buffer-list")))
|
||||
`(let ((,eshell-buffer-list (ecb-frame-parameter (selected-frame)
|
||||
'buffer-list)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
,@body)
|
||||
(modify-frame-parameters nil (list (cons 'buffer-list
|
||||
,eshell-buffer-list)))))))
|
||||
|
||||
(defun ecb-eshell-recenter(&optional display-errors)
|
||||
"Recenter the eshell window so that the prompt is at the buffer-end."
|
||||
(interactive (list t))
|
||||
|
||||
(if (and (equal (selected-frame) ecb-frame)
|
||||
(ecb-compile-window-live-p)
|
||||
;; the buffer in the ecb-compile-window is a living eshell-buffer
|
||||
(member (window-buffer ecb-compile-window)
|
||||
ecb-eshell-buffer-list))
|
||||
(save-selected-window
|
||||
(select-window ecb-compile-window)
|
||||
(goto-char (point-max))
|
||||
(recenter -2))
|
||||
(when display-errors
|
||||
(ecb-error "Eshell not running or compile-window not visible!"))))
|
||||
|
||||
(defun ecb-eshell-precommand-hook ()
|
||||
;;use the eshell-pre-command-hook to set the point.
|
||||
(setq ecb-eshell-pre-command-point (point)))
|
||||
|
||||
|
||||
(defun ecb-eshell-fit-window-to-output()
|
||||
"Fit window of eshell to the output of last command. This function is added
|
||||
to `eshell-post-command-hook' and only called there. This function tries to
|
||||
fit the height of the compile-window best to the last command-output. The
|
||||
algorithm fit the window to the height of the last command-output but do not
|
||||
enlarge the compile-window over half of the frame-height and also not below
|
||||
`ecb-compile-window-height' (in lines)."
|
||||
(when (and (equal (selected-frame) ecb-frame)
|
||||
(ecb-compile-window-live-p)
|
||||
;; the buffer in the ecb-compile-window is a living eshell-buffer
|
||||
(member (window-buffer ecb-compile-window)
|
||||
ecb-eshell-buffer-list))
|
||||
|
||||
;; fit the window to the height of the last command-output but do not
|
||||
;; enlarge the compile-window over half of the frame-height and also not
|
||||
;; below `ecb-compile-window-height' (in lines).
|
||||
(when (and ecb-eshell-fit-window-to-command-output
|
||||
(integer-or-marker-p ecb-eshell-pre-command-point))
|
||||
(let* ((compile-window-height-lines
|
||||
(ecb-normalize-number ecb-compile-window-height
|
||||
(1- (frame-height))))
|
||||
(ecb-enlarged-compilation-window-max-height
|
||||
(max (min (with-current-buffer (window-buffer ecb-compile-window)
|
||||
;; we want to see the old command line too and 2
|
||||
;; must be added because we have a modeline and one
|
||||
;; empty line cause of the (recenter -2) in
|
||||
;; `ecb-eshell-recenter'. For XEmacs it would be
|
||||
;; better to check if a horiz. scrollbar is used.
|
||||
;; This causes the one line more we need for XEmacs
|
||||
(+ (if ecb-running-xemacs 4 3)
|
||||
(count-lines ecb-eshell-pre-command-point
|
||||
(point))))
|
||||
(/ (1- (frame-height)) 2))
|
||||
compile-window-height-lines)))
|
||||
(ecb-toggle-compile-window-height 1)
|
||||
(ecb-eshell-recenter))
|
||||
|
||||
;;reset
|
||||
(setq ecb-eshell-pre-command-point nil))))
|
||||
|
||||
|
||||
(defun ecb-eshell-auto-activate-hook()
|
||||
"Activate the eshell when ECB is activated. See `ecb-eshell-auto-activate'."
|
||||
(when ecb-eshell-auto-activate
|
||||
(ignore-errors (eshell))))
|
||||
|
||||
(defun ecb-eshell-window-size-change(frame)
|
||||
"Called when we change window sizes so that the eshell can resize."
|
||||
(when (and ecb-minor-mode
|
||||
(equal frame ecb-frame))
|
||||
(ignore-errors (ecb-eshell-recenter))))
|
||||
|
||||
(add-hook 'ecb-activate-hook 'ecb-eshell-auto-activate-hook)
|
||||
|
||||
(silentcomp-provide 'ecb-eshell)
|
||||
|
||||
;;; ecb-eshell.el ends here
|
|
@ -1,560 +0,0 @@
|
|||
;;; ecb-examples.el --- examples for using ECB with Elisp
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2002
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Contains the code for some examples mentioned in the online-help.
|
||||
;; This is a full working layout-example to demonstrate how to program
|
||||
;; complete new special windows/buffers, add them to a layout and synchronize
|
||||
;; it with the edit-window of ECB.
|
||||
;;
|
||||
;; To test this example just do:
|
||||
;; 1. Start ECB
|
||||
;; 2. Load ecb-examples.el into (X)Emacs: (require 'ecb-examples)
|
||||
;; 3. Call `ecb-show-layout-help' and insert "example-layout1" as layout name
|
||||
;; to see the outline of the test layout and get information about the
|
||||
;; special windows of this layout.
|
||||
;; 4. Call `ecb-examples-activate'.
|
||||
;; 5. Play around with the new layout and test it.
|
||||
;; 6. Call `ecb-examples-deactivate'.
|
||||
;;
|
||||
;; The intention of this example is to be a skeleton and pattern for other
|
||||
;; packages which want to use the layout-engine of ECB do display their own
|
||||
;; information. For example graphical debuggers (like JDEbug of JDEE) could be
|
||||
;; made this way.
|
||||
|
||||
;;; History
|
||||
;;
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
|
||||
;;; Code
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; --- Some requirements we always need if using the ECB layout-engine -------
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
(require 'ecb-util)
|
||||
(require 'ecb-layout)
|
||||
(require 'ecb-common-browser)
|
||||
|
||||
(eval-when-compile
|
||||
;; to avoid compiler grips
|
||||
(require 'cl))
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; --- Code for the bufferinfo buffer ----------------------------------------
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
;; Normally we should have some options the user can customize
|
||||
|
||||
;; Lets define an own customize-group
|
||||
(defgroup ecb-examples nil
|
||||
"Settings for the bufferinfo example in the Emacs code browser."
|
||||
:group 'ecb-examples-bufferinfo
|
||||
:prefix "ecb-")
|
||||
|
||||
;; The following three options are typical for a special ECB-buffer which
|
||||
;; should be synchronized with current buffer in the edit-area.
|
||||
|
||||
;; The :type of the first two options is essential and MUST NOT be defined
|
||||
;; different, because the macro `defecb-autocontrol/sync-function' and the
|
||||
;; function `ecb-activate-ecb-autocontrol-function' expects exactly this
|
||||
;; option-type!
|
||||
|
||||
;; An own hook running after synchronizing is not essential but mostly useful
|
||||
;; for users who wants to do some own stuff.
|
||||
|
||||
(defcustom ecb-examples-bufferinfo-buffer-sync 'basic
|
||||
"*Synchronize the bufferinfo buffer automatically with current edit buffer.
|
||||
|
||||
If 'always then the synchronization takes place always a buffer changes in the
|
||||
edit window, if nil then never. If a list of major-modes then only if the
|
||||
`major-mode' of the new buffer belongs NOT to this list.
|
||||
|
||||
If the special value 'basic is set then ECB uses the setting of the option
|
||||
`ecb-basic-buffer-sync'.
|
||||
|
||||
IMPORTANT NOTE: Every time the synchronization is done the hook
|
||||
`ecb-bufferinfo-buffer-sync-hook' is evaluated."
|
||||
:group 'ecb-examples-bufferinfo
|
||||
:type '(radio :tag "Synchronize ECBs example bufferino buffer"
|
||||
(const :tag "use basic value" :value basic)
|
||||
(const :tag "Always" :value always)
|
||||
(const :tag "Never" nil)
|
||||
(repeat :tag "Not with these modes"
|
||||
(symbol :tag "mode"))))
|
||||
|
||||
(defcustom ecb-examples-bufferinfo-buffer-sync-delay 'basic
|
||||
"*Time Emacs must be idle before the bufferinfo-buffer is synchronized.
|
||||
Synchronizing is done with the current source displayed in the edit window. If
|
||||
nil then there is no delay, means synchronization takes place immediately. A
|
||||
small value of about 0.25 seconds saves CPU resources and you get even though
|
||||
almost the same effect as if you set no delay.
|
||||
|
||||
If the special value 'basic is set then ECB uses the setting of the option
|
||||
`ecb-basic-buffer-sync-delay'"
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "use basic value" :value basic)
|
||||
(const :tag "No synchronizing delay" :value nil)
|
||||
(number :tag "Idle time before synchronizing" :value 2))
|
||||
:set (function (lambda (symbol value)
|
||||
(set symbol value)
|
||||
(if (and (boundp 'ecb-minor-mode)
|
||||
(featurep 'ecb-examples)
|
||||
ecb-minor-mode)
|
||||
(ecb-activate-ecb-autocontrol-function
|
||||
value 'ecb-examples-bufferinfo-buffer-sync))))
|
||||
:initialize 'custom-initialize-default)
|
||||
|
||||
(defcustom ecb-examples-bufferinfo-buffer-sync-hook nil
|
||||
"Hook run at the end of `ecb-examples-bufferinfo-buffer-sync'.
|
||||
See documentation of `ecb-examples-bufferinfo-buffer-sync' for conditions when
|
||||
synchronization takes place and so in turn these hooks are evaluated.
|
||||
|
||||
Preconditions for such a hook:
|
||||
- Current buffer is the buffer of the currently selected
|
||||
edit-window.
|
||||
- The bufferinfo-buffer is displayed in a visible window of the
|
||||
ecb-frame \(so no check for visibilty of the bufferinfo-buffer in
|
||||
the ecb-frame is necessary in a hook function)
|
||||
|
||||
Postcondition for such a hook:
|
||||
Point must stay in the same edit-window as before evaluating the hook.
|
||||
|
||||
Important note: If the option
|
||||
`ecb-examples-bufferinfo-buffer-sync' is not nil the function
|
||||
`ecb-examples-bufferinfo-buffer-sync' is running either every
|
||||
time Emacs is idle or even after every command \(see
|
||||
`ecb-examples-bufferinfo-buffer-sync-delay'). So if the
|
||||
bufferinfo-buffer is displayed in a window of the ecb-frame \(see
|
||||
preconditions above) these hooks can be really called very often!
|
||||
Therefore each function of this hook should/must check in an
|
||||
efficient way at beginning if its task have to be really
|
||||
performed and then do them only if really necessary! Otherwise
|
||||
performance of Emacs could slow down dramatically!"
|
||||
:group 'ecb-analyse
|
||||
:type 'hook)
|
||||
|
||||
;; --------------- internals for bufferinfo-buffer -------------------
|
||||
|
||||
|
||||
(defconst ecb-examples-bufferinfo-buffer-name " *ECB buffer info*")
|
||||
(defvar ecb-examples-bufferinfo-last-file-buffer nil)
|
||||
|
||||
;; Two helper functions for displaying infos in a special buffer
|
||||
|
||||
(defun ecb-examples-print-file-attributes (buffer filename)
|
||||
"Insert in buffer BUFFER some file-information about FILENAME."
|
||||
(ecb-with-readonly-buffer buffer
|
||||
(erase-buffer)
|
||||
(insert (format "Bufferinfo for %s:\n\n" filename))
|
||||
(let* ((attributes (file-attributes filename))
|
||||
(type (format "Type: %s\n" (cond ((null (nth 0 attributes))
|
||||
"File")
|
||||
((equal (nth 0 attributes) t)
|
||||
"Directory")
|
||||
((stringp (nth 0 attributes))
|
||||
(concat "Link to "
|
||||
(nth 0 attributes))))))
|
||||
(size (format "Size: %d\n" (nth 7 attributes)))
|
||||
(modes (format "Modes: %s\n" (nth 8 attributes))))
|
||||
(insert type size modes))))
|
||||
|
||||
|
||||
(defun ecb-examples-print-non-filebuffer (buffer buffer-name)
|
||||
"Insert in buffer BUFFER a small message for buffer with name BUFFER-NAME."
|
||||
(ecb-with-readonly-buffer buffer
|
||||
(erase-buffer)
|
||||
(insert (format "Bufferinfo for buffer %s\n\n" buffer-name))
|
||||
(insert "This is a not a filebuffer, so there are no\n")
|
||||
(insert "informations available.")))
|
||||
|
||||
;; IMPORTANT: The main synchronizing function must be defined with the macro
|
||||
;; `defecb-autocontrol/sync-function'!
|
||||
|
||||
(defecb-autocontrol/sync-function ecb-examples-bufferinfo-buffer-sync
|
||||
ecb-examples-bufferinfo-buffer-name ecb-examples-bufferinfo-buffer-sync t
|
||||
"Synchronizes the buffer-info buffer with current source if changed.
|
||||
Can be called interactively but normally this should not be necessary because
|
||||
it will be called autom. by the internal synchronizing mechanism of ECB."
|
||||
|
||||
;; The macro `defecb-autocontrol/sync-function' does a lot for our
|
||||
;; conveniance:
|
||||
|
||||
;; 1) here we can be sure that the buffer with name
|
||||
;; `ecb-examples-bufferinfo-buffer-name' is displayed in a window of
|
||||
;; `ecb-frame' because the macro `defecb-autocontrol/sync-function'
|
||||
;; encapsulates automatically the following code within
|
||||
;; `ecb-do-if-buffer-visible-in-ecb-frame' and this macro binds locally the
|
||||
;; variables visible-buffer and visible-window: visible-window:=
|
||||
;; (get-buffer-window ecb-examples-bufferinfo-buffer-name) visible-buffer:=
|
||||
;; (get-buffer ecb-examples-bufferinfo-buffer-name)
|
||||
|
||||
;; 2) The macro `defecb-autocontrol/sync-function' automatically takes care of
|
||||
;; the setting of option `ecb-examples-bufferinfo-buffer-sync' and runs the
|
||||
;; following code only when the related conditions are true
|
||||
|
||||
;; 3) The generated function has one optional argument FORCE which can be used
|
||||
;; in the code below.
|
||||
|
||||
;; 4) The macro `defecb-autocontrol/sync-function' makes this synchronizing
|
||||
;; function interactive
|
||||
|
||||
;; For details please read the documentation of
|
||||
;; `defecb-autocontrol/sync-function'!
|
||||
|
||||
;; synchronize only when point stays in one of the edit-window.
|
||||
(when (ecb-point-in-edit-window-number)
|
||||
|
||||
;; we need the file-name of indirect-buffers too (if the base-buffer is a
|
||||
;; file-buffer), therefore we use `ecb-buffer-file-name' (see the docstring
|
||||
;; of this function)
|
||||
(let ((filename (ecb-buffer-file-name (current-buffer))))
|
||||
|
||||
(if (and filename (ecb-buffer-or-file-readable-p filename))
|
||||
|
||||
;; synchronizing for real filesource-buffers or indirect buffers of
|
||||
;; real file buffers
|
||||
|
||||
;; Let us be smart: We synchronize only if sourcebuffer has changed
|
||||
;; or if the argument FORCE is not nil
|
||||
(when (or force
|
||||
(not (equal (current-buffer)
|
||||
ecb-examples-bufferinfo-last-file-buffer)))
|
||||
;; set new last-file-buffer so we can check next time if changed
|
||||
(setq ecb-examples-bufferinfo-last-file-buffer (current-buffer))
|
||||
;; we display the file-infos for current source-buffer
|
||||
(ecb-examples-print-file-attributes visible-buffer filename))
|
||||
|
||||
;; what should we do for non file buffers like help-buffers etc...
|
||||
(setq ecb-examples-bufferinfo-last-file-buffer nil)
|
||||
(ecb-examples-print-non-filebuffer visible-buffer
|
||||
(buffer-name (current-buffer)))))
|
||||
|
||||
;; Now lets run the hooks in `ecb-examples-bufferinfo-buffer-sync-hook'
|
||||
(run-hooks 'ecb-examples-bufferinfo-buffer-sync-hook)))
|
||||
|
||||
|
||||
;; Two conveniance-commands for the user
|
||||
|
||||
(defun ecb-maximize-bufferinfo-window ()
|
||||
"Maximize the bufferinfo-window.
|
||||
I.e. delete all other ECB-windows, so only one ECB-window and the
|
||||
edit-window\(s) are visible \(and maybe a compile-window). Works
|
||||
also if the ECB-analyse-window is not visible in current layout."
|
||||
(interactive)
|
||||
(ecb-maximize-ecb-buffer ecb-examples-bufferinfo-buffer-name t))
|
||||
|
||||
(defun ecb-goto-bufferinfo-window ()
|
||||
"Make the bufferinfo-window the current window."
|
||||
(interactive)
|
||||
(ecb-goto-ecb-window ecb-examples-bufferinfo-buffer-name))
|
||||
|
||||
|
||||
;; The "window-dedicator"-function for the bufferinfo-buffer. See
|
||||
;; `defecb-window-dedicator-to-ecb-buffer' for an explanation.
|
||||
|
||||
(defecb-window-dedicator-to-ecb-buffer ecb-examples-set-bufferinfo-buffer
|
||||
ecb-examples-bufferinfo-buffer-name nil
|
||||
"Set the buffer in the current window to the bufferinfo-buffer and make this
|
||||
window dedicated for this buffer. Makes the buffer read-only."
|
||||
;; activating the synchronization of the bufferinfo-window:
|
||||
;; `ecb-activate-ecb-autocontrol-function' takes care of the possible
|
||||
;; settings in `ecb-examples-bufferinfo-buffer-sync-delay'. Therefore we do
|
||||
;; it here because then changes in ecb-examples-bufferinfo-buffer-sync-delay
|
||||
;; are taken into account each time the bufferinfo buffer is set in the
|
||||
;; layout (after each hiding/showing the ecb-window, each redrawing the
|
||||
;; layout deactivating/activating ECB)
|
||||
(ecb-activate-ecb-autocontrol-function ecb-examples-bufferinfo-buffer-sync-delay
|
||||
'ecb-examples-bufferinfo-buffer-sync)
|
||||
|
||||
(switch-to-buffer (get-buffer-create ecb-examples-bufferinfo-buffer-name))
|
||||
(setq buffer-read-only t))
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; --- Code for the action buffer --------------------------------------------
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
(defconst ecb-examples-action-buffer-name " *ECB action buffer*")
|
||||
(defvar ecb-examples-action-buffer-keymap nil)
|
||||
|
||||
|
||||
|
||||
;; Two helper functions for creating a read-only buffer with a special local
|
||||
;; key-map.
|
||||
|
||||
(defun ecb-examples-insert-text-in-action-buffer (text)
|
||||
"Insert TEXT at point and make it highlight-able for mouse-movement over the
|
||||
text."
|
||||
(let ((p (point)))
|
||||
(insert text)
|
||||
(put-text-property p (+ p (length text)) 'mouse-face 'highlight)))
|
||||
|
||||
(defun ecb-examples-action-buffer-create ()
|
||||
"Return the action-buffer with name `ecb-examples-action-buffer-name' If
|
||||
the buffer does not exist it will be created. The buffer is read only,
|
||||
contains two buttons \[prior] and \[next] and mouse-2 calls
|
||||
`ecb-examples-action-buffer-clicked'."
|
||||
(save-excursion
|
||||
(if (get-buffer ecb-examples-action-buffer-name)
|
||||
(get-buffer ecb-examples-action-buffer-name)
|
||||
(let ((nop (function (lambda() (interactive)))))
|
||||
(set-buffer (get-buffer-create ecb-examples-action-buffer-name))
|
||||
|
||||
;; we setup a local key-map
|
||||
|
||||
(make-local-variable 'ecb-examples-action-buffer-keymap)
|
||||
(setq ecb-examples-action-buffer-keymap (make-sparse-keymap))
|
||||
|
||||
;; define mouse-2 with `ecb-examples-action-buffer-clicked'
|
||||
(define-key ecb-examples-action-buffer-keymap
|
||||
(if ecb-running-xemacs '(button2) [down-mouse-2])
|
||||
'ecb-examples-action-buffer-clicked)
|
||||
|
||||
;; nop operations for the other mouse-2 operations with Emacs
|
||||
(define-key ecb-examples-action-buffer-keymap [mouse-2] nop)
|
||||
(define-key ecb-examples-action-buffer-keymap [double-mouse-2] nop)
|
||||
(define-key ecb-examples-action-buffer-keymap [triple-mouse-2] nop)
|
||||
|
||||
(use-local-map ecb-examples-action-buffer-keymap)
|
||||
|
||||
;; insert the action buttons [prior] and [next] and make it read-only
|
||||
|
||||
(ecb-with-readonly-buffer (current-buffer)
|
||||
(erase-buffer)
|
||||
(ecb-examples-insert-text-in-action-buffer "[prior]")
|
||||
(insert "\n")
|
||||
(ecb-examples-insert-text-in-action-buffer "[next]")
|
||||
(insert "\n"))
|
||||
|
||||
(current-buffer)))))
|
||||
|
||||
|
||||
|
||||
;; The function which performs the actions in the action-buffer
|
||||
|
||||
(defun ecb-examples-action-buffer-clicked (e)
|
||||
"Perform the right action for the mouse-click.
|
||||
If the user clicks onto \[prior] the buffer in the edit-window is scrolled up,
|
||||
if clicks onto \[next] the buffer in the edit-window is scrolled down.
|
||||
Otherwise nothing will be done."
|
||||
(interactive "e")
|
||||
(mouse-set-point e)
|
||||
(let ((line (ecb-buffer-substring (ecb-line-beginning-pos) (ecb-line-end-pos))))
|
||||
(save-match-data
|
||||
(cond ((string-match "prior" line)
|
||||
(ecb-select-edit-window)
|
||||
(call-interactively 'scroll-down))
|
||||
((string-match "next" line)
|
||||
(ecb-select-edit-window)
|
||||
(call-interactively 'scroll-up))
|
||||
(t nil)))))
|
||||
|
||||
|
||||
;; Two conveniance-commands for the user
|
||||
|
||||
(defun ecb-maximize-action-window ()
|
||||
"Maximize the action-window.
|
||||
I.e. delete all other ECB-windows, so only one ECB-window and the
|
||||
edit-window\(s) are visible \(and maybe a compile-window). Works
|
||||
also if the ECB-analyse-window is not visible in current layout."
|
||||
(interactive)
|
||||
(ecb-maximize-ecb-buffer ecb-examples-action-buffer-name t))
|
||||
|
||||
(defun ecb-goto-action-window ()
|
||||
"Make the action-window the current window."
|
||||
(interactive)
|
||||
(ecb-goto-ecb-window ecb-examples-action-buffer-name))
|
||||
|
||||
|
||||
;; The "window-dedicator"-function for the action-buffer. See
|
||||
;; `defecb-window-dedicator-to-ecb-buffer' for an explanation.
|
||||
|
||||
(defecb-window-dedicator-to-ecb-buffer ecb-examples-set-action-buffer
|
||||
ecb-examples-action-buffer-name nil
|
||||
"Set the buffer in the current window to the action-buffer and make this
|
||||
window dedicated for this buffer."
|
||||
(switch-to-buffer (buffer-name (ecb-examples-action-buffer-create))))
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; --- The layout definition with a bufferinfo- and a action-buffer -----------
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
(ecb-layout-define "example-layout1" top
|
||||
"This function creates the following layout:
|
||||
|
||||
-------------------------------------------------------
|
||||
|Bufferinfo for <filename>: |[prior] |
|
||||
|Type: file |[next] |
|
||||
|Size: 23456 | |
|
||||
|Modes: rw-rw-rw- | |
|
||||
|-----------------------------------------------------|
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| Edit |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
-------------------------------------------------------
|
||||
| |
|
||||
| Compilation |
|
||||
| |
|
||||
-------------------------------------------------------
|
||||
|
||||
If you have not set a compilation-window in `ecb-compile-window-height' then
|
||||
the layout contains no persistent compilation window and the other windows get a
|
||||
little more place.
|
||||
|
||||
The top-left window always displays informations about the current buffer in
|
||||
the selected edit-window. This window demonstrates how autom. synchronizing
|
||||
a special window/buffer of a layout with current edit-window.
|
||||
|
||||
The top-right window offers two buttons which can be used with the middle
|
||||
mouse-button to scroll the edit-window. This is not very senseful but it
|
||||
demonstrates how to drive the edit-window with actions performed in a special
|
||||
window/buffer of a layout."
|
||||
|
||||
;; dedicating the bufferinfo window to the bufferinfo-buffer
|
||||
(ecb-examples-set-bufferinfo-buffer)
|
||||
|
||||
;; creating the action-window
|
||||
(ecb-split-hor 0.75)
|
||||
|
||||
;; dedicating the action window to the action-buffer
|
||||
(ecb-examples-set-action-buffer)
|
||||
|
||||
;; selecting the edit-window
|
||||
(select-window (next-window)))
|
||||
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; --- (De)activating the new layout and the synchronization -----------------
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
;; Code for saving and restoring the state before activation
|
||||
|
||||
(defvar ecb-examples-preact-layout nil)
|
||||
(defvar ecb-examples-preact-windows-height nil)
|
||||
(defvar ecb-examples-preact-compile-window-height nil)
|
||||
(defun ecb-examples-preactivation-state(action)
|
||||
(cond ((equal action 'save)
|
||||
(setq ecb-examples-preact-layout
|
||||
ecb-layout-name
|
||||
ecb-examples-preact-windows-height
|
||||
ecb-windows-height
|
||||
ecb-examples-preact-compile-window-height
|
||||
ecb-compile-window-height))
|
||||
((equal action 'restore)
|
||||
(setq ecb-layout-name
|
||||
ecb-examples-preact-layout
|
||||
ecb-windows-height
|
||||
ecb-examples-preact-windows-height
|
||||
ecb-compile-window-height
|
||||
ecb-examples-preact-compile-window-height))))
|
||||
|
||||
|
||||
|
||||
;; Activation of the example. Because a set of new special windows integrated
|
||||
;; in a new layout is often just the GUI of a complete tool (like a graphical
|
||||
;; debugger) we demonstrate here the complete activation and deactivation of
|
||||
;; such a tool or at least of the tool-GUI. We decide that the GUI of our
|
||||
;; example tool needs a compile-window with height 5 lines and the height of
|
||||
;; the special windows "row" on top should be exactly 6 lines (normally width
|
||||
;; and height of the special windows should be a fraction of the frame, but
|
||||
;; here we use 6 lines; You can change the code below to use a frame-fraction
|
||||
;; of 0.2 instead of 6 hard lines, just try it!
|
||||
|
||||
(defun ecb-examples-activate ()
|
||||
"Activate the new layout \"example-layout1\".
|
||||
Set `ecb-compile-window-height' to 5 and `ecb-windows-height' to 6. The
|
||||
preactivation-state is saved and will be restored by
|
||||
`ecb-examples-deactivate'."
|
||||
(interactive)
|
||||
|
||||
(assert (featurep 'ecb) nil
|
||||
"ECB must be loaded!")
|
||||
(assert ecb-minor-mode nil
|
||||
"ECB must be activated!")
|
||||
(assert (equal (selected-frame) ecb-frame) nil
|
||||
"The ECB-frame must be selected!")
|
||||
(assert (not (ecb-string= ecb-layout-name "example-layout1")) nil
|
||||
"The examples-layout1 is already active!")
|
||||
|
||||
;; saving the state
|
||||
(ecb-examples-preactivation-state 'save)
|
||||
|
||||
;; switch to our prefered layout
|
||||
(setq ecb-windows-height 6)
|
||||
(setq ecb-compile-window-height 8)
|
||||
(let ((ecb-change-layout-preserves-compwin-state nil))
|
||||
;; activating the synchronization of the bufferinfo-window is done in the
|
||||
;; dedicator-function (see `ecb-examples-set-bufferinfo-buffer' for the
|
||||
;; reason). So the synchronizing will be activated implicitly with the
|
||||
;; layout-switch because this redraws the layout and this calls all
|
||||
;; dedicator-functions.
|
||||
(ecb-layout-switch "example-layout1")))
|
||||
|
||||
|
||||
;; Deactivation of the example
|
||||
|
||||
(defun ecb-examples-deactivate ()
|
||||
"Deactivate the new layout \"example-layout1\".
|
||||
Stops `ecb-examples-bufferinfo-buffer-sync' and restore the state
|
||||
as before activation."
|
||||
(interactive)
|
||||
|
||||
(assert (featurep 'ecb) nil
|
||||
"ECB must be loaded!")
|
||||
(assert ecb-minor-mode nil
|
||||
"ECB must be activated!")
|
||||
(assert (equal (selected-frame) ecb-frame) nil
|
||||
"The ECB-frame must be selected!")
|
||||
(assert (ecb-string= ecb-layout-name "example-layout1") nil
|
||||
"The example-layout1 is not active!")
|
||||
|
||||
(ecb-stop-autocontrol/sync-function 'ecb-examples-bufferinfo-buffer-sync)
|
||||
|
||||
(ecb-examples-preactivation-state 'restore)
|
||||
|
||||
(ecb-layout-switch ecb-layout-name))
|
||||
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; --- Providing the examples ------------------------------------------------
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
(provide 'ecb-examples)
|
||||
|
||||
;; ecb-examples.el ends here
|
|
@ -1,768 +0,0 @@
|
|||
;;; ecb-face.el --- all face-options of ECB
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Kevin A. Burton <burton@openprivacy.org>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2001
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file contains all options with type 'face and all face-definitions of
|
||||
;; ECB.
|
||||
|
||||
;;; History
|
||||
;;
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
;;; Code
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(silentcomp-defun set-face-parent)
|
||||
(silentcomp-defun make-face-bold)
|
||||
(silentcomp-defun make-face)
|
||||
(silentcomp-defun set-face-foreground)
|
||||
|
||||
(defgroup ecb-face-options nil
|
||||
"Settings for all faces used in ECB."
|
||||
:group 'ecb
|
||||
:prefix "ecb-")
|
||||
|
||||
(defgroup ecb-faces nil
|
||||
"Definitions of all ECB-faces"
|
||||
:group 'ecb-face-options
|
||||
:group 'faces
|
||||
:prefix "ecb-")
|
||||
|
||||
(defmacro ecb-face-default (&optional height bold-p italic-p
|
||||
inherit
|
||||
fg-light-col fg-dark-col
|
||||
bg-light-col bg-dark-col
|
||||
fg-rest bg-rest
|
||||
reverse-video-p)
|
||||
"Macro for setting default values for an ECB face.
|
||||
The parameters are set for the following display-types:
|
||||
- ((class color) (background light)): HEIGHT, BOLD-P, ITALIC-P, INHERIT
|
||||
FG-LIGHT-COL, BG-LIGHT-COL
|
||||
- ((class color) (background dark)): HEIGHT, BOLD-P, ITALIC-P, INHERIT
|
||||
FG-DARK-COL, BG-DARK-COL
|
||||
- t: HEIGHT, BOLD-P, ITALIC-P, INHERIT, FG-REST, BG-REST, REVERSE-VIDEO."
|
||||
`(list (list '((class color) (background light))
|
||||
(append (if (and ,height (not ecb-running-xemacs)) (list :height ,height))
|
||||
(if ,bold-p (if (not ecb-running-xemacs)
|
||||
(list :weight 'bold)
|
||||
(list :bold t)))
|
||||
(if ,italic-p (if (not ecb-running-xemacs)
|
||||
(list :slant 'italic)
|
||||
(list :italic t)))
|
||||
(if (and ,inherit (not ecb-running-xemacs)) (list :inherit ,inherit))
|
||||
(if ,fg-light-col (list :foreground ,fg-light-col))
|
||||
(if ,bg-light-col (list :background ,bg-light-col))))
|
||||
(list '((class color) (background dark))
|
||||
(append (if (and ,height (not ecb-running-xemacs)) (list :height ,height))
|
||||
(if ,bold-p (if (not ecb-running-xemacs)
|
||||
(list :weight 'bold)
|
||||
(list :bold t)))
|
||||
(if ,italic-p (if (not ecb-running-xemacs)
|
||||
(list :slant 'italic)
|
||||
(list :italic t)))
|
||||
(if (and ,inherit (not ecb-running-xemacs)) (list :inherit ,inherit))
|
||||
(if ,fg-dark-col (list :foreground ,fg-dark-col))
|
||||
(if ,bg-dark-col (list :background ,bg-dark-col))))
|
||||
(list 't (append (if (and ,height (not ecb-running-xemacs)) (list :height ,height))
|
||||
(if ,bold-p (if (not ecb-running-xemacs)
|
||||
(list :weight 'bold)
|
||||
(list :bold t)))
|
||||
(if ,italic-p (if (not ecb-running-xemacs)
|
||||
(list :slant 'italic)
|
||||
(list :italic t)))
|
||||
(if (and ,inherit (not ecb-running-xemacs)) (list :inherit ,inherit))
|
||||
(if ,fg-rest (list :foreground ,fg-rest))
|
||||
(if ,bg-rest (list :foreground ,bg-rest))
|
||||
(if ,reverse-video-p (list :reverse-video t))))))
|
||||
|
||||
(defface ecb-default-general-face (ecb-face-default 1.0)
|
||||
"*Basic face for all ECB tree-buffers.
|
||||
It´s recommended to define here the font-family, the font-size, the basic
|
||||
color etc.
|
||||
|
||||
In GNU Emacs 21.X all faces \(even the face 'ecb-default-highlight-face') used
|
||||
in the ECB tree-buffers inherit from this face. Therefore the default
|
||||
attributes like font etc. of a face used in a tree-buffer can be very easily
|
||||
changed with face 'ecb-default-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature but the options
|
||||
`ecb-directories-general-face', `ecb-sources-general-face',
|
||||
`ecb-methods-general-face' and `ecb-history-general-face' offer the choice to
|
||||
use the face 'ecb-default-general-face' so also with XEmacs and GNU Emacs 20.X
|
||||
the basic face-settings can be easily changed just by customizing the face
|
||||
'ecb-default-general-face'!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-tree-guide-line-face (ecb-face-default 1.0 nil nil
|
||||
'ecb-default-general-face
|
||||
"grey" "gray")
|
||||
"*Face for the guide-lines in the tree-buffers."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-tree-guide-line-face 'ecb-tree-guide-line-face
|
||||
"*Face for the guide-lines in the tree-buffers."
|
||||
:group 'ecb-face-options)
|
||||
|
||||
(defface ecb-directories-general-face (ecb-face-default 1.0 nil nil
|
||||
'ecb-default-general-face)
|
||||
"*Basic face for the ECB directories buffer.
|
||||
It´s recommended to define here the font-family, the font-size, the basic
|
||||
color etc."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-directories-general-face 'ecb-default-general-face
|
||||
"*Basic face for the ECB directories buffer.
|
||||
This defines the basic face the whole directory buffer should displayed with.
|
||||
If the face 'ecb-default-general-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-general-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-directories
|
||||
:type '(radio (const :tag "Use ecb-default-general-face"
|
||||
:value ecb-default-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-directories-general-face)))
|
||||
|
||||
(defface ecb-sources-general-face (ecb-face-default 1.0 nil nil
|
||||
'ecb-default-general-face)
|
||||
"*Basic face for the ECB sources buffer.
|
||||
It´s recommended to define here the font-family, the font-size, the basic
|
||||
color etc."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-sources-general-face 'ecb-default-general-face
|
||||
"*Basic face for the ECB sources buffer.
|
||||
This defines the basic face the whole sources buffer should displayed with. If
|
||||
the face 'ecb-default-general-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-general-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-sources
|
||||
:type 'face
|
||||
:type '(radio (const :tag "Use ecb-default-general-face"
|
||||
:value ecb-default-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-sources-general-face)))
|
||||
|
||||
(defface ecb-methods-general-face (ecb-face-default 1.0 nil nil
|
||||
'ecb-default-general-face)
|
||||
"*Basic face for the ECB methods buffer.
|
||||
It´s recommended to define here the font-family, the font-size, the basic
|
||||
color etc."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-methods-general-face 'ecb-default-general-face
|
||||
"*Basic face for the ECB methods buffer.
|
||||
This defines the basic face the whole methods buffer should displayed with. If
|
||||
the face 'ecb-default-general-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-general-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-methods
|
||||
:type '(radio (const :tag "Use ecb-default-general-face"
|
||||
:value ecb-default-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-methods-general-face)))
|
||||
|
||||
(defface ecb-history-general-face (ecb-face-default 1.0 nil nil
|
||||
'ecb-default-general-face)
|
||||
"*Basic face for the ECB history buffer.
|
||||
It´s recommended to define here the font-family, the font-size, the basic
|
||||
color etc."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-history-general-face 'ecb-default-general-face
|
||||
"*Basic face for the ECB history buffer.
|
||||
This defines the basic face the whole history buffer should displayed with. If
|
||||
the face 'ecb-default-general-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-general-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-history
|
||||
:type '(radio (const :tag "Use ecb-default-general-face"
|
||||
:value ecb-default-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-history-general-face)))
|
||||
|
||||
(defface ecb-history-bucket-node-face (ecb-face-default nil nil nil
|
||||
'ecb-bucket-node-face)
|
||||
"*Face used for displaying a bucket-node in the ECB-history-buffer.
|
||||
|
||||
In GNU Emacs 21.X this face inherits from the face 'ecb-bucket-node-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-history-buffer should be displayed with the same basic
|
||||
attributes set by 'ecb-bucket-node-face' this set of basic attributes have
|
||||
to be set in 'ecb-history-bucket-node-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-history-bucket-node-face 'ecb-history-bucket-node-face
|
||||
"*Basic face for displaying a bucket-node in the ECB-history-buffer.
|
||||
This defines the basic face for the bucket-nodes used to bucketize the
|
||||
history-entries as defined with the option `ecb-history-make-buckets'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-history
|
||||
:type '(radio (const :tag "Use ecb-bucket-node-face"
|
||||
:value ecb-bucket-node-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-history-bucket-node-face)))
|
||||
|
||||
(defface ecb-history-bucket-node-dir-soure-path-face (ecb-face-default nil nil nil
|
||||
'ecb-history-bucket-node-face
|
||||
;; DarkCyan would be good too
|
||||
"DarkMagenta"
|
||||
"DarkMagenta")
|
||||
"*Face used for displaying the source-path part in a directory-bucket.
|
||||
|
||||
In GNU Emacs 21.X this face inherits from the face 'ecb-history-bucket-node-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-history-buffer should be displayed with the same basic
|
||||
attributes set by 'ecb-history-bucket-node-face' this set of basic attributes have
|
||||
to be set in 'ecb-history-bucket-node-dir-soure-path-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-history-bucket-node-dir-soure-path-face 'ecb-history-bucket-node-dir-soure-path-face
|
||||
"*Basic face for displaying the source-path part in a directory bucket.
|
||||
This defines the face for the source-path part in a bucket-node of the
|
||||
history-buffer if `ecb-history-make-buckets' is set to
|
||||
'directory-with-source-path. For all other values of
|
||||
`ecb-history-make-buckets' this option takes no effect.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-history
|
||||
:type '(radio (const :tag "Use ecb-history-bucket-node-face"
|
||||
:value ecb-history-bucket-node-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-history-bucket-node-dir-soure-path-face)))
|
||||
|
||||
(defface ecb-history-indirect-buffer-face (ecb-face-default nil nil t
|
||||
'ecb-history-general-face)
|
||||
"*Define a face for displaying indirect buffers in the history buffer.
|
||||
|
||||
In GNU Emacs 21.X this face inherits from the face 'ecb-history-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-history-buffer should be displayed with the same basic
|
||||
attributes set by 'ecb-history-general-face' this set of basic attributes have
|
||||
to be set in 'ecb-history-indirect-buffer-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-history-indirect-buffer-face 'ecb-history-indirect-buffer-face
|
||||
"*Face for indirect buffers in the history buffer."
|
||||
:group 'ecb-history
|
||||
:group 'ecb-face-options
|
||||
:type '(radio (const :tag "Use ecb-history-general-face"
|
||||
:value ecb-history-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-history-indirect-buffer-face)))
|
||||
|
||||
(defface ecb-history-dead-buffer-face (ecb-face-default nil nil nil
|
||||
'ecb-history-general-face
|
||||
"gray60"
|
||||
"gray60"
|
||||
nil nil
|
||||
nil "gray60")
|
||||
"*Define a face for history entries pointing to dead buffers.
|
||||
|
||||
In GNU Emacs 21.X this face inherits from the face 'ecb-history-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-history-buffer should be displayed with the same basic
|
||||
attributes set by 'ecb-history-general-face' this set of basic attributes have
|
||||
to be set in 'ecb-history-dead-buffer-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-history-dead-buffer-face 'ecb-history-dead-buffer-face
|
||||
"*Face for history entries pointing to dead buffers."
|
||||
:group 'ecb-history
|
||||
:group 'ecb-face-options
|
||||
:type '(radio (const :tag "Use ecb-history-general-face"
|
||||
:value ecb-history-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-history-dead-buffer-face)))
|
||||
|
||||
|
||||
(defface ecb-default-highlight-face (ecb-face-default nil nil nil
|
||||
nil ;'ecb-default-general-face
|
||||
"yellow" nil
|
||||
"cornflower blue" "magenta"
|
||||
nil nil t)
|
||||
"*Define basic face for highlighting the selected node in a tree-buffer.
|
||||
In GNU Emacs 21.X all highlighting faces in the ECB tree-buffers inherit from
|
||||
this face. Therefore the default attributes like font etc. of a face used in a
|
||||
tree-buffer for highlighting the current tag can be very easily changed with
|
||||
face 'ecb-default-highlight-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature but the options
|
||||
`ecb-directory-face', `ecb-source-face', `ecb-method-face' and
|
||||
`ecb-history-face' offer the choice to use the face
|
||||
'ecb-default-highlight-face' so also with XEmacs and GNU Emacs 20.X the basic
|
||||
face-settings can be easily changed just by customizing the face
|
||||
'ecb-default-highlight-face'!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-directory-face (ecb-face-default nil nil nil
|
||||
'ecb-default-highlight-face
|
||||
"yellow" nil
|
||||
"cornflower blue" "magenta"
|
||||
nil nil t)
|
||||
"*Define face used for highlighting current dir in directories buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-directory-face 'ecb-default-highlight-face
|
||||
"*Face used for highlighting current directory in the directories-buffer.
|
||||
If the face 'ecb-default-highlight-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-highlight-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-directories
|
||||
:type '(radio (const :tag "Use ecb-default-highlight-face"
|
||||
:value ecb-default-highlight-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-directory-face)))
|
||||
|
||||
(defface ecb-source-face (ecb-face-default nil nil nil
|
||||
'ecb-default-highlight-face
|
||||
"yellow" nil
|
||||
"cornflower blue" "magenta"
|
||||
nil nil t)
|
||||
"*Define face used for highlighting current source in the sources buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-source-face 'ecb-default-highlight-face
|
||||
"*Face used for highlighting current source in the sources buffer.
|
||||
If the face 'ecb-default-highlight-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-highlight-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-sources
|
||||
:type '(radio (const :tag "Use ecb-default-highlight-face"
|
||||
:value ecb-default-highlight-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-sources-face)))
|
||||
|
||||
(defface ecb-method-face (ecb-face-default nil nil nil
|
||||
'ecb-default-highlight-face
|
||||
"yellow" nil
|
||||
"cornflower blue" "magenta"
|
||||
nil nil t)
|
||||
"*Define face used for highlighting current tag in the methods buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-method-face 'ecb-default-highlight-face
|
||||
"*Face used for highlighting current tag in the methods buffer.
|
||||
If the face 'ecb-default-highlight-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-highlight-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-methods
|
||||
:type '(radio (const :tag "Use ecb-default-highlight-face"
|
||||
:value ecb-default-highlight-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-method-face)))
|
||||
|
||||
(defface ecb-method-non-semantic-face (ecb-face-default nil nil nil
|
||||
'ecb-methods-general-face
|
||||
"brown" "brown")
|
||||
"*Define face used for displaying tags of non-semantic-sources."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-method-non-semantic-face 'speedbar-tag-face
|
||||
"*Face used for for displaying tags of non-semantic-sources.
|
||||
Default is the face used by speedbar for tags.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-methods
|
||||
:type '(radio (const :tag "Use ecb-default-highlight-face"
|
||||
:value ecb-default-highlight-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-method-face)))
|
||||
|
||||
(defface ecb-history-face (ecb-face-default nil nil nil
|
||||
'ecb-default-highlight-face
|
||||
"yellow" nil
|
||||
"cornflower blue" "magenta"
|
||||
nil nil t)
|
||||
"*Define face used for highlighting current entry in the history buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-history-face 'ecb-default-highlight-face
|
||||
"*Face used for highlighting current entry in the history buffer.
|
||||
If the face 'ecb-default-highlight-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-highlight-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-history
|
||||
:type '(radio (const :tag "Use ecb-default-highlight-face"
|
||||
:value ecb-default-highlight-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-history-face)))
|
||||
|
||||
(defface ecb-analyse-face (ecb-face-default nil nil nil
|
||||
'ecb-default-highlight-face
|
||||
"yellow" nil
|
||||
"cornflower blue" "magenta"
|
||||
nil nil t)
|
||||
"*Define face used for highlighting current entry in the analyse buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-analyse-face 'ecb-default-highlight-face
|
||||
"*Face used for highlighting current entry in the analyse buffer.
|
||||
If the face 'ecb-default-highlight-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-highlight-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Use ecb-default-highlight-face"
|
||||
:value ecb-default-highlight-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-analyse-face)))
|
||||
|
||||
(defface ecb-analyse-general-face (ecb-face-default 1.0 nil nil
|
||||
'ecb-default-general-face)
|
||||
"*Basic face for the ECB analyse buffer.
|
||||
It´s recommended to define here the font-family, the font-size, the basic
|
||||
color etc."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-analyse-general-face 'ecb-default-general-face
|
||||
"*Basic face for the ECB analyse buffer.
|
||||
This defines the basic face the whole history buffer should displayed with. If
|
||||
the face 'ecb-default-general-face' is used then the display of all
|
||||
ECB-tree-buffers can be changed by modifying only the face
|
||||
'ecb-default-general-face'.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Use ecb-default-general-face"
|
||||
:value ecb-default-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-analyse-general-face)))
|
||||
|
||||
(defface ecb-analyse-bucket-element-face (ecb-face-default nil nil nil
|
||||
'ecb-analyse-general-face
|
||||
"brown")
|
||||
"*Face used for displaying elements of buckets in the ECB-analyse-buffer.
|
||||
|
||||
In GNU Emacs 21.X this face inherits from the face 'ecb-default-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-buffers should be displayed with the same basic
|
||||
attributes set by 'ecb-default-general-face' this set of basic attributes have
|
||||
to be set in 'ecb-analyse-bucket-node-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-analyse-bucket-element-face 'ecb-analyse-bucket-element-face
|
||||
"*Basic face for displaying elements of buckets in the ECB-analyse-buffer.
|
||||
This defines the basic face for the elements of category-buckets like Context,
|
||||
Prefix, Completions etc. in the ECB-analyse-buffer.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Use ecb-default-general-face"
|
||||
:value ecb-default-general-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-analyse-bucket-element-face)))
|
||||
|
||||
(defface ecb-analyse-bucket-node-face (ecb-face-default nil t nil
|
||||
'ecb-bucket-node-face)
|
||||
"*Face used for displaying a bucket-node in the ECB-analyse-buffer.
|
||||
|
||||
In GNU Emacs >= 21.X this face inherits from the face 'ecb-bucket-node-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-buffers should be displayed with the same basic
|
||||
attributes set by 'ecb-bucket-node-face' this set of basic attributes have
|
||||
to be set in 'ecb-analyse-bucket-node-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-analyse-bucket-node-face 'ecb-analyse-bucket-node-face
|
||||
"*Basic face for displaying a bucket-node in the ECB-analyse-buffer.
|
||||
This defines the basic face for the bucket-nodes like Context, Prefix,
|
||||
Completions etc. in the ECB-analyse-buffer.
|
||||
|
||||
Changes take first effect after finishing and reactivating ECB!"
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-analyse
|
||||
:type '(radio (const :tag "Use ecb-bucket-node-face"
|
||||
:value ecb-bucket-node-face)
|
||||
(face :tag "Special face"
|
||||
:value ecb-analyse-bucket-node-face)))
|
||||
|
||||
(defface ecb-symboldef-symbol-face (ecb-face-default nil t nil
|
||||
'ecb-default-general-face)
|
||||
"*Define face used for the symbol itself in the symboldef-buffer.
|
||||
|
||||
In GNU Emacs >= 21.X this face inherits from the face 'ecb-default-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-buffers should be displayed with the same basic
|
||||
attributes set by 'ecb-default-general-face' this set of basic attributes have
|
||||
to be set in 'ecb-analyse-bucket-node-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-symboldef-symbol-face 'use-font-lock-face
|
||||
"*Which face should be used for the symbol itself in the symboldef-buffer.
|
||||
|
||||
There are two choices: Either a face or the special symbol 'use-font-lock-face
|
||||
whereas the latter one means that ECB uses that face font-lock uses for
|
||||
fontifying the symbol \(e.g. font-lock-function-name-face for a function
|
||||
symbol or font-lock-variable-name-face for a variable symbol)."
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-symboldef
|
||||
:type '(radio (const :tag "No special face" :value nil)
|
||||
(const :tag "Use font-lock face"
|
||||
:value use-font-lock-face)
|
||||
(face :tag "Use face"
|
||||
:value ecb-symboldef-symbol-face)))
|
||||
|
||||
(defface ecb-symboldef-prototype-face (ecb-face-default nil t nil
|
||||
'ecb-default-general-face)
|
||||
"*Define face used for the prototype of symbol in the symboldef-buffer.
|
||||
|
||||
In GNU Emacs >= 21.X this face inherits from the face 'ecb-default-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-buffers should be displayed with the same basic
|
||||
attributes set by 'ecb-default-general-face' this set of basic attributes have
|
||||
to be set in 'ecb-analyse-bucket-node-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-symboldef-prototype-face nil
|
||||
"*Which face should be used for the symbol prototype in the symboldef-buffer.
|
||||
|
||||
The prototype can be the function prototype in case of a function or method or
|
||||
- in case of a variable - the type of the variable \(in case of a typed
|
||||
language)."
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-symboldef
|
||||
:type '(radio (const :tag "No special face" :value nil)
|
||||
(const :tag "Use ecb-symboldef-prototype-face"
|
||||
:value ecb-symboldef-prototype-face)
|
||||
(face :tag "Special face")))
|
||||
|
||||
(defface ecb-tag-header-face (ecb-face-default nil nil nil nil nil nil
|
||||
"SeaGreen1" "SeaGreen1"
|
||||
nil nil t)
|
||||
"*Define face used for highlighting the tag header.
|
||||
The tag header is the first line of the tag which is highlighted after
|
||||
jumping to it by clicking onto a node in the methods buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-tag-header-face 'ecb-tag-header-face
|
||||
"*Face used for highlighting the tag header.
|
||||
The tag header is the first line of the tag which is highlighted after
|
||||
jumping to it by clicking onto a node in the methods buffer."
|
||||
:group 'ecb-face-options
|
||||
:group 'ecb-methods
|
||||
:type 'face)
|
||||
|
||||
(defface ecb-source-in-directories-buffer-face (ecb-face-default nil nil nil
|
||||
'ecb-directories-general-face
|
||||
"medium blue"
|
||||
"LightBlue1"
|
||||
nil nil
|
||||
nil "gray")
|
||||
"*Define a face for displaying sources in the directories buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-source-in-directories-buffer-face 'ecb-source-in-directories-buffer-face
|
||||
"*Face for source files in the directories buffer."
|
||||
:group 'ecb-directories
|
||||
:group 'ecb-face-options
|
||||
:type 'face)
|
||||
|
||||
(defface ecb-source-read-only-face (ecb-face-default nil nil t
|
||||
'ecb-default-general-face)
|
||||
"*Define a face for displaying read-only sources."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-source-read-only-face 'ecb-source-read-only-face
|
||||
"*Face for read-only sources."
|
||||
:group 'ecb-sources
|
||||
:group 'ecb-directories
|
||||
:group 'ecb-face-options
|
||||
:type 'face)
|
||||
|
||||
(defface ecb-directory-not-accessible-face (ecb-face-default nil nil nil
|
||||
'ecb-directories-general-face
|
||||
"gray60"
|
||||
"gray60"
|
||||
nil nil
|
||||
nil "gray60")
|
||||
"*Define a face for displaying not accessible dirs in the directories buffer."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-directory-not-accessible-face 'ecb-directory-not-accessible-face
|
||||
"*Face for not accessible dirs in the directories buffer."
|
||||
:group 'ecb-directories
|
||||
:group 'ecb-face-options
|
||||
:type 'face)
|
||||
|
||||
(defface ecb-type-tag-class-face (ecb-face-default nil t)
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-type-tag-interface-face (ecb-face-default nil t)
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-type-tag-struct-face (ecb-face-default nil t)
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-type-tag-typedef-face (ecb-face-default nil t)
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-type-tag-union-face (ecb-face-default nil t)
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-type-tag-enum-face (ecb-face-default nil t)
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-type-tag-group-face (ecb-face-default nil t nil nil
|
||||
(if ecb-running-xemacs
|
||||
"dimgray"
|
||||
"dim gray")
|
||||
(if ecb-running-xemacs
|
||||
"dimgray"
|
||||
"dim gray"))
|
||||
"*Define face used with option `ecb-type-tag-display'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defface ecb-bucket-node-face (ecb-face-default nil t nil
|
||||
'ecb-default-general-face)
|
||||
"*Face used for displaying bucket-nodes in the ECB-buffers.
|
||||
See also `ecb-bucket-node-display'.
|
||||
|
||||
In GNU Emacs 21.X this face inherits from the face 'ecb-default-general-face'.
|
||||
|
||||
With XEmacs and GNU Emacs 20.X there is no inheritance-feature so if the
|
||||
buckets in the ECB-buffers should be displayed with the same basic
|
||||
attributes set by 'ecb-default-general-face' this set of basic attributes have
|
||||
to be set in 'ecb-bucket-node-face' too!"
|
||||
:group 'ecb-faces)
|
||||
|
||||
;; - mode-line faces-------------------------------------------
|
||||
|
||||
;; For XEmacs a face in the modeline should really inhertit from the face
|
||||
;; 'modeline!
|
||||
;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: Currently with XEmacs 21.4.X
|
||||
;; set-face-parent MUST be before defface - therefore we have to use make-face
|
||||
;; first and then adding the values to this face we would have also added
|
||||
;; by`defface. The defface is here only used to make this face customizable!
|
||||
;; Maybe later XEmacs-versions support the parent-keyword with defface then we
|
||||
;; can change back this ugly hack.
|
||||
(when ecb-running-xemacs
|
||||
(make-face 'ecb-mode-line-win-nr-face)
|
||||
(set-face-parent 'ecb-mode-line-win-nr-face 'modeline nil '(default))
|
||||
(make-face-bold 'ecb-mode-line-win-nr-face))
|
||||
(defface ecb-mode-line-win-nr-face (ecb-face-default nil t)
|
||||
"*Define face for the window-number in the mode-line.
|
||||
See `ecb-mode-line-display-window-number'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-mode-line-win-nr-face 'ecb-mode-line-win-nr-face
|
||||
"*Face used for the window-number in the mode-line.
|
||||
See `ecb-mode-line-display-window-number'. For XEmacs the face should inherit
|
||||
from the face 'modeline \(see `set-face-parent')!"
|
||||
:group 'ecb-mode-line
|
||||
:group 'ecb-face-options
|
||||
:type 'face)
|
||||
|
||||
(when ecb-running-xemacs
|
||||
(make-face 'ecb-mode-line-prefix-face)
|
||||
(set-face-parent 'ecb-mode-line-prefix-face 'modeline nil '(default))
|
||||
(set-face-foreground 'ecb-mode-line-prefix-face "forestgreen"))
|
||||
;; nil '(default color win)))
|
||||
(defface ecb-mode-line-prefix-face (ecb-face-default nil nil nil nil
|
||||
"forestgreen"
|
||||
"forestgreen")
|
||||
"*Define face for the prefix in the mode-line.
|
||||
See `ecb-mode-line-prefixes'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-mode-line-prefix-face 'ecb-mode-line-prefix-face
|
||||
"*Face used for the prefix in the mode-line.
|
||||
See `ecb-mode-line-prefixes'. For XEmacs the face should inherit from the face
|
||||
'modeline \(see `set-face-parent')!"
|
||||
:group 'ecb-mode-line
|
||||
:group 'ecb-face-options
|
||||
:type 'face)
|
||||
|
||||
(when ecb-running-xemacs
|
||||
(make-face 'ecb-mode-line-data-face)
|
||||
(set-face-parent 'ecb-mode-line-data-face 'modeline nil '(default)))
|
||||
(defface ecb-mode-line-data-face (ecb-face-default)
|
||||
"*Define face for the data in the mode-line.
|
||||
See `ecb-mode-line-data'."
|
||||
:group 'ecb-faces)
|
||||
|
||||
(defcustom ecb-mode-line-data-face 'ecb-mode-line-data-face
|
||||
"*Face used for the data in the mode-line.
|
||||
See `ecb-mode-line-data'. For XEmacs the face should inherit from the face
|
||||
'modeline \(see `set-face-parent')!"
|
||||
:group 'ecb-mode-line
|
||||
:group 'ecb-face-options
|
||||
:type 'face)
|
||||
|
||||
(silentcomp-provide 'ecb-face)
|
||||
|
||||
;;; ecb-face.el ends here
|
File diff suppressed because it is too large
Load Diff
|
@ -1,458 +0,0 @@
|
|||
;;; ecb-help.el --- online help for ECB and bug reporting
|
||||
|
||||
;; Copyright (C) 2000 - 2005 Jesper Nordenberg,
|
||||
;; Klaus Berndl,
|
||||
;; Kevin A. Burton,
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Kevin A. Burton <burton@openprivacy.org>
|
||||
;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
|
||||
;; Keywords: browser, code, programming, tools
|
||||
;; Created: 2001
|
||||
|
||||
;; This program 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.
|
||||
|
||||
;; This program 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
|
||||
;; GNU Emacs; see the file COPYING. If not, write to the Free Software
|
||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
;; $Id$
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
;; Contains all online-help for ECB (stolen something from recentf.el)
|
||||
|
||||
;;; History
|
||||
;;
|
||||
;; For the ChangeLog of this file see the CVS-repository. For a complete
|
||||
;; history of the ECB-package see the file NEWS.
|
||||
|
||||
;;; Code
|
||||
|
||||
(eval-when-compile
|
||||
(require 'silentcomp))
|
||||
|
||||
(require 'ecb-layout)
|
||||
(require 'ecb-util)
|
||||
|
||||
;; XEmacs and Emacs 20.X
|
||||
(silentcomp-defvar browse-url-new-window-p)
|
||||
(silentcomp-defun browse-url)
|
||||
;; Emacs 21
|
||||
(silentcomp-defvar browse-url-new-window-flag)
|
||||
;; JDE
|
||||
(silentcomp-defvar jde-version)
|
||||
;; mail and reporter
|
||||
(silentcomp-defun mail-subject)
|
||||
(silentcomp-defun mail-text)
|
||||
(silentcomp-defun reporter-submit-bug-report)
|
||||
|
||||
(defconst ecb-help-info-start-file "ecb.info")
|
||||
(defconst ecb-help-html-start-file "ecb.html")
|
||||
(defconst ecb-help-info-subdir "./info-help/")
|
||||
(defconst ecb-help-html-subdir "./html-help/")
|
||||
|
||||
(defgroup ecb-help nil
|
||||
"Settings for the ECB online help"
|
||||
:group 'ecb)
|
||||
|
||||
(defcustom ecb-show-help-format 'info
|
||||
"*The format `ecb-show-help' shows its online help.
|
||||
Allowed values are 'info \(for the Info format) and 'html \(for HTML format).
|
||||
If the value is 'html then `browse-url-browser-function' says which browser is
|
||||
used.
|
||||
|
||||
Note: If you got ECB as a standard XEmacs-package maybe the
|
||||
HTML-online-documentation is not included."
|
||||
:group 'ecb-help
|
||||
:group 'ecb-most-important
|
||||
:type '(choice :tag "Online-help format" :menu-tag "Online-help format"
|
||||
(const :tag "Info" :value info)
|
||||
(const :tag "Html" :value html)))
|
||||
|
||||
|
||||
(defcustom ecb-help-info-path (concat
|
||||
(if ecb-running-xemacs
|
||||
(if (file-exists-p
|
||||
(concat ecb-ecb-dir
|
||||
ecb-help-info-subdir
|
||||
ecb-help-info-start-file))
|
||||
ecb-help-info-subdir
|
||||
"../../info/")
|
||||
ecb-help-info-subdir)
|
||||
ecb-help-info-start-file)
|
||||
"*Path where the ECB online help in info format resides.
|
||||
This must be the location of the file \"ecb.info\" which comes with the ECB
|
||||
distribution. If is installed by unpacking the archive available on the ECB
|
||||
web-site then this is the subdir `ecb-help-info-subdir' of the installation
|
||||
directory of ECB. If it is installed as XEmacs-package \(e.g. via the package
|
||||
manager of XEmacs) then this is probably the directory \"../../info/\"
|
||||
\(relativ to the Elisp directory of ECB).
|
||||
|
||||
The path can either be an absolute path or a path relative to the directory
|
||||
where the Elisp files of ECB are.
|
||||
|
||||
Normally there should be no need to change this option!"
|
||||
:group 'ecb-help
|
||||
:type 'file)
|
||||
|
||||
(defcustom ecb-help-html-path
|
||||
(if (not ecb-running-xemacs)
|
||||
(concat ecb-help-html-subdir ecb-help-html-start-file)
|
||||
(cond ((file-exists-p
|
||||
(concat ecb-ecb-dir
|
||||
ecb-help-html-subdir
|
||||
ecb-help-html-start-file))
|
||||
(concat ecb-help-html-subdir ecb-help-html-start-file))
|
||||
((file-exists-p
|
||||
(concat ecb-ecb-dir
|
||||
"../../html/"
|
||||
ecb-help-html-start-file))
|
||||
(concat "../../html/" ecb-help-html-start-file))
|
||||
((file-exists-p
|
||||
(concat ecb-ecb-dir
|
||||
"../../html/ecb/index.html"))
|
||||
"../../html/ecb/index.html")
|
||||
(t
|
||||
(concat "../../etc/ecb/html/" ecb-help-html-start-file))))
|
||||
"*Path where the ECB online help in HTML format resides.
|
||||
This must be the location of the file \"index.html\" which comes with the ECB
|
||||
distribution. If is installed by unpacking the archive available on the ECB
|
||||
web-site then this is the subdir `ecb-help-html-subdir' of the installation
|
||||
directory of ECB. If it is installed as XEmacs-package \(e.g. via the package
|
||||
manager of XEmacs) then this is probably either the directory \"../../html/\" or
|
||||
\"../../etc/ecb/html/\" \(both relative to the Elisp directory of ECB).
|
||||
|
||||
The path can either be an absolute path or a path relative to the directory
|
||||
where the Elisp files of ECB are.
|
||||
|
||||
Normally there should be no need to change this option!"
|
||||
:group 'ecb-help
|
||||
:type 'file)
|
||||
|
||||
|
||||
(defun ecb-info (info-file &optional no-file-not-exist-err)
|
||||
"Starts `info' with INFO-FILE. If INFO-FILE does not exists then nil is
|
||||
returned otherwise true. If NO-FILE-NOT-EXIST-ERR is not nil then just nil is
|
||||
returned if INFO-FILE does not exist otherwise an error is reported."
|
||||
(if (file-exists-p info-file)
|
||||
(prog1 t
|
||||
(info info-file))
|
||||
(unless no-file-not-exist-err
|
||||
(ecb-error "Info file %s does not exists!" info-file))
|
||||
nil))
|
||||
|
||||
(defun ecb-browse-html-file (html-file &optional no-file-not-exist-err)
|
||||
"Opens HTML-FILE in the standard-webbrowser with `browse-url'. If INFO-FILE
|
||||
does not exists then nil is returned otherwise true. If NO-FILE-NOT-EXIST-ERR
|
||||
is not nil then just nil is returned if HTML-FILE does not exist otherwise an
|
||||
error is reported."
|
||||
(if (file-exists-p html-file)
|
||||
(prog1 t
|
||||
(if (and (locate-library "browse-url")
|
||||
(require 'browse-url)
|
||||
(fboundp 'browse-url))
|
||||
(browse-url (concat "file://" html-file)
|
||||
(if (boundp 'browse-url-new-window-flag)
|
||||
browse-url-new-window-flag
|
||||
browse-url-new-window-p))
|
||||
(ecb-error "Function 'browse-url needed for displaying HTML!")))
|
||||
(unless no-file-not-exist-err
|
||||
(ecb-error "HTML file %s does not exists!" html-file))
|
||||
nil))
|
||||
|
||||
;;;###autoload
|
||||
(defun ecb-show-help (&optional format)
|
||||
"Shows the online help of ECB in Info or HTML-format.
|
||||
The format depends on the setting in `ecb-show-help-format'. If called with
|
||||
prefix argument, i.e. if FORMAT is not nil then the user is prompted to choose
|
||||
the format of the help \(Info or Html).
|
||||
|
||||
If an error about not finding the needed help-file occurs please take a look
|
||||
at the options `ecb-help-info-start-file' and `ecb-help-html-start-file'!
|
||||
|
||||
Note: If you got ECB as a standard XEmacs-package maybe the
|
||||
HTML-online-documentation is not included."
|
||||
(interactive "P")
|
||||
(let ((f (if format
|
||||
(intern (ecb-query-string "Choose format of online-help:"
|
||||
(if (equal 'ecb-show-help-format
|
||||
'html)
|
||||
'("info" "html")
|
||||
'("html" "info"))))
|
||||
ecb-show-help-format))
|
||||
(info-path-abs (expand-file-name
|
||||
(save-match-data
|
||||
(if (or (string-match "^\\." ecb-help-info-path)
|
||||
(string-match (concat "^"
|
||||
(regexp-quote
|
||||
ecb-help-info-start-file))
|
||||
ecb-help-info-path))
|
||||
(concat ecb-ecb-dir ecb-help-info-path)
|
||||
ecb-help-info-path))))
|
||||
(html-path-abs (expand-file-name
|
||||
(save-match-data
|
||||
(if (or (string-match "^\\." ecb-help-html-path)
|
||||
(string-match (concat "^"
|
||||
(regexp-quote
|
||||
ecb-help-html-start-file))
|
||||
ecb-help-html-path))
|
||||
(concat ecb-ecb-dir ecb-help-html-path)
|
||||
ecb-help-html-path)))))
|
||||
(if (equal f 'info)
|
||||
(ecb-info info-path-abs)
|
||||
(message "Opening ECB online-help in a web-browser...")
|
||||
(ecb-browse-html-file html-path-abs))))
|
||||
|
||||
|
||||
;;
|
||||
;; Problem reporting functions stolen from JDEE
|
||||
;;
|
||||
(defvar ecb-problem-report-mail-address "ecb-list@lists.sourceforge.net" )
|
||||
|
||||
(defconst ecb-problem-report-message
|
||||
"Please enter the details of your bug report here")
|
||||
|
||||
(defun ecb-submit-problem-report()
|
||||
"Submit a problem report for the ECB to the ECB mailing-list.
|
||||
This command generates in the edit-window a problem-report which contains
|
||||
already the current values of all ECB options, the current backtrace-buffer if
|
||||
there is any and the current message-buffer. You will be asked for a
|
||||
problem-report subject and then you must insert a description of the problem.
|
||||
Please describe the problem as detailed as possible!
|
||||
|
||||
*IMPORTANT*: Cause of extra appearance of SPAM in the mailing-lists,
|
||||
SourceForge has changed its policy: Now it is only possible to post to the
|
||||
mailing-list for users who have subscribed this mailing-list. So please be
|
||||
aware you will not be able to send comments, bug reports and improvement
|
||||
suggestions before you have subscribed the ECB-mailing-list. See the section
|
||||
\"Mailing-list\" at the ECB-website at http://ecb.sourceforge.net how to do
|
||||
this."
|
||||
|
||||
(interactive)
|
||||
(when (or ecb-minor-mode
|
||||
(y-or-n-p "ECB should be active when submitting a problem-report. Force report? "))
|
||||
(if (and (equal ecb-frame (selected-frame))
|
||||
(not (ecb-point-in-edit-window-number)))
|
||||
(ecb-select-edit-window))
|
||||
(if (not (locate-library "reporter"))
|
||||
(ecb-error "You need the reporter.el package to submit a bugreport for ECB!")
|
||||
(require 'reporter)
|
||||
(progn
|
||||
(message "Preparing problem report...")
|
||||
;;prepare the basic buffer
|
||||
(reporter-submit-bug-report
|
||||
ecb-problem-report-mail-address
|
||||
(format "ECB: %s, CEDET: %s, semantic: %s, eieio: %s, speedbar: %s, JDEE: %s"
|
||||
ecb-version
|
||||
cedet-version
|
||||
semantic-version
|
||||
eieio-version
|
||||
speedbar-version
|
||||
(if (boundp 'jde-version)
|
||||
jde-version
|
||||
"No JDEE"))
|
||||
(ecb-problem-report-list-all-variables)
|
||||
nil
|
||||
'ecb-problem-report-post-hook
|
||||
ecb-problem-report-message)
|
||||
(if (equal ecb-frame (selected-frame))
|
||||
(ecb-redraw-layout))
|
||||
(mail-subject)
|
||||
(insert (read-string "Problem report subject: "
|
||||
(format "ECB-%s -- " ecb-version)))
|
||||
(mail-text)
|
||||
(search-forward ecb-problem-report-message)
|
||||
(end-of-line)
|
||||
(message "Preparing bug report...done")))))
|
||||
|
||||
(defun ecb-problem-report-post-hook()
|
||||
"Function run the reporter package done its work. It looks for a message- and
|
||||
a backtrace-buffer and inserts the contents of that."
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
;; if the mail-packages has already inserted a signature we must not go to
|
||||
;; the buffer-end but just before the signature
|
||||
(if (re-search-forward "^--[ \t]*$" nil t)
|
||||
(progn
|
||||
(beginning-of-line)
|
||||
(insert "\n\n\n")
|
||||
(forward-line -2))
|
||||
(goto-char (point-max))
|
||||
(insert "\n\n"))
|
||||
;; ecb-faces
|
||||
(let ((ecb-face-list (delq nil (mapcar (function
|
||||
(lambda (f)
|
||||
(if (save-match-data
|
||||
(string-match "^ecb-"
|
||||
(symbol-name f)))
|
||||
f
|
||||
nil)))
|
||||
(face-list)))))
|
||||
(insert "\n\n-----------------------------------------------------\n")
|
||||
(insert "The attributes of the ECB-faces are:\n\n")
|
||||
(dolist (f ecb-face-list)
|
||||
(when f
|
||||
(insert (format "%s: %s\n"
|
||||
(symbol-name f)
|
||||
(funcall (if ecb-running-xemacs
|
||||
'face-custom-attributes-get
|
||||
'custom-face-attributes-get)
|
||||
f ecb-frame)))))
|
||||
(insert "\n-----------------------------------------------------\n\n"))
|
||||
(let* ((messages-buffer
|
||||
(get-buffer
|
||||
(if ecb-running-xemacs " *Message-Log*" "*Messages*")))
|
||||
(backtrace-buffer (ecb-buffer-obj "*Backtrace*"))
|
||||
(tag-dump-buffer (ecb-buffer-obj "*ecb-tag-dump*")))
|
||||
|
||||
;;insert the contents of the tag-dump buffer if it is there.
|
||||
(insert "\n\n-----------------------------------------------------\n")
|
||||
(if tag-dump-buffer
|
||||
(progn
|
||||
(insert "The contents of the *ecb-tag-dump* buffer were\n\n")
|
||||
(insert-buffer-substring tag-dump-buffer)
|
||||
;; we must force the mark
|
||||
;;(goto-char (mark t))
|
||||
(insert "\nEnd Insert *ecb-tag-dump* buffer" ))
|
||||
(insert "There was no *ecb-tag-dump* buffer" ))
|
||||
(insert "\n-----------------------------------------------------\n\n")
|
||||
|
||||
;;insert the contents of the trace-output buffer if it is there.
|
||||
;; (insert "\n\n-----------------------------------------------------\n")
|
||||
;; (if tag-dump-buffer
|
||||
;; (progn
|
||||
;; (insert "The contents of the *ecb-tag-dump* buffer were\n\n")
|
||||
;; (insert-buffer-substring tag-dump-buffer)
|
||||
;; ;; we must force the mark
|
||||
;; (goto-char (mark t))
|
||||
;; (insert "\nEnd Insert *ecb-tag-dump* buffer" ))
|
||||
;; (insert "There was no *ecb-tag-dump* buffer" ))
|
||||
;; (insert "\n-----------------------------------------------------\n\n")
|
||||
|
||||
;;insert the contents of the backtrace buffer if it is there.
|
||||
(insert "\n\n-----------------------------------------------------\n")
|
||||
(if backtrace-buffer
|
||||
(progn
|
||||
(insert "The contents of the *Backtrace* buffer were\n\n")
|
||||
(insert-buffer-substring backtrace-buffer)
|
||||
;; we must force the mark
|
||||
;;(goto-char (mark t))
|
||||
(insert "\nEnd Insert *Backtrace* buffer" ))
|
||||
(insert "There was no *Backtrace* buffer" ))
|
||||
(insert "\n-----------------------------------------------------\n\n")
|
||||
|
||||
;;insert the contents of the messages buffer if it is there.
|
||||
(insert "-----------------------------------------------------\n")
|
||||
(if messages-buffer
|
||||
(progn
|
||||
(insert "The contents of the *Messages* buffer were\n\n")
|
||||
(insert-buffer-substring messages-buffer)
|
||||
;;(goto-char (mark t))
|
||||
(insert "\nEnd Insert *Messages* buffer" ))
|
||||
(insert "There was no *Messages* buffer" ))
|
||||
(insert "\n-----------------------------------------------------\n\n"))))
|
||||
|
||||
|
||||
(defun ecb-problem-report-list-all-variables()
|
||||
"List all variables starting with `ecb-' and some other variables which
|
||||
could be interesting for support."
|
||||
(let ((emacs-vars (sort (delete nil
|
||||
`(pre-command-hook
|
||||
post-command-hook
|
||||
after-save-hook
|
||||
help-mode-hook
|
||||
compilation-mode-hook
|
||||
truncate-partial-width-windows
|
||||
truncate-lines
|
||||
,(if (boundp 'compilation-window-height)
|
||||
'compilation-window-height)
|
||||
,(if (boundp 'temp-buffer-max-height)
|
||||
'temp-buffer-max-height)
|
||||
auto-mode-alist
|
||||
,(if (boundp 'c-mode-hook)
|
||||
'c-mode-hook)
|
||||
,(if (boundp 'c++-mode-hook)
|
||||
'c++-mode-hook)
|
||||
,(if (boundp 'c-mode-common-hook)
|
||||
'c-mode-common-hook)
|
||||
,(if (boundp 'java-mode-hook)
|
||||
'java-mode-hook)
|
||||
,(if (boundp 'jde-mode-hook)
|
||||
'jde-mode-hook)
|
||||
system-type
|
||||
window-system
|
||||
max-specpdl-size
|
||||
max-lisp-eval-depth
|
||||
,(if (boundp 'ediff-quit-hook)
|
||||
'ediff-quit-hook)))
|
||||
(function (lambda (l r)
|
||||
(ecb-string< (symbol-name l)
|
||||
(symbol-name r))))))
|
||||
(semantic-vars (sort (delete nil
|
||||
`(semantic-after-toplevel-cache-change-hook
|
||||
semantic-after-partial-cache-change-hook
|
||||
semantic-format-face-alist
|
||||
semantic-uml-colon-string
|
||||
semantic-orphaned-member-metaparent-type))
|
||||
(function (lambda (l r)
|
||||
(ecb-string< (symbol-name l)
|
||||
(symbol-name r))))))
|
||||
(speedbar-vars (sort '(speedbar-dynamic-tags-function-list
|
||||
speedbar-tag-hierarchy-method
|
||||
speedbar-tag-group-name-minimum-length
|
||||
speedbar-tag-split-minimum-length
|
||||
speedbar-tag-regroup-maximum-length
|
||||
speedbar-fetch-etags-command
|
||||
speedbar-fetch-etags-arguments
|
||||
speedbar-fetch-etags-parse-list)
|
||||
(function (lambda (l r)
|
||||
(ecb-string< (symbol-name l)
|
||||
(symbol-name r))))))
|
||||
(ecb-options (mapcar
|
||||
'intern
|
||||
(sort
|
||||
(let (completion-ignore-case)
|
||||
(all-completions "ecb-" obarray 'user-variable-p))
|
||||
'ecb-string<)))
|
||||
(ecb-internal-vars (sort '(ecb-path-selected-directory
|
||||
ecb-path-selected-source
|
||||
ecb-use-semantic-grouping
|
||||
ecb-autocontrol/sync-fcn-register
|
||||
ecb-idle-timer-alist
|
||||
ecb-post-command-hooks
|
||||
ecb-pre-command-hooks
|
||||
ecb-max-specpdl-size-old
|
||||
ecb-max-lisp-eval-depth-old
|
||||
ecb-minor-mode
|
||||
ecb-adviced-function-sets
|
||||
ecb-adviced-functions
|
||||
ecb-last-window-config-before-deactivation
|
||||
ecb-edit-area-creators
|
||||
ecb-partial-reparse-always-full-fetch
|
||||
ecb-stealthy-function-list
|
||||
ecb-stealthy-function-state-alist
|
||||
ecb-windows-hidden-state
|
||||
ecb-toggle-layout-state
|
||||
ecb-tree-buffer-creators
|
||||
ecb-ecb-buffer-registry
|
||||
ecb-current-maximized-ecb-buffer-name
|
||||
ecb-special-ecb-buffers-of-current-layout)
|
||||
(function (lambda (l r)
|
||||
(ecb-string< (symbol-name l)
|
||||
(symbol-name r)))))))
|
||||
(append emacs-vars semantic-vars speedbar-vars
|
||||
ecb-internal-vars ecb-options)))
|
||||
|
||||
|
||||
(silentcomp-provide 'ecb-help)
|
||||
|
||||
;; ecb-help.el ends here
|
|
@ -1,48 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbclose_xpm[] = {
|
||||
"16 10 35 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #040404",
|
||||
"( c #FCFCFA",
|
||||
") c #F7F6F3",
|
||||
"* c #F7F7F5",
|
||||
"+ c #F7F7F4",
|
||||
", c #F6F6F4",
|
||||
"- c #F1F0EB",
|
||||
". c #E5E1DA",
|
||||
"0 c #A5A5C6",
|
||||
"1 c #F5F5F1",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #EAE9E3",
|
||||
"7 c #E3E0D9",
|
||||
"8 c #DBD6CC",
|
||||
"9 c #E4E1D9",
|
||||
": c #DCD8CF",
|
||||
"; c #D8D3C9",
|
||||
"< c #D6D1C6",
|
||||
"= c #D2CCC0",
|
||||
"> c #CFC8BB",
|
||||
"? c #D2CCBF",
|
||||
"@ c #C6BEAE",
|
||||
"A c #C2B8A8",
|
||||
"B c #C1B8A7",
|
||||
"C c #C0B7A6",
|
||||
"D c #C3BAAA",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&'%()$ ",
|
||||
" $**+',-.$ ",
|
||||
"0$1'''''2$ ",
|
||||
" $345'678$ ",
|
||||
" $9:;'<=>$ ",
|
||||
" $?@ABBCD$ ",
|
||||
" #$$$$$$$# ",
|
||||
" "};
|
|
@ -1,41 +0,0 @@
|
|||
/* XPM */
|
||||
static char * empty_xpm[] = {
|
||||
"16 10 28 1",
|
||||
" c None",
|
||||
". c #848400",
|
||||
"+ c #858504",
|
||||
"@ c #91911F",
|
||||
"# c #8C8C13",
|
||||
"$ c #91911E",
|
||||
"% c #9B9B33",
|
||||
"& c #9C9C36",
|
||||
"* c #8F8F16",
|
||||
"= c #868604",
|
||||
"- c #929220",
|
||||
"; c #9C9C34",
|
||||
"> c #9E9E3B",
|
||||
", c #A4A445",
|
||||
"' c #A6A64B",
|
||||
") c #949423",
|
||||
"! c #959527",
|
||||
"~ c #9E9E3A",
|
||||
"{ c #A4A444",
|
||||
"] c #ACAC53",
|
||||
"^ c #959525",
|
||||
"/ c #9B9B31",
|
||||
"( c #A6A64C",
|
||||
"_ c #AAAA4F",
|
||||
": c #92921E",
|
||||
"< c #878706",
|
||||
"[ c #A0A03C",
|
||||
"} c #939320",
|
||||
" ",
|
||||
" .. ",
|
||||
" +@#. ",
|
||||
" .$%&*. ",
|
||||
"=-;>,'). ",
|
||||
"=!~{']^. ",
|
||||
" ./(_:. ",
|
||||
" <[}. ",
|
||||
" .. ",
|
||||
" "};
|
|
@ -1,15 +0,0 @@
|
|||
/* XPM */
|
||||
static char * end_guide_xpm[] = {
|
||||
"6 10 2 1",
|
||||
" c None",
|
||||
". c #ADA5C6",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,15 +0,0 @@
|
|||
/* XPM */
|
||||
static char * guide_xpm[] = {
|
||||
"6 10 2 1",
|
||||
" c None",
|
||||
". c #ADA5C6",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . "};
|
|
@ -1,16 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbhandle_xpm[] = {
|
||||
"8 10 3 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c #ADA5C6",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
"########",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,34 +0,0 @@
|
|||
/* XPM */
|
||||
static char * leaf_xpm[] = {
|
||||
"16 10 21 1",
|
||||
" c None",
|
||||
". c #484848",
|
||||
"+ c #000000",
|
||||
"@ c #585858",
|
||||
"# c #777777",
|
||||
"$ c #7C7C7C",
|
||||
"% c #818181",
|
||||
"& c #858585",
|
||||
"* c #3E3E3E",
|
||||
"= c #595959",
|
||||
"- c #8A8A8A",
|
||||
"; c #8E8E8E",
|
||||
"> c #474747",
|
||||
", c #868686",
|
||||
"' c #939393",
|
||||
") c #979797",
|
||||
"! c #9F9F9F",
|
||||
"~ c #5E5E5E",
|
||||
"{ c #A0A0A0",
|
||||
"] c #616161",
|
||||
"^ c #4B4B4B",
|
||||
" ",
|
||||
" .+++ ",
|
||||
" @#$%&* ",
|
||||
" =#$%&-;* ",
|
||||
">#$%,-;')+ ",
|
||||
">$%,-;')!+ ",
|
||||
" ~&-;'){* ",
|
||||
" ];'){* ",
|
||||
" ^+++ ",
|
||||
" "};
|
|
@ -1,14 +0,0 @@
|
|||
/* XPM */
|
||||
static char * no_guide_xpm[] = {
|
||||
"6 10 1 1",
|
||||
" c None",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,15 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbnohandle_xpm[] = {
|
||||
"8 10 2 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,50 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbopen_xpm[] = {
|
||||
"16 10 37 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #FCFCFA",
|
||||
"( c #F7F6F3",
|
||||
") c #F7F7F5",
|
||||
"* c #F7F7F4",
|
||||
"+ c #F6F6F4",
|
||||
", c #F1F0EB",
|
||||
"- c #E5E1DA",
|
||||
". c #A5A5C6",
|
||||
"0 c #F5F5F1",
|
||||
"1 c #040404",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #ECEBE6",
|
||||
"7 c #EAE9E3",
|
||||
"8 c #E3E0D9",
|
||||
"9 c #DBD6CC",
|
||||
": c #E4E1D9",
|
||||
"; c #DCD8CF",
|
||||
"< c #D8D3C9",
|
||||
"= c #D7D2C7",
|
||||
"> c #D6D1C6",
|
||||
"? c #D2CCC0",
|
||||
"@ c #CFC8BB",
|
||||
"A c #D2CCBF",
|
||||
"B c #C6BEAE",
|
||||
"C c #C2B8A8",
|
||||
"D c #C1B8A7",
|
||||
"E c #C0B7A6",
|
||||
"F c #C3BAAA",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&&%'($ ",
|
||||
" $))**+,-$ ",
|
||||
".$0111112$ ",
|
||||
" $3456789$ ",
|
||||
" $:;<=>?@$ ",
|
||||
" $ABCDDEF$ ",
|
||||
" #$$$$$$$# ",
|
||||
" . "};
|
|
@ -1,51 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecb_close_xpm[] = {
|
||||
"12 14 34 1",
|
||||
" c None",
|
||||
". c #7898B5",
|
||||
"+ c #FFFFFF",
|
||||
"@ c #FCFCFB",
|
||||
"# c #FDFDFB",
|
||||
"$ c #040404",
|
||||
"% c #FCFCFA",
|
||||
"& c #F7F6F3",
|
||||
"* c #F7F7F5",
|
||||
"= c #F7F7F4",
|
||||
"- c #F6F6F4",
|
||||
"; c #F1F0EB",
|
||||
"> c #E5E1DA",
|
||||
", c #A5A5C6",
|
||||
"' c #F5F5F1",
|
||||
") c #DFDBD2",
|
||||
"! c #F2F2EE",
|
||||
"~ c #F0F0EC",
|
||||
"{ c #EDEDE7",
|
||||
"] c #EAE9E3",
|
||||
"^ c #E3E0D9",
|
||||
"/ c #DBD6CC",
|
||||
"( c #E4E1D9",
|
||||
"_ c #DCD8CF",
|
||||
": c #D8D3C9",
|
||||
"< c #D6D1C6",
|
||||
"[ c #D2CCC0",
|
||||
"} c #CFC8BB",
|
||||
"| c #D2CCBF",
|
||||
"1 c #C6BEAE",
|
||||
"2 c #C2B8A8",
|
||||
"3 c #C1B8A7",
|
||||
"4 c #C0B7A6",
|
||||
"5 c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ....... ",
|
||||
" .+++++++. ",
|
||||
" .@##$@%&. ",
|
||||
" .**=$-;>. ",
|
||||
",.'$$$$$). ",
|
||||
" .!~{$]^/. ",
|
||||
" .(_:$<[}. ",
|
||||
" .|123345. ",
|
||||
" ....... ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,277 +0,0 @@
|
|||
/* XPM */
|
||||
static char *empty[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 14 256 2",
|
||||
/* colors */
|
||||
"`` c #848400",
|
||||
"`. c #949429",
|
||||
"`# c #9c9c31",
|
||||
"`a c #9c9c39",
|
||||
"`b c #a5a542",
|
||||
"`c c #a5a54a",
|
||||
"`d c #adad4a",
|
||||
"`e c #adad52",
|
||||
"`f c #adad5a",
|
||||
"`g c None",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`````.`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`````.`#`a`````g`g`g`g`g`g`g",
|
||||
"`g`````.`#`a`a`b`````g`g`g`g`g`g",
|
||||
"`````.`#`a`a`b`c`c`````g`g`g`g`g",
|
||||
"```.`#`a`a`b`c`c`e`f```g`g`g`g`g",
|
||||
"`````a`a`b`c`c`e`f`````g`g`g`g`g",
|
||||
"`g`````b`c`c`e`f`````g`g`g`g`g`g",
|
||||
"`g`g`````c`e`f`````g`g`g`g`g`g`g",
|
||||
"`g`g`g`````f`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,277 +0,0 @@
|
|||
/* XPM */
|
||||
static char *end-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 14 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c"
|
||||
};
|
|
@ -1,277 +0,0 @@
|
|||
/* XPM */
|
||||
static char *guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 14 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#"
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecb_handle_xpm[] = {
|
||||
"6 14 2 1",
|
||||
" c None",
|
||||
". c #ADA5C6",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
"......",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,277 +0,0 @@
|
|||
/* XPM */
|
||||
static char *leaf[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 14 256 2",
|
||||
/* colors */
|
||||
"`` c #424242",
|
||||
"`. c #737373",
|
||||
"`# c #7b7b7b",
|
||||
"`a c #848484",
|
||||
"`b c #8c8c8c",
|
||||
"`c c #949494",
|
||||
"`d c #9c9c9c",
|
||||
"`e c #a5a5a5",
|
||||
"`f c None",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f```.`#`#`a`a```f`f`f`f`f`f`f",
|
||||
"`f```.`#`#`a`a`b`b```f`f`f`f`f`f",
|
||||
"```.`#`#`a`a`b`b`c`c```f`f`f`f`f",
|
||||
"```#`#`a`a`b`b`c`c`d```f`f`f`f`f",
|
||||
"```#`a`a`b`b`c`c`d`e```f`f`f`f`f",
|
||||
"`f```a`b`b`c`c`d`e```f`f`f`f`f`f",
|
||||
"`f`f```b`c`c`d`e```f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f"
|
||||
};
|
|
@ -1,277 +0,0 @@
|
|||
/* XPM */
|
||||
static char *no-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 14 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #84849c",
|
||||
"`# c #8c8ca5",
|
||||
"`a c #a5a5c6",
|
||||
"`b c #ada5c6",
|
||||
"`c c #b5b5ce",
|
||||
"`d c #cecee7",
|
||||
"`e c #ceceff",
|
||||
"`f c #e7e7ff",
|
||||
"`g c None",
|
||||
"`h c #808000",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecb_no_handle_xpm[] = {
|
||||
"6 14 1 1",
|
||||
" c None",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,53 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecb_open_xpm[] = {
|
||||
"12 14 36 1",
|
||||
" c None",
|
||||
". c #7898B5",
|
||||
"+ c #FFFFFF",
|
||||
"@ c #FCFCFB",
|
||||
"# c #FDFDFB",
|
||||
"$ c #FCFCFA",
|
||||
"% c #F7F6F3",
|
||||
"& c #F7F7F5",
|
||||
"* c #F7F7F4",
|
||||
"= c #F6F6F4",
|
||||
"- c #F1F0EB",
|
||||
"; c #E5E1DA",
|
||||
"> c #A5A5C6",
|
||||
", c #F5F5F1",
|
||||
"' c #040404",
|
||||
") c #DFDBD2",
|
||||
"! c #F2F2EE",
|
||||
"~ c #F0F0EC",
|
||||
"{ c #EDEDE7",
|
||||
"] c #ECEBE6",
|
||||
"^ c #EAE9E3",
|
||||
"/ c #E3E0D9",
|
||||
"( c #DBD6CC",
|
||||
"_ c #E4E1D9",
|
||||
": c #DCD8CF",
|
||||
"< c #D8D3C9",
|
||||
"[ c #D7D2C7",
|
||||
"} c #D6D1C6",
|
||||
"| c #D2CCC0",
|
||||
"1 c #CFC8BB",
|
||||
"2 c #D2CCBF",
|
||||
"3 c #C6BEAE",
|
||||
"4 c #C2B8A8",
|
||||
"5 c #C1B8A7",
|
||||
"6 c #C0B7A6",
|
||||
"7 c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ....... ",
|
||||
" .+++++++. ",
|
||||
" .@###@$%. ",
|
||||
" .&&**=-;. ",
|
||||
">.,'''''). ",
|
||||
" .!~{]^/(. ",
|
||||
" ._:<[}|1. ",
|
||||
" .2345567. ",
|
||||
" ....... ",
|
||||
" > ",
|
||||
" > "};
|
|
@ -1,53 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbclose_xpm[] = {
|
||||
"16 15 35 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #040404",
|
||||
"( c #FCFCFA",
|
||||
") c #F7F6F3",
|
||||
"* c #F7F7F5",
|
||||
"+ c #F7F7F4",
|
||||
", c #F6F6F4",
|
||||
"- c #F1F0EB",
|
||||
". c #E5E1DA",
|
||||
"0 c #A5A5C6",
|
||||
"1 c #F5F5F1",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #EAE9E3",
|
||||
"7 c #E3E0D9",
|
||||
"8 c #DBD6CC",
|
||||
"9 c #E4E1D9",
|
||||
": c #DCD8CF",
|
||||
"; c #D8D3C9",
|
||||
"< c #D6D1C6",
|
||||
"= c #D2CCC0",
|
||||
"> c #CFC8BB",
|
||||
"? c #D2CCBF",
|
||||
"@ c #C6BEAE",
|
||||
"A c #C2B8A8",
|
||||
"B c #C1B8A7",
|
||||
"C c #C0B7A6",
|
||||
"D c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&'%()$ ",
|
||||
" $**+',-.$ ",
|
||||
"0$1'''''2$ ",
|
||||
" $345'678$ ",
|
||||
" $9:;'<=>$ ",
|
||||
" $?@ABBCD$ ",
|
||||
" #$$$$$$$# ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,278 +0,0 @@
|
|||
/* XPM */
|
||||
static char *empty[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 15 256 2",
|
||||
/* colors */
|
||||
"`` c #848400",
|
||||
"`. c #949429",
|
||||
"`# c #9c9c31",
|
||||
"`a c #9c9c39",
|
||||
"`b c #a5a542",
|
||||
"`c c #a5a54a",
|
||||
"`d c #adad4a",
|
||||
"`e c #adad52",
|
||||
"`f c #adad5a",
|
||||
"`g c None",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`````.`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`````.`#`a`````g`g`g`g`g`g`g",
|
||||
"`g`````.`#`a`a`b`````g`g`g`g`g`g",
|
||||
"`````.`#`a`a`b`c`c`````g`g`g`g`g",
|
||||
"```.`#`a`a`b`c`c`e`f```g`g`g`g`g",
|
||||
"`````a`a`b`c`c`e`f`````g`g`g`g`g",
|
||||
"`g`````b`c`c`e`f`````g`g`g`g`g`g",
|
||||
"`g`g`````c`e`f`````g`g`g`g`g`g`g",
|
||||
"`g`g`g`````f`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,278 +0,0 @@
|
|||
/* XPM */
|
||||
static char *end-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 15 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c"
|
||||
};
|
|
@ -1,278 +0,0 @@
|
|||
/* XPM */
|
||||
static char *guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 15 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#"
|
||||
};
|
|
@ -1,21 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbhandle_xpm[] = {
|
||||
"8 15 3 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c #ADA5C6",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
"########",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,278 +0,0 @@
|
|||
/* XPM */
|
||||
static char *leaf[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 15 256 2",
|
||||
/* colors */
|
||||
"`` c #424242",
|
||||
"`. c #737373",
|
||||
"`# c #7b7b7b",
|
||||
"`a c #848484",
|
||||
"`b c #8c8c8c",
|
||||
"`c c #949494",
|
||||
"`d c #9c9c9c",
|
||||
"`e c #a5a5a5",
|
||||
"`f c None",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f```.`#`#`a`a```f`f`f`f`f`f`f",
|
||||
"`f```.`#`#`a`a`b`b```f`f`f`f`f`f",
|
||||
"```.`#`#`a`a`b`b`c`c```f`f`f`f`f",
|
||||
"```#`#`a`a`b`b`c`c`d```f`f`f`f`f",
|
||||
"```#`a`a`b`b`c`c`d`e```f`f`f`f`f",
|
||||
"`f```a`b`b`c`c`d`e```f`f`f`f`f`f",
|
||||
"`f`f```b`c`c`d`e```f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f"
|
||||
};
|
|
@ -1,278 +0,0 @@
|
|||
/* XPM */
|
||||
static char *no-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 15 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #84849c",
|
||||
"`# c #8c8ca5",
|
||||
"`a c #a5a5c6",
|
||||
"`b c #ada5c6",
|
||||
"`c c #b5b5ce",
|
||||
"`d c #cecee7",
|
||||
"`e c #ceceff",
|
||||
"`f c #e7e7ff",
|
||||
"`g c None",
|
||||
"`h c #808000",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,20 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbnohandle_xpm[] = {
|
||||
"8 15 2 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,55 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbopen_xpm[] = {
|
||||
"16 15 37 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #FCFCFA",
|
||||
"( c #F7F6F3",
|
||||
") c #F7F7F5",
|
||||
"* c #F7F7F4",
|
||||
"+ c #F6F6F4",
|
||||
", c #F1F0EB",
|
||||
"- c #E5E1DA",
|
||||
". c #A5A5C6",
|
||||
"0 c #F5F5F1",
|
||||
"1 c #040404",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #ECEBE6",
|
||||
"7 c #EAE9E3",
|
||||
"8 c #E3E0D9",
|
||||
"9 c #DBD6CC",
|
||||
": c #E4E1D9",
|
||||
"; c #DCD8CF",
|
||||
"< c #D8D3C9",
|
||||
"= c #D7D2C7",
|
||||
"> c #D6D1C6",
|
||||
"? c #D2CCC0",
|
||||
"@ c #CFC8BB",
|
||||
"A c #D2CCBF",
|
||||
"B c #C6BEAE",
|
||||
"C c #C2B8A8",
|
||||
"D c #C1B8A7",
|
||||
"E c #C0B7A6",
|
||||
"F c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&&%'($ ",
|
||||
" $))**+,-$ ",
|
||||
".$0111112$ ",
|
||||
" $3456789$ ",
|
||||
" $:;<=>?@$ ",
|
||||
" $ABCDDEF$ ",
|
||||
" #$$$$$$$# ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . "};
|
|
@ -1,54 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbclose_xpm[] = {
|
||||
"16 16 35 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #040404",
|
||||
"( c #FCFCFA",
|
||||
") c #F7F6F3",
|
||||
"* c #F7F7F5",
|
||||
"+ c #F7F7F4",
|
||||
", c #F6F6F4",
|
||||
"- c #F1F0EB",
|
||||
". c #E5E1DA",
|
||||
"0 c #A5A5C6",
|
||||
"1 c #F5F5F1",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #EAE9E3",
|
||||
"7 c #E3E0D9",
|
||||
"8 c #DBD6CC",
|
||||
"9 c #E4E1D9",
|
||||
": c #DCD8CF",
|
||||
"; c #D8D3C9",
|
||||
"< c #D6D1C6",
|
||||
"= c #D2CCC0",
|
||||
"> c #CFC8BB",
|
||||
"? c #D2CCBF",
|
||||
"@ c #C6BEAE",
|
||||
"A c #C2B8A8",
|
||||
"B c #C1B8A7",
|
||||
"C c #C0B7A6",
|
||||
"D c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&'%()$ ",
|
||||
" $**+',-.$ ",
|
||||
"0$1'''''2$ ",
|
||||
" $345'678$ ",
|
||||
" $9:;'<=>$ ",
|
||||
" $?@ABBCD$ ",
|
||||
" #$$$$$$$# ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,279 +0,0 @@
|
|||
/* XPM */
|
||||
static char *empty[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 16 256 2",
|
||||
/* colors */
|
||||
"`` c #848400",
|
||||
"`. c #949429",
|
||||
"`# c #9c9c31",
|
||||
"`a c #9c9c39",
|
||||
"`b c #a5a542",
|
||||
"`c c #a5a54a",
|
||||
"`d c #adad4a",
|
||||
"`e c #adad52",
|
||||
"`f c #adad5a",
|
||||
"`g c None",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`````.`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`````.`#`a`````g`g`g`g`g`g`g",
|
||||
"`g`````.`#`a`a`b`````g`g`g`g`g`g",
|
||||
"`````.`#`a`a`b`c`c`````g`g`g`g`g",
|
||||
"```.`#`a`a`b`c`c`e`f```g`g`g`g`g",
|
||||
"`````a`a`b`c`c`e`f`````g`g`g`g`g",
|
||||
"`g`````b`c`c`e`f`````g`g`g`g`g`g",
|
||||
"`g`g`````c`e`f`````g`g`g`g`g`g`g",
|
||||
"`g`g`g`````f`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,279 +0,0 @@
|
|||
/* XPM */
|
||||
static char *end-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 16 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c"
|
||||
};
|
|
@ -1,279 +0,0 @@
|
|||
/* XPM */
|
||||
static char *guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 16 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#"
|
||||
};
|
|
@ -1,22 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbhandle_xpm[] = {
|
||||
"8 16 3 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c #ADA5C6",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
"########",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,279 +0,0 @@
|
|||
/* XPM */
|
||||
static char *leaf[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 16 256 2",
|
||||
/* colors */
|
||||
"`` c #424242",
|
||||
"`. c #737373",
|
||||
"`# c #7b7b7b",
|
||||
"`a c #848484",
|
||||
"`b c #8c8c8c",
|
||||
"`c c #949494",
|
||||
"`d c #9c9c9c",
|
||||
"`e c #a5a5a5",
|
||||
"`f c None",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f```.`#`#`a`a```f`f`f`f`f`f`f",
|
||||
"`f```.`#`#`a`a`b`b```f`f`f`f`f`f",
|
||||
"```.`#`#`a`a`b`b`c`c```f`f`f`f`f",
|
||||
"```#`#`a`a`b`b`c`c`d```f`f`f`f`f",
|
||||
"```#`a`a`b`b`c`c`d`e```f`f`f`f`f",
|
||||
"`f```a`b`b`c`c`d`e```f`f`f`f`f`f",
|
||||
"`f`f```b`c`c`d`e```f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f"
|
||||
};
|
|
@ -1,279 +0,0 @@
|
|||
/* XPM */
|
||||
static char *no-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 16 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #84849c",
|
||||
"`# c #8c8ca5",
|
||||
"`a c #a5a5c6",
|
||||
"`b c #ada5c6",
|
||||
"`c c #b5b5ce",
|
||||
"`d c #cecee7",
|
||||
"`e c #ceceff",
|
||||
"`f c #e7e7ff",
|
||||
"`g c None",
|
||||
"`h c #808000",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,21 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbnohandle_xpm[] = {
|
||||
"8 16 2 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,56 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbopen_xpm[] = {
|
||||
"16 16 37 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #FCFCFA",
|
||||
"( c #F7F6F3",
|
||||
") c #F7F7F5",
|
||||
"* c #F7F7F4",
|
||||
"+ c #F6F6F4",
|
||||
", c #F1F0EB",
|
||||
"- c #E5E1DA",
|
||||
". c #A5A5C6",
|
||||
"0 c #F5F5F1",
|
||||
"1 c #040404",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #ECEBE6",
|
||||
"7 c #EAE9E3",
|
||||
"8 c #E3E0D9",
|
||||
"9 c #DBD6CC",
|
||||
": c #E4E1D9",
|
||||
"; c #DCD8CF",
|
||||
"< c #D8D3C9",
|
||||
"= c #D7D2C7",
|
||||
"> c #D6D1C6",
|
||||
"? c #D2CCC0",
|
||||
"@ c #CFC8BB",
|
||||
"A c #D2CCBF",
|
||||
"B c #C6BEAE",
|
||||
"C c #C2B8A8",
|
||||
"D c #C1B8A7",
|
||||
"E c #C0B7A6",
|
||||
"F c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&&%'($ ",
|
||||
" $))**+,-$ ",
|
||||
".$0111112$ ",
|
||||
" $3456789$ ",
|
||||
" $:;<=>?@$ ",
|
||||
" $ABCDDEF$ ",
|
||||
" #$$$$$$$# ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . "};
|
|
@ -1,55 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbclose_xpm[] = {
|
||||
"16 17 35 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #040404",
|
||||
"( c #FCFCFA",
|
||||
") c #F7F6F3",
|
||||
"* c #F7F7F5",
|
||||
"+ c #F7F7F4",
|
||||
", c #F6F6F4",
|
||||
"- c #F1F0EB",
|
||||
". c #E5E1DA",
|
||||
"0 c #A5A5C6",
|
||||
"1 c #F5F5F1",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #EAE9E3",
|
||||
"7 c #E3E0D9",
|
||||
"8 c #DBD6CC",
|
||||
"9 c #E4E1D9",
|
||||
": c #DCD8CF",
|
||||
"; c #D8D3C9",
|
||||
"< c #D6D1C6",
|
||||
"= c #D2CCC0",
|
||||
"> c #CFC8BB",
|
||||
"? c #D2CCBF",
|
||||
"@ c #C6BEAE",
|
||||
"A c #C2B8A8",
|
||||
"B c #C1B8A7",
|
||||
"C c #C0B7A6",
|
||||
"D c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&'%()$ ",
|
||||
" $**+',-.$ ",
|
||||
"0$1'''''2$ ",
|
||||
" $345'678$ ",
|
||||
" $9:;'<=>$ ",
|
||||
" $?@ABBCD$ ",
|
||||
" #$$$$$$$# ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,280 +0,0 @@
|
|||
/* XPM */
|
||||
static char *empty[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 17 256 2",
|
||||
/* colors */
|
||||
"`` c #848400",
|
||||
"`. c #949429",
|
||||
"`# c #9c9c31",
|
||||
"`a c #9c9c39",
|
||||
"`b c #a5a542",
|
||||
"`c c #a5a54a",
|
||||
"`d c #adad4a",
|
||||
"`e c #adad52",
|
||||
"`f c #adad5a",
|
||||
"`g c None",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`````.`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`````.`#`a`````g`g`g`g`g`g`g",
|
||||
"`g`````.`#`a`a`b`````g`g`g`g`g`g",
|
||||
"`````.`#`a`a`b`c`c`````g`g`g`g`g",
|
||||
"```.`#`a`a`b`c`c`e`f```g`g`g`g`g",
|
||||
"`````a`a`b`c`c`e`f`````g`g`g`g`g",
|
||||
"`g`````b`c`c`e`f`````g`g`g`g`g`g",
|
||||
"`g`g`````c`e`f`````g`g`g`g`g`g`g",
|
||||
"`g`g`g`````f`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,280 +0,0 @@
|
|||
/* XPM */
|
||||
static char *end-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 17 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c"
|
||||
};
|
|
@ -1,280 +0,0 @@
|
|||
/* XPM */
|
||||
static char *guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 17 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#"
|
||||
};
|
|
@ -1,23 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbhandle_xpm[] = {
|
||||
"8 17 3 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c #ADA5C6",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
"########",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,280 +0,0 @@
|
|||
/* XPM */
|
||||
static char *leaf[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 17 256 2",
|
||||
/* colors */
|
||||
"`` c #424242",
|
||||
"`. c #737373",
|
||||
"`# c #7b7b7b",
|
||||
"`a c #848484",
|
||||
"`b c #8c8c8c",
|
||||
"`c c #949494",
|
||||
"`d c #9c9c9c",
|
||||
"`e c #a5a5a5",
|
||||
"`f c None",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f```.`#`#`a`a```f`f`f`f`f`f`f",
|
||||
"`f```.`#`#`a`a`b`b```f`f`f`f`f`f",
|
||||
"```.`#`#`a`a`b`b`c`c```f`f`f`f`f",
|
||||
"```#`#`a`a`b`b`c`c`d```f`f`f`f`f",
|
||||
"```#`a`a`b`b`c`c`d`e```f`f`f`f`f",
|
||||
"`f```a`b`b`c`c`d`e```f`f`f`f`f`f",
|
||||
"`f`f```b`c`c`d`e```f`f`f`f`f`f`f",
|
||||
"`f`f`f```````````f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f",
|
||||
"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f"
|
||||
};
|
|
@ -1,280 +0,0 @@
|
|||
/* XPM */
|
||||
static char *no-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 17 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #84849c",
|
||||
"`# c #8c8ca5",
|
||||
"`a c #a5a5c6",
|
||||
"`b c #ada5c6",
|
||||
"`c c #b5b5ce",
|
||||
"`d c #cecee7",
|
||||
"`e c #ceceff",
|
||||
"`f c #e7e7ff",
|
||||
"`g c None",
|
||||
"`h c #808000",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,22 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbnohandle_xpm[] = {
|
||||
"8 17 2 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,57 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbopen_xpm[] = {
|
||||
"16 17 37 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #FCFCFA",
|
||||
"( c #F7F6F3",
|
||||
") c #F7F7F5",
|
||||
"* c #F7F7F4",
|
||||
"+ c #F6F6F4",
|
||||
", c #F1F0EB",
|
||||
"- c #E5E1DA",
|
||||
". c #A5A5C6",
|
||||
"0 c #F5F5F1",
|
||||
"1 c #040404",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #ECEBE6",
|
||||
"7 c #EAE9E3",
|
||||
"8 c #E3E0D9",
|
||||
"9 c #DBD6CC",
|
||||
": c #E4E1D9",
|
||||
"; c #DCD8CF",
|
||||
"< c #D8D3C9",
|
||||
"= c #D7D2C7",
|
||||
"> c #D6D1C6",
|
||||
"? c #D2CCC0",
|
||||
"@ c #CFC8BB",
|
||||
"A c #D2CCBF",
|
||||
"B c #C6BEAE",
|
||||
"C c #C2B8A8",
|
||||
"D c #C1B8A7",
|
||||
"E c #C0B7A6",
|
||||
"F c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&&%'($ ",
|
||||
" $))**+,-$ ",
|
||||
".$0111112$ ",
|
||||
" $3456789$ ",
|
||||
" $:;<=>?@$ ",
|
||||
" $ABCDDEF$ ",
|
||||
" #$$$$$$$# ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . "};
|
|
@ -1,56 +0,0 @@
|
|||
/* XPM */
|
||||
static char * ecbclose_xpm[] = {
|
||||
"16 18 35 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c white",
|
||||
"$ c #7898B5",
|
||||
"% c #FCFCFB",
|
||||
"& c #FDFDFB",
|
||||
"' c #040404",
|
||||
"( c #FCFCFA",
|
||||
") c #F7F6F3",
|
||||
"* c #F7F7F5",
|
||||
"+ c #F7F7F4",
|
||||
", c #F6F6F4",
|
||||
"- c #F1F0EB",
|
||||
". c #E5E1DA",
|
||||
"0 c #A5A5C6",
|
||||
"1 c #F5F5F1",
|
||||
"2 c #DFDBD2",
|
||||
"3 c #F2F2EE",
|
||||
"4 c #F0F0EC",
|
||||
"5 c #EDEDE7",
|
||||
"6 c #EAE9E3",
|
||||
"7 c #E3E0D9",
|
||||
"8 c #DBD6CC",
|
||||
"9 c #E4E1D9",
|
||||
": c #DCD8CF",
|
||||
"; c #D8D3C9",
|
||||
"< c #D6D1C6",
|
||||
"= c #D2CCC0",
|
||||
"> c #CFC8BB",
|
||||
"? c #D2CCBF",
|
||||
"@ c #C6BEAE",
|
||||
"A c #C2B8A8",
|
||||
"B c #C1B8A7",
|
||||
"C c #C0B7A6",
|
||||
"D c #C3BAAA",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" #$$$$$$$# ",
|
||||
" $#######$ ",
|
||||
" $%&&'%()$ ",
|
||||
" $**+',-.$ ",
|
||||
"0$1'''''2$ ",
|
||||
" $345'678$ ",
|
||||
" $9:;'<=>$ ",
|
||||
" $?@ABBCD$ ",
|
||||
" #$$$$$$$# ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
|
@ -1,281 +0,0 @@
|
|||
/* XPM */
|
||||
static char *empty[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 16 18 256 2",
|
||||
/* colors */
|
||||
"`` c #848400",
|
||||
"`. c #949429",
|
||||
"`# c #9c9c31",
|
||||
"`a c #9c9c39",
|
||||
"`b c #a5a542",
|
||||
"`c c #a5a54a",
|
||||
"`d c #adad4a",
|
||||
"`e c #adad52",
|
||||
"`f c #adad5a",
|
||||
"`g c None",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #ffffff",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`````.`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`````.`#`a`````g`g`g`g`g`g`g",
|
||||
"`g`````.`#`a`a`b`````g`g`g`g`g`g",
|
||||
"`````.`#`a`a`b`c`c`````g`g`g`g`g",
|
||||
"```.`#`a`a`b`c`c`e`f```g`g`g`g`g",
|
||||
"`````a`a`b`c`c`e`f`````g`g`g`g`g",
|
||||
"`g`````b`c`c`e`f`````g`g`g`g`g`g",
|
||||
"`g`g`````c`e`f`````g`g`g`g`g`g`g",
|
||||
"`g`g`g`````f`````g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g```````g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g",
|
||||
"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g"
|
||||
};
|
|
@ -1,281 +0,0 @@
|
|||
/* XPM */
|
||||
static char *end-guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 18 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c",
|
||||
"`c`c`c`c`c`c"
|
||||
};
|
|
@ -1,281 +0,0 @@
|
|||
/* XPM */
|
||||
static char *guide[] = {
|
||||
/* width height num_colors chars_per_pixel */
|
||||
" 6 18 256 2",
|
||||
/* colors */
|
||||
"`` c #000000",
|
||||
"`. c #a5a5c6",
|
||||
"`# c #ada5c6",
|
||||
"`a c #cecee7",
|
||||
"`b c #ceceff",
|
||||
"`c c None",
|
||||
"`d c #ffffff",
|
||||
"`e c #ffffff",
|
||||
"`f c #ffffff",
|
||||
"`g c #ffffff",
|
||||
"`h c #ffffff",
|
||||
"`i c #ffffff",
|
||||
"`j c #ffffff",
|
||||
"`k c #ffffff",
|
||||
"`l c #ffffff",
|
||||
"`m c #ffffff",
|
||||
"`n c #ffffff",
|
||||
"`o c #ffffff",
|
||||
"`p c #ffffff",
|
||||
"`q c #ffffff",
|
||||
"`r c #ffffff",
|
||||
"`s c #ffffff",
|
||||
"`t c #ffffff",
|
||||
"`u c #ffffff",
|
||||
"`v c #ffffff",
|
||||
"`w c #ffffff",
|
||||
"`x c #ffffff",
|
||||
"`y c #ffffff",
|
||||
"`z c #ffffff",
|
||||
"`A c #ffffff",
|
||||
"`B c #ffffff",
|
||||
"`C c #ffffff",
|
||||
"`D c #808000",
|
||||
"`E c #ffffff",
|
||||
"`F c #ffffff",
|
||||
"`G c #ffffff",
|
||||
"`H c #ffffff",
|
||||
"`I c #ffffff",
|
||||
"`J c #ffffff",
|
||||
"`K c #ffffff",
|
||||
"`L c #ffffff",
|
||||
"`M c #ffffff",
|
||||
"`N c #ffffff",
|
||||
"`O c #ffffff",
|
||||
"`P c #ffffff",
|
||||
"`Q c #ffffff",
|
||||
"`R c #ffffff",
|
||||
"`S c #ffffff",
|
||||
"`T c #ffffff",
|
||||
"`U c #ffffff",
|
||||
"`V c #ffffff",
|
||||
"`W c #ffffff",
|
||||
"`X c #ffffff",
|
||||
"`Y c #ffffff",
|
||||
"`Z c #ffffff",
|
||||
"`0 c #ffffff",
|
||||
"`1 c #ffffff",
|
||||
"`2 c #ffffff",
|
||||
"`3 c #ffffff",
|
||||
"`4 c #ffffff",
|
||||
"`5 c #ffffff",
|
||||
"`6 c #ffffff",
|
||||
"`7 c #ffffff",
|
||||
"`8 c #ffffff",
|
||||
".` c #ffffff",
|
||||
".. c #ffffff",
|
||||
".# c #ffffff",
|
||||
".a c #ffffff",
|
||||
".b c #ffffff",
|
||||
".c c #ffffff",
|
||||
".d c #ffffff",
|
||||
".e c #ffffff",
|
||||
".f c #ffffff",
|
||||
".g c #ffffff",
|
||||
".h c #ffffff",
|
||||
".i c #ffffff",
|
||||
".j c #ffffff",
|
||||
".k c #ffffff",
|
||||
".l c #ffffff",
|
||||
".m c #ffffff",
|
||||
".n c #ffffff",
|
||||
".o c #ffffff",
|
||||
".p c #ffffff",
|
||||
".q c #ffffff",
|
||||
".r c #ffffff",
|
||||
".s c #ffffff",
|
||||
".t c #ffffff",
|
||||
".u c #ffffff",
|
||||
".v c #ffffff",
|
||||
".w c #ffffff",
|
||||
".x c #ffffff",
|
||||
".y c #ffffff",
|
||||
".z c #ffffff",
|
||||
".A c #ffffff",
|
||||
".B c #ffffff",
|
||||
".C c #ffffff",
|
||||
".D c #ffffff",
|
||||
".E c #ffffff",
|
||||
".F c #ffffff",
|
||||
".G c #ffffff",
|
||||
".H c #ffffff",
|
||||
".I c #ffffff",
|
||||
".J c #ffffff",
|
||||
".K c #ffffff",
|
||||
".L c #ffffff",
|
||||
".M c #ffffff",
|
||||
".N c #ffffff",
|
||||
".O c #ffffff",
|
||||
".P c #ffffff",
|
||||
".Q c #ffffff",
|
||||
".R c #ffffff",
|
||||
".S c #ffffff",
|
||||
".T c #ffffff",
|
||||
".U c #ffffff",
|
||||
".V c #ffffff",
|
||||
".W c #ffffff",
|
||||
".X c #ffffff",
|
||||
".Y c #ffffff",
|
||||
".Z c #ffffff",
|
||||
".0 c #ffffff",
|
||||
".1 c #ffffff",
|
||||
".2 c #ffffff",
|
||||
".3 c #ffffff",
|
||||
".4 c #ffffff",
|
||||
".5 c #ffffff",
|
||||
".6 c #ffffff",
|
||||
".7 c #ffffff",
|
||||
".8 c #ffffff",
|
||||
"#` c #ffffff",
|
||||
"#. c #ffffff",
|
||||
"## c #ffffff",
|
||||
"#a c #ffffff",
|
||||
"#b c #ffffff",
|
||||
"#c c #ffffff",
|
||||
"#d c #ffffff",
|
||||
"#e c #ffffff",
|
||||
"#f c #ffffff",
|
||||
"#g c #ffffff",
|
||||
"#h c #ffffff",
|
||||
"#i c #ffffff",
|
||||
"#j c #ffffff",
|
||||
"#k c #ffffff",
|
||||
"#l c #ffffff",
|
||||
"#m c #ffffff",
|
||||
"#n c #ffffff",
|
||||
"#o c #ffffff",
|
||||
"#p c #ffffff",
|
||||
"#q c #ffffff",
|
||||
"#r c #ffffff",
|
||||
"#s c #ffffff",
|
||||
"#t c #ffffff",
|
||||
"#u c #ffffff",
|
||||
"#v c #ffffff",
|
||||
"#w c #ffffff",
|
||||
"#x c #ffffff",
|
||||
"#y c #ffffff",
|
||||
"#z c #ffffff",
|
||||
"#A c #ffffff",
|
||||
"#B c #ffffff",
|
||||
"#C c #ffffff",
|
||||
"#D c #ffffff",
|
||||
"#E c #ffffff",
|
||||
"#F c #ffffff",
|
||||
"#G c #ffffff",
|
||||
"#H c #ffffff",
|
||||
"#I c #ffffff",
|
||||
"#J c #ffffff",
|
||||
"#K c #ffffff",
|
||||
"#L c #ffffff",
|
||||
"#M c #ffffff",
|
||||
"#N c #ffffff",
|
||||
"#O c #ffffff",
|
||||
"#P c #ffffff",
|
||||
"#Q c #ffffff",
|
||||
"#R c #ffffff",
|
||||
"#S c #ffffff",
|
||||
"#T c #ffffff",
|
||||
"#U c #ffffff",
|
||||
"#V c #ffffff",
|
||||
"#W c #ffffff",
|
||||
"#X c #ffffff",
|
||||
"#Y c #ffffff",
|
||||
"#Z c #ffffff",
|
||||
"#0 c #ffffff",
|
||||
"#1 c #ffffff",
|
||||
"#2 c #ffffff",
|
||||
"#3 c #ffffff",
|
||||
"#4 c #ffffff",
|
||||
"#5 c #ffffff",
|
||||
"#6 c #ffffff",
|
||||
"#7 c #ffffff",
|
||||
"#8 c #ffffff",
|
||||
"a` c #ffffff",
|
||||
"a. c #ffffff",
|
||||
"a# c #ffffff",
|
||||
"aa c #ffffff",
|
||||
"ab c #ffffff",
|
||||
"ac c #ffffff",
|
||||
"ad c #ffffff",
|
||||
"ae c #ffffff",
|
||||
"af c #ffffff",
|
||||
"ag c #ffffff",
|
||||
"ah c #ffffff",
|
||||
"ai c #ffffff",
|
||||
"aj c #ffffff",
|
||||
"ak c #ffffff",
|
||||
"al c #ffffff",
|
||||
"am c #ffffff",
|
||||
"an c #ffffff",
|
||||
"ao c #ffffff",
|
||||
"ap c #ffffff",
|
||||
"aq c #ffffff",
|
||||
"ar c #ffffff",
|
||||
"as c #ffffff",
|
||||
"at c #ffffff",
|
||||
"au c #ffffff",
|
||||
"av c #ffffff",
|
||||
"aw c #ffffff",
|
||||
"ax c #ffffff",
|
||||
"ay c #ffffff",
|
||||
"az c #ffffff",
|
||||
"aA c #ffffff",
|
||||
"aB c #ffffff",
|
||||
"aC c #ffffff",
|
||||
"aD c #ffffff",
|
||||
"aE c #ffffff",
|
||||
"aF c #ffffff",
|
||||
"aG c #ffffff",
|
||||
"aH c #ffffff",
|
||||
"aI c #ffffff",
|
||||
"aJ c #ffffff",
|
||||
"aK c #ffffff",
|
||||
"aL c #ffffff",
|
||||
"aM c #ffffff",
|
||||
"aN c #ffffff",
|
||||
"aO c #ffffff",
|
||||
"aP c #ffffff",
|
||||
"aQ c #ffffff",
|
||||
"aR c #ffffff",
|
||||
"aS c #ffffff",
|
||||
"aT c #ffffff",
|
||||
"aU c #ffffff",
|
||||
"aV c #ffffff",
|
||||
"aW c #ffffff",
|
||||
"aX c #ffffff",
|
||||
"aY c #ffffff",
|
||||
"aZ c #ffffff",
|
||||
"a0 c #ffffff",
|
||||
"a1 c #ffffff",
|
||||
"a2 c #ffffff",
|
||||
"a3 c #ffffff",
|
||||
"a4 c #ffffff",
|
||||
"a5 c #ffffff",
|
||||
"a6 c #ffffff",
|
||||
"a7 c #ffffff",
|
||||
"a8 c #ffffff",
|
||||
/* pixels */
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#",
|
||||
"`c`c`c`c`c`#"
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue