From 6d8b81a439bde8f13992ad6708eb10479b7a5e53 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Mon, 11 Feb 2013 17:52:50 +0330 Subject: [PATCH] ecb added. new config file needs to be implemented --- conf/emacs.d/ecb/.gitignore | 5 + conf/emacs.d/ecb/CYCLE_PROPOSAL | 162 + conf/emacs.d/ecb/Makefile | 263 + conf/emacs.d/ecb/NEWS | 3135 +++ conf/emacs.d/ecb/README | 210 + conf/emacs.d/ecb/RELEASE_NOTES | 288 + conf/emacs.d/ecb/TODO | 34 + conf/emacs.d/ecb/TODO.org | 7 + conf/emacs.d/ecb/ecb-advice-test.el | 281 + conf/emacs.d/ecb/ecb-analyse.el | 714 + conf/emacs.d/ecb/ecb-autogen.el | 160 + conf/emacs.d/ecb/ecb-buffertab.el | 115 + conf/emacs.d/ecb/ecb-cedet-wrapper.el | 368 + conf/emacs.d/ecb/ecb-common-browser.el | 2178 +++ conf/emacs.d/ecb/ecb-compatibility.el | 369 + conf/emacs.d/ecb/ecb-compilation.el | 312 + conf/emacs.d/ecb/ecb-create-layout.el | 861 + conf/emacs.d/ecb/ecb-cycle.el | 137 + conf/emacs.d/ecb/ecb-eshell.el | 394 + conf/emacs.d/ecb/ecb-examples.el | 560 + conf/emacs.d/ecb/ecb-face.el | 768 + conf/emacs.d/ecb/ecb-file-browser.el | 4898 +++++ conf/emacs.d/ecb/ecb-help.el | 458 + .../default/height-10/ecb-close.xpm | 48 + .../default/height-10/ecb-empty.xpm | 41 + .../default/height-10/ecb-end-guide.xpm | 15 + .../default/height-10/ecb-guide.xpm | 15 + .../default/height-10/ecb-handle.xpm | 16 + .../ecb-images/default/height-10/ecb-leaf.xpm | 34 + .../default/height-10/ecb-no-guide.xpm | 14 + .../default/height-10/ecb-no-handle.xpm | 15 + .../ecb-images/default/height-10/ecb-open.xpm | 50 + .../default/height-14/ecb-close.xpm | 51 + .../default/height-14/ecb-empty.xpm | 277 + .../default/height-14/ecb-end-guide.xpm | 277 + .../default/height-14/ecb-guide.xpm | 277 + .../default/height-14/ecb-handle.xpm | 19 + .../ecb-images/default/height-14/ecb-leaf.xpm | 277 + .../default/height-14/ecb-no-guide.xpm | 277 + .../default/height-14/ecb-no-handle.xpm | 18 + .../ecb-images/default/height-14/ecb-open.xpm | 53 + .../default/height-15/ecb-close.xpm | 53 + .../default/height-15/ecb-empty.xpm | 278 + .../default/height-15/ecb-end-guide.xpm | 278 + .../default/height-15/ecb-guide.xpm | 278 + .../default/height-15/ecb-handle.xpm | 21 + .../ecb-images/default/height-15/ecb-leaf.xpm | 278 + .../default/height-15/ecb-no-guide.xpm | 278 + .../default/height-15/ecb-no-handle.xpm | 20 + .../ecb-images/default/height-15/ecb-open.xpm | 55 + .../default/height-16/ecb-close.xpm | 54 + .../default/height-16/ecb-empty.xpm | 279 + .../default/height-16/ecb-end-guide.xpm | 279 + .../default/height-16/ecb-guide.xpm | 279 + .../default/height-16/ecb-handle.xpm | 22 + .../ecb-images/default/height-16/ecb-leaf.xpm | 279 + .../default/height-16/ecb-no-guide.xpm | 279 + .../default/height-16/ecb-no-handle.xpm | 21 + .../ecb-images/default/height-16/ecb-open.xpm | 56 + .../default/height-17/ecb-close.xpm | 55 + .../default/height-17/ecb-empty.xpm | 280 + .../default/height-17/ecb-end-guide.xpm | 280 + .../default/height-17/ecb-guide.xpm | 280 + .../default/height-17/ecb-handle.xpm | 23 + .../ecb-images/default/height-17/ecb-leaf.xpm | 280 + .../default/height-17/ecb-no-guide.xpm | 280 + .../default/height-17/ecb-no-handle.xpm | 22 + .../ecb-images/default/height-17/ecb-open.xpm | 57 + .../default/height-18/ecb-close.xpm | 56 + .../default/height-18/ecb-empty.xpm | 281 + .../default/height-18/ecb-end-guide.xpm | 281 + .../default/height-18/ecb-guide.xpm | 281 + .../default/height-18/ecb-handle.xpm | 24 + .../ecb-images/default/height-18/ecb-leaf.xpm | 281 + .../default/height-18/ecb-no-guide.xpm | 281 + .../default/height-18/ecb-no-handle.xpm | 23 + .../ecb-images/default/height-18/ecb-open.xpm | 58 + .../default/height-19/ecb-close.xpm | 57 + .../default/height-19/ecb-empty.xpm | 282 + .../default/height-19/ecb-end-guide.xpm | 282 + .../default/height-19/ecb-guide.xpm | 282 + .../default/height-19/ecb-handle.xpm | 25 + .../ecb-images/default/height-19/ecb-leaf.xpm | 282 + .../default/height-19/ecb-no-guide.xpm | 282 + .../default/height-19/ecb-no-handle.xpm | 24 + .../ecb-images/default/height-19/ecb-open.xpm | 59 + .../default/height-20/ecb-close.xpm | 58 + .../default/height-20/ecb-empty.xpm | 283 + .../default/height-20/ecb-end-guide.xpm | 283 + .../default/height-20/ecb-guide.xpm | 283 + .../default/height-20/ecb-handle.xpm | 26 + .../ecb-images/default/height-20/ecb-leaf.xpm | 283 + .../default/height-20/ecb-no-guide.xpm | 283 + .../default/height-20/ecb-no-handle.xpm | 25 + .../ecb-images/default/height-20/ecb-open.xpm | 60 + .../default/height-21/ecb-close.xpm | 59 + .../default/height-21/ecb-empty.xpm | 284 + .../default/height-21/ecb-end-guide.xpm | 284 + .../default/height-21/ecb-guide.xpm | 284 + .../default/height-21/ecb-handle.xpm | 27 + .../ecb-images/default/height-21/ecb-leaf.xpm | 284 + .../default/height-21/ecb-no-guide.xpm | 284 + .../default/height-21/ecb-no-handle.xpm | 26 + .../ecb-images/default/height-21/ecb-open.xpm | 61 + .../directories/height-10/ecb-close.xpm | 62 + .../directories/height-10/ecb-empty.xpm | 38 + .../directories/height-10/ecb-leaf.xpm | 32 + .../directories/height-10/ecb-open.xpm | 33 + .../directories/height-14/ecb-close.xpm | 277 + .../directories/height-14/ecb-empty.xpm | 277 + .../directories/height-14/ecb-leaf.xpm | 277 + .../directories/height-14/ecb-open.xpm | 277 + .../directories/height-15/ecb-close.xpm | 278 + .../directories/height-15/ecb-empty.xpm | 32 + .../directories/height-15/ecb-leaf.xpm | 278 + .../directories/height-15/ecb-open.xpm | 278 + .../directories/height-16/ecb-close.xpm | 279 + .../directories/height-16/ecb-empty.xpm | 33 + .../directories/height-16/ecb-leaf.xpm | 279 + .../directories/height-16/ecb-open.xpm | 279 + .../directories/height-17/ecb-close.xpm | 280 + .../directories/height-17/ecb-empty.xpm | 34 + .../directories/height-17/ecb-leaf.xpm | 280 + .../directories/height-17/ecb-open.xpm | 280 + .../directories/height-18/ecb-close.xpm | 281 + .../directories/height-18/ecb-empty.xpm | 35 + .../directories/height-18/ecb-leaf.xpm | 281 + .../directories/height-18/ecb-open.xpm | 281 + .../directories/height-19/ecb-close.xpm | 282 + .../directories/height-19/ecb-empty.xpm | 36 + .../directories/height-19/ecb-leaf.xpm | 282 + .../directories/height-19/ecb-open.xpm | 282 + .../directories/height-20/ecb-close.xpm | 283 + .../directories/height-20/ecb-empty.xpm | 37 + .../directories/height-20/ecb-leaf.xpm | 283 + .../directories/height-20/ecb-open.xpm | 283 + .../directories/height-21/ecb-close.xpm | 284 + .../directories/height-21/ecb-empty.xpm | 38 + .../directories/height-21/ecb-leaf.xpm | 284 + .../directories/height-21/ecb-open.xpm | 284 + .../ecb-abstract-class-private.xpm | 49 + .../ecb-abstract-class-protected.xpm | 55 + .../ecb-abstract-class-public.xpm | 49 + .../ecb-abstract-class-unknown.xpm | 48 + .../ecb-abstract-constructor-private.xpm | 35 + .../ecb-abstract-constructor-protected.xpm | 42 + .../ecb-abstract-constructor-public.xpm | 34 + .../ecb-abstract-constructor-unknown.xpm | 32 + .../ecb-abstract-function-private-static.xpm | 61 + .../ecb-abstract-function-private.xpm | 37 + ...ecb-abstract-function-protected-static.xpm | 68 + .../ecb-abstract-function-protected.xpm | 44 + .../ecb-abstract-function-public-static.xpm | 61 + .../ecb-abstract-function-public.xpm | 36 + .../ecb-abstract-function-unknown-static.xpm | 60 + .../ecb-abstract-function-unknown.xpm | 35 + .../ecb-abstract-variable-private-static.xpm | 64 + .../ecb-abstract-variable-private.xpm | 48 + ...ecb-abstract-variable-protected-static.xpm | 68 + .../ecb-abstract-variable-protected.xpm | 54 + .../ecb-abstract-variable-public-static.xpm | 65 + .../ecb-abstract-variable-public.xpm | 48 + .../ecb-abstract-variable-unknown-static.xpm | 63 + .../ecb-abstract-variable-unknown.xpm | 46 + .../height-14_to_21/ecb-class-private.xpm | 57 + .../height-14_to_21/ecb-class-protected.xpm | 65 + .../height-14_to_21/ecb-class-public.xpm | 56 + .../height-14_to_21/ecb-class-unknown.xpm | 55 + .../ecb-constructor-bucket.xpm | 111 + .../ecb-constructor-private.xpm | 39 + .../ecb-constructor-protected.xpm | 48 + .../ecb-constructor-public.xpm | 39 + .../ecb-constructor-unknown.xpm | 36 + .../height-14_to_21/ecb-enum-private.xpm | 24 + .../height-14_to_21/ecb-enum-protected.xpm | 33 + .../height-14_to_21/ecb-enum-public.xpm | 23 + .../height-14_to_21/ecb-enum-unknown.xpm | 22 + .../height-14_to_21/ecb-function-bucket.xpm | 120 + .../ecb-function-private-static.xpm | 70 + .../height-14_to_21/ecb-function-private.xpm | 37 + .../ecb-function-protected-static.xpm | 77 + .../ecb-function-protected.xpm | 45 + .../ecb-function-public-static.xpm | 68 + .../height-14_to_21/ecb-function-public.xpm | 36 + .../ecb-function-unknown-static.xpm | 67 + .../height-14_to_21/ecb-function-unknown.xpm | 35 + .../height-14_to_21/ecb-parent-bucket.xpm | 205 + .../height-14_to_21/ecb-parent-private.xpm | 127 + .../height-14_to_21/ecb-parent-protected.xpm | 136 + .../height-14_to_21/ecb-parent-public.xpm | 126 + .../height-14_to_21/ecb-parent-unknown.xpm | 122 + .../height-14_to_21/ecb-variable-bucket.xpm | 133 + .../ecb-variable-private-static.xpm | 72 + .../height-14_to_21/ecb-variable-private.xpm | 56 + .../ecb-variable-protected-static.xpm | 80 + .../ecb-variable-protected.xpm | 64 + .../ecb-variable-public-static.xpm | 72 + .../height-14_to_21/ecb-variable-public.xpm | 56 + .../ecb-variable-unknown-static.xpm | 70 + .../height-14_to_21/ecb-variable-unknown.xpm | 54 + .../sources/height-14_to_21/ecb-leaf.xpm | 277 + .../sources/height-14_to_21/ecb-vc-added.xpm | 27 + .../sources/height-14_to_21/ecb-vc-edited.xpm | 27 + .../height-14_to_21/ecb-vc-ignored.xpm | 27 + .../height-14_to_21/ecb-vc-needs-merge.xpm | 27 + .../height-14_to_21/ecb-vc-needs-patch.xpm | 28 + .../height-14_to_21/ecb-vc-unknown.xpm | 27 + .../height-14_to_21/ecb-vc-up-to-date.xpm | 27 + conf/emacs.d/ecb/ecb-jde.el | 179 + conf/emacs.d/ecb/ecb-layout-defs.el | 990 + conf/emacs.d/ecb/ecb-layout.el | 6327 ++++++ conf/emacs.d/ecb/ecb-makedef.mk | 63 + conf/emacs.d/ecb/ecb-method-browser.el | 4798 +++++ conf/emacs.d/ecb/ecb-mode-line.el | 339 + conf/emacs.d/ecb/ecb-multiframe.el | 195 + conf/emacs.d/ecb/ecb-navigate.el | 385 + conf/emacs.d/ecb/ecb-semantic-wrapper.el | 416 + conf/emacs.d/ecb/ecb-semantic.el | 142 + conf/emacs.d/ecb/ecb-speedbar.el | 563 + conf/emacs.d/ecb/ecb-symboldef.el | 649 + conf/emacs.d/ecb/ecb-tod.el | 149 + conf/emacs.d/ecb/ecb-upgrade.el | 1295 ++ conf/emacs.d/ecb/ecb-util.el | 2363 +++ conf/emacs.d/ecb/ecb-winman-support.el | 319 + conf/emacs.d/ecb/ecb.el | 1954 ++ conf/emacs.d/ecb/ecb.texi | 15945 ++++++++++++++++ conf/emacs.d/ecb/ecb2/jn-file-tree.el | 63 + conf/emacs.d/ecb/ecb2/jn-tree-node.el | 267 + conf/emacs.d/ecb/ecb2/jn-tree-view.el | 220 + conf/emacs.d/ecb/ecb2/jn-utils.el | 42 + conf/emacs.d/ecb/ecb2/jn-window.el | 237 + conf/emacs.d/ecb/ecb2/test.el | 83 + conf/emacs.d/ecb/html/Makefile | 161 + conf/emacs.d/ecb/html/bullet.gif | Bin 0 -> 54 bytes conf/emacs.d/ecb/html/ecb-html.el | 517 + conf/emacs.d/ecb/html/ecb_logo.gif | Bin 0 -> 1198 bytes conf/emacs.d/ecb/html/html-helper.el | 244 + conf/emacs.d/ecb/html/index.html | 21 + conf/emacs.d/ecb/html/mail.gif | Bin 0 -> 199 bytes conf/emacs.d/ecb/html/screenshots/1-thumb.png | Bin 0 -> 53990 bytes conf/emacs.d/ecb/html/screenshots/1.png | Bin 0 -> 355558 bytes .../emacs.d/ecb/html/screenshots/10-thumb.png | Bin 0 -> 42403 bytes conf/emacs.d/ecb/html/screenshots/10.png | Bin 0 -> 173157 bytes .../emacs.d/ecb/html/screenshots/11-thumb.png | Bin 0 -> 46282 bytes conf/emacs.d/ecb/html/screenshots/11.png | Bin 0 -> 142622 bytes .../emacs.d/ecb/html/screenshots/12-thumb.png | Bin 0 -> 41300 bytes conf/emacs.d/ecb/html/screenshots/12.png | Bin 0 -> 261414 bytes conf/emacs.d/ecb/html/screenshots/2-thumb.png | Bin 0 -> 47128 bytes conf/emacs.d/ecb/html/screenshots/2.png | Bin 0 -> 34230 bytes conf/emacs.d/ecb/html/screenshots/3-thumb.png | Bin 0 -> 56915 bytes conf/emacs.d/ecb/html/screenshots/3.png | Bin 0 -> 45075 bytes conf/emacs.d/ecb/html/screenshots/4-thumb.png | Bin 0 -> 50413 bytes conf/emacs.d/ecb/html/screenshots/4.png | Bin 0 -> 80814 bytes conf/emacs.d/ecb/html/screenshots/5-thumb.png | Bin 0 -> 32861 bytes conf/emacs.d/ecb/html/screenshots/5.png | Bin 0 -> 48450 bytes conf/emacs.d/ecb/html/screenshots/6-thumb.png | Bin 0 -> 34526 bytes conf/emacs.d/ecb/html/screenshots/6.png | Bin 0 -> 45793 bytes conf/emacs.d/ecb/html/screenshots/7-thumb.png | Bin 0 -> 44111 bytes conf/emacs.d/ecb/html/screenshots/7.png | Bin 0 -> 60804 bytes conf/emacs.d/ecb/html/screenshots/8-thumb.png | Bin 0 -> 33227 bytes conf/emacs.d/ecb/html/screenshots/8.png | Bin 0 -> 33492 bytes conf/emacs.d/ecb/html/screenshots/9-thumb.png | Bin 0 -> 56080 bytes conf/emacs.d/ecb/html/screenshots/9.png | Bin 0 -> 198399 bytes conf/emacs.d/ecb/html/screenshots/index.html | 120 + conf/emacs.d/ecb/html/smiley.gif | Bin 0 -> 93 bytes conf/emacs.d/ecb/make.bat | 74 + conf/emacs.d/ecb/silentcomp.el | 210 + conf/emacs.d/ecb/tree-buffer.el | 3525 ++++ conf/emacs.d/icon.svg | 140 + conf/emacs.d/kuso | 3 + conf/emacs.d/pyemacs.sh | 7 + conf/kuso.tmp | 174 + 272 files changed, 84216 insertions(+) create mode 100644 conf/emacs.d/ecb/.gitignore create mode 100644 conf/emacs.d/ecb/CYCLE_PROPOSAL create mode 100644 conf/emacs.d/ecb/Makefile create mode 100644 conf/emacs.d/ecb/NEWS create mode 100644 conf/emacs.d/ecb/README create mode 100644 conf/emacs.d/ecb/RELEASE_NOTES create mode 100644 conf/emacs.d/ecb/TODO create mode 100644 conf/emacs.d/ecb/TODO.org create mode 100755 conf/emacs.d/ecb/ecb-advice-test.el create mode 100644 conf/emacs.d/ecb/ecb-analyse.el create mode 100644 conf/emacs.d/ecb/ecb-autogen.el create mode 100644 conf/emacs.d/ecb/ecb-buffertab.el create mode 100755 conf/emacs.d/ecb/ecb-cedet-wrapper.el create mode 100644 conf/emacs.d/ecb/ecb-common-browser.el create mode 100644 conf/emacs.d/ecb/ecb-compatibility.el create mode 100644 conf/emacs.d/ecb/ecb-compilation.el create mode 100644 conf/emacs.d/ecb/ecb-create-layout.el create mode 100644 conf/emacs.d/ecb/ecb-cycle.el create mode 100644 conf/emacs.d/ecb/ecb-eshell.el create mode 100644 conf/emacs.d/ecb/ecb-examples.el create mode 100644 conf/emacs.d/ecb/ecb-face.el create mode 100644 conf/emacs.d/ecb/ecb-file-browser.el create mode 100644 conf/emacs.d/ecb/ecb-help.el create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-10/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-14/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-15/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-16/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-17/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-18/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-19/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-20/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-end-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-guide.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-handle.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/default/height-21/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-close.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-empty.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-open.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-private-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-bucket.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-bucket.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-private-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-bucket.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-bucket.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-unknown-static.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-leaf.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-added.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-edited.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-ignored.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-merge.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-patch.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-unknown.xpm create mode 100644 conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-up-to-date.xpm create mode 100644 conf/emacs.d/ecb/ecb-jde.el create mode 100644 conf/emacs.d/ecb/ecb-layout-defs.el create mode 100644 conf/emacs.d/ecb/ecb-layout.el create mode 100644 conf/emacs.d/ecb/ecb-makedef.mk create mode 100644 conf/emacs.d/ecb/ecb-method-browser.el create mode 100644 conf/emacs.d/ecb/ecb-mode-line.el create mode 100644 conf/emacs.d/ecb/ecb-multiframe.el create mode 100644 conf/emacs.d/ecb/ecb-navigate.el create mode 100644 conf/emacs.d/ecb/ecb-semantic-wrapper.el create mode 100755 conf/emacs.d/ecb/ecb-semantic.el create mode 100644 conf/emacs.d/ecb/ecb-speedbar.el create mode 100644 conf/emacs.d/ecb/ecb-symboldef.el create mode 100644 conf/emacs.d/ecb/ecb-tod.el create mode 100644 conf/emacs.d/ecb/ecb-upgrade.el create mode 100644 conf/emacs.d/ecb/ecb-util.el create mode 100644 conf/emacs.d/ecb/ecb-winman-support.el create mode 100644 conf/emacs.d/ecb/ecb.el create mode 100644 conf/emacs.d/ecb/ecb.texi create mode 100644 conf/emacs.d/ecb/ecb2/jn-file-tree.el create mode 100644 conf/emacs.d/ecb/ecb2/jn-tree-node.el create mode 100644 conf/emacs.d/ecb/ecb2/jn-tree-view.el create mode 100644 conf/emacs.d/ecb/ecb2/jn-utils.el create mode 100644 conf/emacs.d/ecb/ecb2/jn-window.el create mode 100644 conf/emacs.d/ecb/ecb2/test.el create mode 100644 conf/emacs.d/ecb/html/Makefile create mode 100644 conf/emacs.d/ecb/html/bullet.gif create mode 100644 conf/emacs.d/ecb/html/ecb-html.el create mode 100644 conf/emacs.d/ecb/html/ecb_logo.gif create mode 100644 conf/emacs.d/ecb/html/html-helper.el create mode 100644 conf/emacs.d/ecb/html/index.html create mode 100644 conf/emacs.d/ecb/html/mail.gif create mode 100644 conf/emacs.d/ecb/html/screenshots/1-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/1.png create mode 100644 conf/emacs.d/ecb/html/screenshots/10-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/10.png create mode 100644 conf/emacs.d/ecb/html/screenshots/11-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/11.png create mode 100644 conf/emacs.d/ecb/html/screenshots/12-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/12.png create mode 100644 conf/emacs.d/ecb/html/screenshots/2-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/2.png create mode 100644 conf/emacs.d/ecb/html/screenshots/3-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/3.png create mode 100644 conf/emacs.d/ecb/html/screenshots/4-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/4.png create mode 100644 conf/emacs.d/ecb/html/screenshots/5-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/5.png create mode 100644 conf/emacs.d/ecb/html/screenshots/6-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/6.png create mode 100644 conf/emacs.d/ecb/html/screenshots/7-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/7.png create mode 100644 conf/emacs.d/ecb/html/screenshots/8-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/8.png create mode 100644 conf/emacs.d/ecb/html/screenshots/9-thumb.png create mode 100644 conf/emacs.d/ecb/html/screenshots/9.png create mode 100644 conf/emacs.d/ecb/html/screenshots/index.html create mode 100644 conf/emacs.d/ecb/html/smiley.gif create mode 100755 conf/emacs.d/ecb/make.bat create mode 100644 conf/emacs.d/ecb/silentcomp.el create mode 100644 conf/emacs.d/ecb/tree-buffer.el create mode 100644 conf/emacs.d/icon.svg create mode 100755 conf/emacs.d/kuso create mode 100755 conf/emacs.d/pyemacs.sh create mode 100644 conf/kuso.tmp diff --git a/conf/emacs.d/ecb/.gitignore b/conf/emacs.d/ecb/.gitignore new file mode 100644 index 0000000..a19c46a --- /dev/null +++ b/conf/emacs.d/ecb/.gitignore @@ -0,0 +1,5 @@ +*.elc +*~ +/TAGS +/html-help/ +/info-help/ diff --git a/conf/emacs.d/ecb/CYCLE_PROPOSAL b/conf/emacs.d/ecb/CYCLE_PROPOSAL new file mode 100644 index 0000000..a380aa4 --- /dev/null +++ b/conf/emacs.d/ecb/CYCLE_PROPOSAL @@ -0,0 +1,162 @@ + +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 . + +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. diff --git a/conf/emacs.d/ecb/Makefile b/conf/emacs.d/ecb/Makefile new file mode 100644 index 0000000..ed4163e --- /dev/null +++ b/conf/emacs.d/ecb/Makefile @@ -0,0 +1,263 @@ +# 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 +# Klaus Berndl +# Maintainer: Klaus Berndl +# 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 diff --git a/conf/emacs.d/ecb/NEWS b/conf/emacs.d/ecb/NEWS new file mode 100644 index 0000000..aca6d77 --- /dev/null +++ b/conf/emacs.d/ecb/NEWS @@ -0,0 +1,3135 @@ +* Changes for ECB version 2.40.1 + +** Better compatibility with forthcoming Gnu Emacs 23.2 + +*** Works out of the box with the Emacs-integrated CEDET-suite + + If Emacs >= 23.2 is used then CEDET is already integrated into Emacs and + ECB can be used out of the box without further requirements. + + 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 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! + + Details about the Requirements of ECB are available in the README. + +** The special symboldef ECB-window is now stable and ready for usage + +*** TODO description what is new + +** ECB now uses the partial reparse feature of semantic + + The main effect a user will notice is that edit actions which trigger just a + partial reparse will just update the related node in the methods-window and + not the whole methods-window. One of the main advantages is that this + preserves the expand/collapse state of the methods-window. + + Editing examples which trigger only a partial reparse: + - editing a function- or methodbody + - changing the name of a variable or function/method + - modifying the return-type of a function/method + - and some other... + + In these cases only the related node in the methods-window will change + nothing else, ie. the expand/collapse-states of all other nodes in the + methods-window will not be changed. + +** ECB eliminates duplicates in the directories-buffer + + There can be duplicates either .... TODO description + +** New default-value for `ecb-auto-update-methods-after-save': nil + + Switching off this by default makes sense because now ECB uses the + idle-scheduler of semantic (if it is switched on but this is at least very + recommended) and therefore the methods-buffer will be up-to-date most of + the time. Therefore updating it after saving makes not much sense. In + addition this auto update is always a full-fetch for the tags which does + not preserve the expand/collapse-state of the methods-window whereas a + partial reparse does (s.a.). + +** The contents of the methods-window are updated even if currently hidden + + If at least the current ecb-window-layout contains a methods-window then + the contents will be autom-updated even if the methods-window is currently + invisible (e.g. because the ecb-windows are all hidden or another + ecb-window is currently maximized. But the updates takes only place if the + semantic idle scheduler is active (see instructions in the manuals of ECB + and/or cedet). + + The advantage of this new behavior is that now editing changes done with + invisible methods-window will be reflected immediately after showing the + methods-window (e.g. by unhiding the ecb-windows via the command + `ecb-toggle-ecb-windows' - bound to [C-c . l w]). + +** New support for Bazaar as version-control system + If Bazaar is supported by VC (means vc-bzr.el is distributed with Emacs) + then ECB supports it out of the box. + +** New default value of the option `ecb-history-make-buckets' + + This option offers now an additional choice 'directory-with-source-path: + This substituts the best (= deepest) matching source-path of the + directory-window in the directory-bucket with the alias of this matching + source-path (if an alias is set in the option `ecb-source-path'). A new + face is used for this: `ecb-history-bucket-node-dir-soure-path-face'. + +** `defecb-window-dedicator-to-ecb-buffer' replaces `defecb-window-dedicator' + + This is only relevant for people who program own special ecb-windows. + +** Fixed Bugs + +*** Command `delete-windows-on' has only deleted one window + Now this command works also with ECB as expected. + +*** Fixed a bug which prevents the ecb-windows from being vertically resizeable + This bug occured only when using Gnu Emacs. + +*** Fixed a bug concerning horizontal mouse-scrolling of ecb-windows via + modeline-click when the ecb-window was not the selected window. + This bug occured only when using Gnu Emacs. + +*** Fixed a bug which prevented `ecb-type-tag-display' from taking effect. + +*** Killing a buffer failed when history-window is not visible + Killing a buffer failed in case the history buffer is not visible (e.g. + when currently a layout without a history buffer is used or when another + buffer is maximized and the history buffer thus hidden). This is fixed + now. + +*** All compile-modes (e.g. compile, grep etc.) failed in XEmacs + This came from a bug introduced in 2.40 but it is fixed now. + +* Changes for ECB version 2.40 + +** ECB now requires full CEDET-suite being installed (at least version 1.0pre6) + + This means the support for the single packages semantic 1.4.X, eieio 0.X + and speedbar 0.X is completely switched off. + + As a consequence 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". + + In general the current CEDET is much more powerful than older + semantic-versions and ECB uses this power, especially the power of the + semantic-analyzer. + +** Completely reworked synchronizing mechanism of the ECB-windows + + Now there are separate options for synchronizing: + + - The basic ECB-windows (directories, sources, methods, history): + `ecb-basic-buffer-sync', `ecb-basic-buffer-sync-delay' and + `ecb-basic-buffer-sync-hook'. + - The analyser-window (s.a.): `ecb-analyse-buffer-sync', + `ecb-analyse-buffer-sync-delay' and `ecb-analyse-buffer-sync-hook' + - The symboldef-window: `ecb-symboldef-buffer-sync', + `ecb-symboldef-buffer-sync-delay' and `ecb-symboldef-buffer-sync-hook' + - The integrated speedbar (if used): `ecb-speedbar-buffer-sync', + `ecb-speedbar-buffer-sync-delay' and `ecb-speedbar-buffer-sync-hook' + - The integrated eshell-support (if used): `ecb-eshell-buffer-sync', + `ecb-eshell-buffer-sync-delay' and `ecb-eshell-buffer-sync-hook' + + But all options for synchronizing not the basic ECB-windows offer an + additional choice 'basic: Then ECB uses the setting of the related option + for the basic ECB-windows! Example: If you set `ecb-eshell-buffer-sync' to + 'basic then the value of `ecb-basic-buffer-sync' is used. If you set + `ecb-eshell-buffer-sync-delay' to 'basic then the value of + `ecb-basic-buffer-sync-delay' is used. + + This enhancement allows much more control for the synchronizing of certain + windows. + +** Better compatibility with CEDET >= 1.0pre6 and semantic >= 2.0pre6 + +*** The ECB-analyse-window now works very well with current semantic analyzer + There is an own synchronize-option-set for the analyse-window: + `ecb-analyse-buffer-sync', `ecb-analyse-buffer-sync-delay' and + `ecb-analyse-buffer-sync-hook'. See the docstrings. The advantage is, that + now the synchronizing of the analyse-window can be customized separately + from the other ECB-windows. THis is important because for the + analyse-window a higher delay (or even disabled auto.synchronizing) + increases usability a lot. See the info-manual. + +*** Fix compatibility about some changes of semantic concerning adopting + external member-functions (as in C++ or eieio). + +*** ECB now works very well with semantic-idle-scheduler-mode (s.a.) + +** More user-responsible buffer-parsing based on the idle-mechanism of semantic + + Force a reparse of the semantic-source if the idle-scheduler is off. + Generally ECB calls semantic to get the list of tags for current + source-file of current edit-window. Per default ECB does never + automatically force a reparse of the source-file - this is only done on + demand by calling `ecb-rebuild-methods-buffer'. So per default the + idle-scheduler of semantic is responsible for reparsing the source-file and + when this is necessary (see `semantic-idle-scheduler-mode' for further + details). This is the most user-resonsible and therefore the recommended + approach. + + So it's strongly recommended to enable `semantic-idle-scheduler-mode' + because then reparsing is always done during idle-time of Emacs and is also + interruptable. + + But if this idle-scheduler is switched off then ECB offers now two + possibilities (via `ecb-force-reparse-when-semantic-idle-scheduler-off'): + + - Not forcing itself a reparse when tags are needed by ECB: then a user + declines knowingly Emacs/semantic-driven parsing of code when he/she + switches off the idle-mode of semantic. This is the default behavior of + ECB and the default value of this option. But this has also the + consequence that the methods-buffer is only filed on demand via + `ecb-rebuild-methods-buffer' (bound to \[C-c . r])! + + This means also in consequence that the methods-buffer is not + automatically filled when a source-file is opened but first on demand + after calling the command `ecb-rebuild-methods-buffer'! + + - Forcing a reparse when tags are needed: Then ECB forces semantic to parse + the source-file when ECB needs tags to display. For this behavior this + option has to be set to not nil. + + The term "forcing a reparse by semantic" is a simplification: ECB uses then + the function `semantic-fetch-tags' which can decide that the cached tags + are up-to-date so no real reparsing is necessary - but it can also run a + full reparse and this reparse is not being done when Emacs is idle but + immediatelly and not interruptable (as with the idle-scheduler of + semantic), which can be quite annoying with big source-files. + +** Complete reworked history-buffer + +*** The history is able to deal with indirect-buffer entries. + See new option `ecb-history-stick-indirect-buffers-to-basebuffer'. + +*** The history can now be bucketized, see new `ecb-history-make-buckets'. + This option allows to define several criterias for building buckets in the + history-buffer all the history entries are sorted in (e.g. by major-mode, + directory, file-extension or regular expressions). + + You can change the bucketizing type on the fly via the popup-menu of the + history-window. + + The regular expressions bucketizing allows in combination with the + indirect-buffer ability to work with something like "virtual folders" + (well, "virtual folders" light). + + For example, there is a large project with a huge number of files, and + there are various tasks in this project. So it could be convenient to + group buffers according to various tasks. It could be fulfiled through + using indirect buffers, for example like this + + task_1-aaa.pl + task_1-bbb.c + task_1-ccc.sh + ... + task_N-xxx.java + task_N-ccc.sh + + This means create indirect buffers with a name-part which can be used for + grouping together buffers with same name-part (here e.g. task_1- ... + task_N-). In the example above you would create two indirect buffers for + the filebuffer ccc.sh, one named task_1-ccc.sh, the other named + task_N-ccc.sh). + + Then use the new option `ecb-history-make-buckets' to define regexps for + bucketizing all (indirect) buffers according their task-part in the + buffer-name. + +*** There are now new faces for the history entries. + See new options `ecb-history-bucket-node-face', + `ecb-history-dead-buffer-face' and `ecb-history-indirect-buffer-face' and + equaly named new faces. + +** Sticky parent-node for all special ECB-windows of type tree-buffer + + Only for GNU Emacs: in the header-line of a tree-buffer always the + current-parent node of the first visible node is displayed (if there is a + parent node). This sticky node is exactly in the same manner clickable as + all other nodes. There is a new option `ecb-tree-make-parent-node-sticky' + which enabales/disables this new feature (default is enabled). + +** Much saver advice-backbone for all advices needed by ECB + + This is not a user-visible change but enhances the stability of ECB by + using now a new advice-backbone which guarantes that all ecb-advices are + enabled rsp. disabled correctly depending on the surrounding context. + Introducing four new macros `defecb-advice-set', `defecb-advice', + `ecb-with-original-adviced-function-set' and `ecb-with-ecb-advice'. + +** Changes in the version control support of ECB + +*** ECB now also offers version control support only if the current vc-package is + installed which offers support for modern vc-backends like subversion, git + and monotone. + Because vc-package lacks having a version number which can be checked ECB + uses the following check if the right vc-package is installed: + (locate-library "vc-svn") must return not nil. + +*** New support for Git and Monotone as version-control systems + If Git rsp. Monotone are supported by VC (means vc-git.el rsp. vc-mtn.el + are distributed with Emacs) then ECB supports now both of them out of the + box. + +*** `ecb-vc-supported-backends' offers now also a accurate recompute-state function + This is by offering `ecb-vc-recompute-state' as an alias to the function + `vc-recompute-state' as state-check function for this option. + +*** CVS-support is now fully compatible with Emacs 22 and 23 + +** New options rsp. commands + +*** New command `ecb-goto-window-edit-by-smart-selection' + +*** New command `ecb-goto-window-ecb-by-smart-selection' + +*** New option `ecb-ignore-pop-up-frames' + The new option is for customizing the behavior of ECB concerning + `pop-up-frames'. It allows three value: Always, only when a permanent + compile-window is used and never. This makes ECB fully compatible with the + option `pop-up-frames'. + +** Much better compatibility with current Emacs-versions + +*** Full compatibility with Gnu Emacs 22 + +**** `balance-windows' now works with Emacs 22 too + Cause of the completely new implemantation based on `window-tree' ECB + uses a new machanism for enabling balance-windows to work properly with + active ECB, so only the edit-windows are balanced but all ecb-windows + remain on their sizes. + +**** view-mode works also when a permanent compile-window is active + This is especially important for displaying help and completions. + +**** `master-mode' now works with Emacs 22 + +**** Grepping from ECB now uses per default `lgrep' rsp. `rgrep'. + +***** The option `ecb-grep-function' defaults to `lgrep' if available + If not it tries `igrep' or 'grep'. + +***** `ecb-grep-find-function' has been renamed to `ecb-grep-recursive-function' + It defaults to `rgrep' if available. If not it tries `igrep-find' or + `grep-find'. The old value is automatically upgraded to the new option + name. + +**** Fixed problems with `ecb-fix-window-size' and active compile-windows + With Emacs >= 22 the bugs of Emacs 21.3.X concerning `window-size-fixed' + are fixed by the Emacs-team so now ECB supports this feature also with + active compile-window. + +**** Fixed small lack in the `switch-to-buffer-other-window'-advice. + In Emacs 22 this command ignores the settings in `same-window-*'. Now ECB + adopts this behavior also for its adviced version so the command works + in a smart manner optimized for ECB. + +*** Much better compatibility with forthcoming Gnu Emacs 23 + +**** Removed an annoying behavior which has set the mark hundred of times even + when the user just moves the cursor. + + This comes from a change within Emacs 23 and the function `goto-line' + which sets the mark in Emacs 23. This is not necessary when not used as + command but as internal utility. Now ECB uses its own goto-line-function + which does not set the mark --> No unnecessary mark settings with Emacs + 23. + +**** The adviced `display-buffer' is now fully compatible with Emacs 23 + This means simply that you can work with ECB and Emacs 23 as you expect. + + Especially for displaying temporary buffers (like completion, help, + compilation etc.) this means: Gnu Emacs 23 has a much smarter + window-manager for displaying temporary buffers (like help-buffers) and + "compile"-buffers. Therefore ECB uses completely the logic of Emacs 23 + and does exactly what Emacs 23 would do without activated ECB: This means + mainly that the split-behavior depends on the settings of the options + `split-width-threshold' and `split-height-threshold'. + + So if you are wondering why displaying temporary-buffers (like help, + compile, grep, completion etc.) shows different behavior compared to + deactivated ECB, then you probably have to adjust the values of the + options `split-width-threshold' and `split-height-threshold' so they + matches the sizes of the edit-area of ECB (at least nearly). + +**** Fixing some incompatibilities with Emacs 23 concerning using temp. buffers + + The fit-window-to-buffer version of Emacs 23 can destroy windows and is + therefore not useable within ECB - now ECB has its own - stolen and + adapted from Emacs 22. + + In addition to this the internal help-window-manager of Emacs 23 (a.o. + responsible for displaying *Help*-buffers) chooses sometimes dedicated + windows (which is a problem because ECB uses dedicated windows for its + own special ECB-windows) whereas Emacs 22 doesn't do this. Now ECB works + smoothly with Emacs 23 help-system. Same for view-mode. + +**** ediff-support of ECB is now also fully compatible with Emacs 23 + + Emacs 23 uses dedicated windows: Now ECB can deal with frame-layouts where + some windows are neither an ecb-, edit- nor a compile-window. Therefore + now also single-frame mode (see `ediff-windows-setup-function') of ediff + wirks smoothly with ECB. + +**** All this together makes the new layout-engine of ECB much more robust so ECB + works smoothly with forthcoming Emacs 23. + +*** Better compatibility with XEmacs 21.4 and XEmacs 21.5 + + Compatibility has been increased but is still not perfect. There is a need + for much more tests with XEmacs. This can not been done by the + ECB-maintainer because it costs too much effort. Any help from + XEmacs-gurus using ECB for their daily work is very appreciated. + +** ECB is able to work with indirect buffers if the base-buffer is filebased + + Now you can work with indirect-buffers as well as with normal file-buffers, + i.e. indirect buffers are shown in the history´, their contents are + displayed in the methods-buffer, the ECB-analyse-buffer works with them, + autom. synchronizing the ECB-tree-buffers works for them etc... + +** Deprecated, disabled and deactivated features: + +*** The commands `ecb-download-ecb' and `ecb-download-semantic' are deactivated + These features are not supported anymore. It costs two much effort to keep + the needed links and mechanism to the sourceforge-download-area up to date. + Please download the needed release-archives and extract and install as + described in the shipped README rsp. INSTALL-files. + +** Fixed Bugs + +*** Fixed a bug which displayed empty tag-names in the methods-buffer when font-lock + is not loaded. + +*** Fixed a bug in the ping-functionality + Now `ecb-ping-options' has a new default value which should operate well + on most os. + +*** Fixed a bug which prevented `ecb-rebuild-methods-buffer' from working + correctly + +*** Fixed a bug in the internals of the methods-filter which prevented + all commands `ecb-methods-filter-*' from working correctly. + +*** Fixed context-menu for VC-operations in the sources- and history-window + Now all vc-commands are called interactively by ECB. + +*** Fixed a bug with the ECB-navigation feature (C-c . p and C-c . n) + Now the commands `ecb-nav-goto-next' and `ecb-nav-goto-previous' work + saver and also for indirect buffers. + +*** Fixed small bugs with synchronizing current tag with highlighted tag + in the methods buffer. This was when the buffer was reparsed with + `semantic-idle-scheduler-mode' or after saving the buffer. + +*** Fixed a bug in `ecb-create-new-layout' which has displayed wrong modelines + in the layout-creation frame. + +*** Fixed a bug in `ecb-submit-problem-report' which prevented it from working + + +* Changes for ECB version 2.32 + +** New backbone-add-on of ECB for getting the definition of the symbol at point + + It allows to display in a new special ECB-window the semantic (do not + confuse this term with the semantic-library!) context of the definition of + the current symbol under point. Per default ECB tries to find this context + via semanticdb (part of cedet) and etags (shipped with (X)Emacs) but in + general this is completely customizable; see the options of the new + options-group "ecb-symboldef". + + Either use the layout "left-symboldef" (e.g. via [C-c . l c]) or create a + new ecb-layout via the command `ecb-create-new-layout' and add a buffer of + type "other" and name "symboldef" into this new layout. + + This add-on interactior can be seen as a "backbone" infrastructure, because + it is/should be highly customizable how to get the definition of the symbol + at point (e.g. via semanticdb or etags or whatever). + + Thanks to Hauke Wintjen for having the idea + and writing the first implementation + + This add-on ECB-window of ECB is currently in beta or gamma stage but works + already quite well. So please try it out and send feedback to the + ECB-mailing-list. Every suggestion is highly appretiated! + +** New native ECB-window (tree-buffer) for the semantic-analyzer + There is a new tree-buffer ECB-analyse which displays the tags and + informations of the semanic-analyzer in a smooth way. There are already new + prebuild layouts "left-analyse" and "leftright-analyse" which contain this + new tree-buffer ECB-window. But of course it can be added to own build + layouts - either via the command `ecb-create-new-layout' (add a buffer of + type "other" and name "analyse" into the new layout) or via a + elisp-programmed new layout. + +** New smart-arrow-navigation in a tree-buffer with up- and down-arrow + Point jumps to the first character of the previous (up) rsp. next node + (down). "First" character means either the first character of the + expand-symbol (in case `ecb-tree-expand-symbol-before' is not nil) or of + the displayed node-name. Or with other words: The first non-indentation and + non-guide-line (see `ecb-tree-buffer-style') character of a node. + + Left- and right-arrow were already smart - see the existing option + `ecb-tree-navigation-by-arrow'. + +** Better handling of maximized ecb-windows + +*** Smarter handling of node-selections in maximized tree-windows + + Now the default behavior of ECB is: + + Maximized directories-window: When selecting a directory then first + automatically the maximized directories-window will be "minimized" (i.e. + all ecb-windows of current layout are displayed) if the current layout + contains a sources-buffer and no sources are shown in the + directories-window. So the source-files can be displayed in the + sources-window. + + Maximized sources- or history-window: When selecting a source-file in one of + these buffers then first automatically the maximized window will be + "minimized" (i.e. all ecb-windows of current layout are displayed) if the + current layout contains a methods-buffer. So the tag-contents of the + selected source-file can be displayed in the methods-window. + + For a even smarter behavior ECB introduces a new option + `ecb-maximize-next-after-maximized-select' which automatically maximizes + the next logical tree-window after a node selection. The definition of + "next logical is": Directories --> sources, sources/history --> methods. + See the docstring of this new option for more detailled informations. + + Thanks for suggestion to Michael Reiher. + +*** Easier maximizing and "minimizing" + ECB supports the default modeline-mechanisms for deleting other windows. + GNU Emacs binds `mouse-2' in its modeline to `delete-other-window'. XEmacs + binds a popup-menu with some window commands to `button-3' in its + modeline. + + ECB combines the best of both worlds by supporting both of these + mechanisms for both Xemacs and Emacs: ECB binds a toggle-command to + `mouse-2' in the modeline of each tree-buffer which maximizes the current + tree-window if all ECB-windows are visible and displays all ECB-windows if + current tree-window is maximized. In addition ECB binds a popup-menu to + `mouse-3' which offers exactly 2 commands: Maximizing current tree-window + and displaying all ECB-windows. + +** Renamed options or options with new type + The following options have been renamed: + ecb-truncate-lines --> ecb-tree-truncate-lines + + The following options have now a new type: + ecb-tree-RET-selects-edit-window + ecb-tree-image-icons-directories + + ECB automatically upgrades the old values to the new options! + +** Better assistance fixing errors related to semantic-load problems + Often users report errors somehow related to problems running ECB with the + right semantic-version. There are different reasons for this: + - People do not install the cedet-suite as described in the INSTALL-file of + cedet. + - People byte-compile ECB with another semantic (also eieio and speedbar) + version than loaded into Emacs. + All of them prevent ECB from working correctly. + + Now ECB detects the error at startup-time and assists the user in finding + the reason of the problem and how to fix it. + +** More robust downloading of new ECB from within Emacs + Now `ecb-download-ecb' should work also with native Windows-XEmacs and also + when ECB is installed in a directory which name contains spaces. If there + are still problems in running this command please check the new options + `ecb-wget-setup', `ecb-gzip-setup' and `ecb-tar-setup'. + +** Support for (X)Emacs < 21 has been officialy removed. + ECB requires now (X)Emacs >= 21. ECB stops activation with an appropriate + error-message when (X)Emacs < 21 is detected. + +** Full documentation of the library tree-buffer.el + The ECB-info-manual contains a new section "tree-buffer" in the chapter + "Entry points for elisp-programers". This describes in detail how to + program with the library tree-buffer.el which is shipped with ECB. + +** Fixed Bugs + +*** Version-controlled (VC) and not-VC history-entries are now sorted + correctly according the setting in `ecb-history-sort-method'. + +*** Handles not anymore existing files in the stealthy tasks. + If a stealthy task detects that a displayed file does not exist anymore it + removes this source-file from the tree-displays. + +*** Fixed a bug when `ecb-process-non-semantic-files' is set to nil. + This bug only occurs with XEmacs. As a side effect of this fix now the + methods-buffer is correctly cleared out when loading a + non-semantic-sourcefile (i.e. not parsable by semantic) and processing of + non-semantic-files is switched off (`ecb-process-non-semantic-files' is + set to nil) or the sourcefile is not parsable by a parser like imenu or + etags/ctags. + +*** Fixed a bug in displaying semantic-tags which have plain-string members + E.g. parsing `defstruct' has failed in previous ECB-version cause of this + bug. + +*** Fixed a bug when Emacs is started with -q so Emacs could not determine the + `custom-file'. This case is correctly handled now. + + + +* Changes for ECB version 2.31 + +** Fixed bugs + +*** Fixed a recently introduced bug with XEmacs and an active isearch. + This bug occured when a user has clicked onto a node in a tree-buffer + during an active isearch and it had as result completely out-of-order + tree-buffers. This buf is now fixed and should never occur. + +*** Fixed a bug concerning accessing root-drives in native window-XEmacs + Fixes an annoying behavior of the native windows-version of XEmacs: When a + path contains only a drive-letter and a : (e.g. C:) then + `expand-file-name' (and a lot of other file-operations) do not interpret + this path as root of that drive. So ECB adds temporary a trailing + `directory-sep-char' and calls file-operations like `expand-file-name' + with this new path because then `expand-file-name' treats this as root-dir + of that drive. For all (X)Emacs-version besides the native-windows-XEmacs + this fix is not needed and takes no effect. + +*** Better recognizing of remote CVS-root-repositories for the VC-support + +** Enhancement for the VC-support + +*** New option `ecb-vc-xemacs-exclude-remote-cvs-repository' + This excludes directories with a remote cvs-repository from VC-check. This + option takes only effect for XEmacs and is needed cause of the outdated + VC-package of XEmacs which offers no heuristic state-checking and also no + option `vc-cvs-stay-local'. So this option takes only effect if + `vc-cvs-stay-local' is not avaiable. In this case ECB treats directories + which are managed by CVS but have a remote repository as if the directory + would not being managed by CVS (so the files are not checked for their + VC-state). This is done to avoid blocking XEmacs cause of running full + cvs-commands (e.g. ``cvs status'') for a bunch of files over the net. + +*** Added beta-support for Clearcase + There is already an identify-backend-function `ecb-vc-dir-managed-by-CC' + and a check-state-function `ecb-vc-check-CC-state' and an advice for + `clearcase-sync-from-disk' which enable automatic state-update after + checkin/out. These code seems to work quite well but nevertheless there + are some problems so this Clearcase-support is not added per default to + `ecb-vc-supported-backends'. + + So if you want Clearcase-support you have to customize the option + `ecb-vc-supported-backends' and add these functions mentioned above (the + advice of `clearcase-sync-from-disk' takes only effect if the function + `ecb-vc-dir-managed-by-CC' can be found in `ecb-vc-supported-backends' and + ECB is active!). But use it at your own risk. Of course the best would be + if a lot of people would test this Clearcase-support and fix the + encountered problems ;-). Thanks to David Ostrovsky for providing a first + implementation! + + + +* Changes for ECB version 2.30.1 + +** Enhancement to the automatic option-upgrading mechanism + ECB now automatically makes a backup-file of that file which will be + modified by storing the upgraded rsp. renamed ECB-options. This backup file + gets a unique name by adding a suffix ".before_ecb_" to the name + of the modified file. If such a file already exists ECB adds a unique number + to the end of the filename to make the filename unique. + This is a safety mechanism if something fails during storing the upgraded + options, so you never lose the contents of your customization-file! + +** Enhancement to the VC-support + +*** Better recomputing of the VC-state of a file when state changed outside + With the new check-state-function `ecb-vc-state' the heuristic state is + always computed right which is especially useful if the state for a file + has been changed outside Emacs (e.g. by checking in from command line or + Windows Explorer). This function is now added to the default-value of + `ecb-vc-supported-backends' for GNU Emacs. + +*** Added out-of-the-box support for VC-system Subversion + For this the latest version of the VC-package incl. the library vc-syn.el + is needed. Latest CVS Emacs contains this VC-version. The new function + `ecb-vc-dir-managed-by-SVN' is now added to the default-value of + `ecb-vc-supported-backends'. Thanks for first implementation to Ekkehard + Görlach . + +** Fixed bugs + +*** Fixed errors occured at load-time of ECB 2.30 + + + +* Changes for ECB version 2.30 + +** Enhancements to the file-browser + +*** Much better performance of the file-browser display because all + time-consuming tasks (like the check if the displayed directories are + empty of not) are now performed "stealthy" - means when Emacs is idle. + Each stealthy task is interruptable by the user just by hitting any key or + clicking the mouse so Emacs/ECB will not be blocked by such tasks; next + time Emacs is idle again the interrupted task automatically proceeds from + the state it has been interrupted. There is a new macro `defecb-stealthy' + which can be used by a user to program own stealthy tasks. + + Currently ECB performs three stealthy tasks: + + Prescann directories for emptyness: Prescann directories and display + them as empty or not-empty in the directories-buffer. See the + documentation of the option `ecb-prescan-directories-for-emptyness' for + a description. + + File is read only: Check if sourcefile-items of the directories- or + sources-buffer are read-only or not. See documentation of the option + `ecb-sources-perform-read-only-check'. + + Version-control-state: Checks the version-control-state of files in + directories which are managed by a VC-backend. See the option + `ecb-vc-enable-support'. + + There is also a new option `ecb-stealthy-tasks-delay'. + + There are three options which allow excluding certain directories from + these stealthy tasks: `ecb-prescan-directories-exclude-regexps', + `ecb-read-only-check-exclude-regexps' and last but not least + `ecb-vc-directory-exclude-regexps'. + +*** ECB is now capable of handling remote paths. + "Remote" means file- or directory-paths in the sense of TRAMP, ANGE-FTP or + EFS. Such paths can now being added to the option `ecb-source-path' with + no limitation compared to "local" paths. Just work with remote-paths in + the same manner as with local paths. See also the additional choices of + the options `ecb-prescan-directories-for-emptyness', + `ecb-sources-perform-read-only-check' and `ecb-vc-enable-support' (new). + This new support is tested with the combinations GNU Emacs+TRAMP and + XEmacs+EFS but it should (hopefully) also work with all other + combinations. Thanks a lot to Tomas Orti for beta-testing! + +*** ECB displays the Version-control-state of a file in the tree-buffers. + There are four new options `ecb-vc-enable-support', + `ecb-vc-supported-backends', `ecb-vc-directory-exclude-regexps' and + `ecb-vc-state-mapping' which define if and how ECB should check the state + of a sourcefile in a directory managed by a version-control system. By + default ECB supports the same VC-backends as the builtin VC-support of + Emacs: CVS, RCS and SCCS. But the option `ecb-vc-supported-backends' + allows to add support for arbitrary VC-backends (e.g. Clearcase). New + image-icons are also included for a cute display of the VC-state in the + directories, sources and history-buffer. Thanks to Markus Gritsch + for contributing the icons. + + It's recommended to read the section "Version-control support" in the + chapter "Tips and Trick" of the ECB-info-manual! + +*** New hook which runs directly after the selected directory has changed. + See documentation of `ecb-after-directory-change-hook'. + +** The popup-menu of the methods-browser allows precisely expanding of the + current node. This means you can precisely expand a certain node to an + exact indentation level relative to the node. This means all subnodes <= + this level will be expanded (full recursive expanding is therefore of + course also possible) and all subnodes indented deeper than this level will + be collapsed - this is very different from using the expand/collapse symbol + of a node. For forther details and examples the the manual and the section + "Expanding" and here the subsection "Explicit expanding of the current node + to a certain level". + +** Automatically upgraded ecb-option-settings are now not saved by default. + This means that ECB has now the new policy "Never touching the + customization-files of a user without asking". The result is a completely + redesigned upgraded-options-buffer: Now at the bottom of this buffer + (displayed by `ecb-display-upgraded-options') two clickable buttons [Save] + and [Cancel] are displayed which give the user the choice between saving + the upgraded options for future Emacs-sessions ot just to cancel this + buffer. In the latter case ECB has also upgraded the not compatible or + renamed options (as listed in the displayed upgraded-options-buffer) but + they will be not saved, i.e. no customization-file is touched and the + changed and upgraded values will be lost after quiting Emacs. + +** With XEmacs ECB temporary sets `progress-feedback-use-echo-area' to t + This is necessary because otherwise the progress-display with native + widgets modifies the window-sizes of ECB and does not exactly restore the + window-sizes as before that progress-display. Deactivating ECB + automatically restores the old value of this option. + +** Fixed bugs + +*** Fixed resizing of the ecb-windows after opening a file + Sometimes (X)Emacs (the behavior has only been reported for XEmacs) + resizes the ecb-windows after opening a file by clicking onto a sourcefile + or calling `find-file' (or similar functions). This is not a bug of ECB + but nevertheless it is annoying for the ECB-users. Therefore ECB has now a + workaround which prevents the ecb-windows from resizing. The work around + is done via two simple advices of `find-file' and `find-file-other-window'. + +*** Fixed a bug in the upgrading feature (command `ecb-download-ecb') which has + occured when the user has set a different LOKALE (e.g. "de_DE@euro"). + +*** Fixed a bug in restoring sizes of the ecb-windows. + Now a check will be performed if there are ecb-windows visible. If not + nothing will be done (versions < 2.30 have failed in such a case). + This bug has prevented ediff from working together with ECB when a + compile-window was visible and the user has stored window-sizes for the + current layout. + + + +* Changes for ECB version 2.27 + +** The option `ecb-auto-expand-tag-tree-collapse-other' now has three possible + choices. You can decide between auto-collapsing only when point stays onto + a tag in the edit-window or even when point doesn't stay onto a tag (which + then results in a full collapsed methods-buffer). ECB autom. upgrades the + old setting of this option to the new type. Thanks to Javier Oviedo + for the suggestion. + +** Not accessible directories are displayed in a different face in the + directory-browser. See the new option `ecb-directory-not-accessible-face' + and the new face with same name. + +** Enhancements to the permanent compile-window + +*** Enlarging the compile-window does not destroy some ecb-windows + With previous versions of ECB enlarging the permanent compile-window has + often destroyed some ecb-windows if the compile-window has occupied a + large portion of the frame-height (e.g. half of the frame). Beginning with + ECB 2.27 such a ecb-window-damage is either prevented or - if it still + occurs (can not be prevented in all situations) - ECB now has a + "self-healing"-mechanism which immediatelly repairs the layout via + idle-checks if the current window-layout is correct for the current + `ecb-layout-name'. Conclusion: Enlarging or shrinking the compile-window + should never damage the ecb-windows! Thanks to Javier Oviedo + for a great problem-report! + + Caution: If bytecompiled user-defined layouts are used (ie. the file, + which contains the user-defined layouts is byte-compiled) then you MUST + recompile this file with ECB 2.27 active! + +*** Now `ecb-store-window-sizes' and `ecb-restore-window-sizes' also work when + called during a permanent compile-window is visible and also when these + commands are called with another compile-window state than the other (e.g. + when the window-sizes are stored without a compile-window and restored + with a compile-window). + +*** Now ECB ensures that the permanent compile-window has always its specified + size when shrinked either by Emacs/ECB or by the command + `ecb-toggle-compile-window-height'. + +*** Now ECB ensures that all ecb-windows have always either their default or + stored size size after the compile-window has been shrinked either by + Emacs/ECB or by the command `ecb-toggle-compile-window-height'. + +*** ECB takes into account the new Emacs-option `grep-window-height' when it + compute the max. allowed size of its permanent compile-window. More + generally spoken: It takes into account all options with name + *-window-height defined for modes which are defined by the macro + `define-compilation-mode'. This mechanism is available in the forthcoming + Emacs 21.4 (and of course with current CVS-Emacs 21). + +** Fixed Bugs + +*** Added a workaround for a bug in the custom-library of current release 21.3 + of GNU Emacs which causes under certain circumstances the autom. + option-upgrading-feature of ECB to fail. Same for the command + `ecb-store-window-sizes'. Thanks for reporting this annoying bug and great + help to Christoph Ludwig + + + +* Changes for ECB version 2.26 + +** Improved the performance of the directories-buffer-display + Reduced the need of completely rebuilding the whole directories-tree-buffer + when just switching between buffers and the related directories are already + expanded. This can dramatically increase the speed of the tree-buffer + display when displaying the sources-files in the directories-buffer (see + `ecb-show-sources-in-directories-buffer'). Thanks to Rob Walker + for tracking down the performance bottleneck and + supplying a first patch. + +** Per default all mouse-actions in the special ECB-buffers are now triggered + first after releasing the mouse-button and not when pressed as with + previous ECB-versions. This is the standard behavior of Emacs and of most + applications. But with the new option `ecb-tree-mouse-action-trigger' a + user can switch back to the old behavior. + + As a side effect now the ECB-tree-buffers can be used during an active + isearch - at least with GNU Emacs. Thanks to Markus Gritsch + for pointing to this problem. + +** ECB sets autom. temp-buffer-resize-mode rsp. temp-buffer-shrink-to-fit when + needed. This modes are needed when a permanent compile-window is used + because otherwise the correct sizing of the compile-window according to the + settings in ecb-compile-window-temporally-enlarge and + ecb-enlarged-compilation-window-max-height is not possible. After disabling + the permanent compile-window or when deactivating ECB the original settings + of these modes are restored! + +** 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. This allows easier regexp-definition and follows + now the way Emacs goes with other regexp-options like `same-window-regexps' + or `special-display-regexps' which are also lists of regexps. + + ECB autom. upgrades your old settings to the new option-types rsp. also + -names (if the option has been renamed). + +** New option `ecb-history-exclude-file-regexps' for excluding certain files + from being displayed in the history-buffer of ECB. Currently the filenames + TAGS and semantic.cache are excluded per default. Thanks to Javier Oviedo + for the suggestion. + +** ECB now displays read-only sourcefiles in a different face. + For this a new option and a new face are offered both named + `ecb-source-read-only-face' (default: italic) which is used to display + source-files in the sources-tree-buffer (or in the directories-tree-buffer + if `ecb-show-sources-in-directories-buffer' is not nil) if the file is + read-only. + +** Fixed bugs + +*** Fixed merging faces with XEmacs. + Now options like `ecb-type-tag-display' (merges own ECB-faces to already + by semantic faced tags) work also correct with XEmacs. ECB-versions prior + to 2.26 has not merged the ECB-faces to the already applied faces of a + text but instead replaced the applied faces with the ECB ones. Now all + faces are merged. + +*** Now the command `ecb-expand-methods-nodes' and all the expand-* menu-entries + in the popup-menu of the methods-buffer work for non-semantic-buffers too. + +*** Fixed a bug concerning `ecb-auto-expand-tag-tree-collapse-other'. + Thanks to Javier Oviedo for pointing to the problem. + +*** Handles not existing source-paths in `ecb-source-path' correct. + These paths are now ignored with a warning. + + + +* Changes for ECB version 2.25 + +** More flexible sorting of the Sources- and the History-buffer + +*** `ecb-sort-history-items' has been renamed to `ecb-history-sort-method' + and offers now the same choices as the already existing option + `ecb-sources-sort-method'. + +*** Two new options `ecb-sources-sort-ignore-case' and + `ecb-history-sort-ignore-case' which allow to ignore case when sorting the + Sources- and/or the History-buffer. Thanks for suggestion to Markus + Gritsch . Per default case is now ignored. + +** New icons for parent-display in the Methods-buffer. + Thanks to Markus Gritsch for contributing the + icon-images. + +** Fixed Bugs + +*** Fixed an annoying bug which results sometimes in an error "stack-overflow + error in equal" when using `senator-try-expand-semantic' which is called + when you use hippie-expand for example. Maybe the bug occured also in + other situation but now this bug has been extirpated! + +*** Fixed a bug in the mechanism which prescanes directories for emptyness. + Now a directory is checked if it is accessible before it is prescanned - + otherwise the prescan could fail with an error. + +*** Fixed a bug in the autom. option-upgrading-mechanism. + Thanks to Javier Oviedo for pointing to the + underlying problem. + + + +* Changes for ECB version 2.24 + +** Enhancements for the Methods-buffer + +*** Enhancements to the icon-display in the Methods-buffer + +**** New icon-images for enumerations and abstract/virtual tags (interfaces are + currently displayed with the icon for abstract classes - at least til + someone provides special icons ;-) + +**** Some slightly fixes in the other icons - e.g. a better display with a + not-white background + +**** Static and abstract tags are no longer underlined rsp. italic when icons are + displayed because this is somehow "tautological" when a special static + rsp. abstract icon is already displayed. + +*** New option for switching on/off distinction of function-prototypes from the + real function-definitions: `ecb-methods-separate-prototypes'. This is + useful for C++ and C because these languages distinct between a + method-prototype (rsp. function-prototype for C) and the method (rsp. + function for C) itself. If this option is not nil (default) then ECB + separates the prototypes from the real function/methods in the + Methods-buffer. + +*** New "current-type"-filter for the Methods-buffer + In languages which have types (like Java or C++) this filter displays only + the current type and all its members \(e.g. attributes and methods). The + current-type is either the type of the current tag in the source-buffer or + the type of the current node in the methods-buffer. If ECB can not + identify the current type in the source-buffer or in the methods-window + then nothing will be done. + +** Now directories are prescanned for emptyness so they are displayed as empty + in the directories-buffer even without user-interaction (i.e. in previous + ECB-versions the emptyness of a directory has been first checked when the + user has clicked onto a directory). ECB optimizes this check as best as + possible but if a directory contains a lot of subdirectories which contain + in turn a lot of entries, then expanding such a directory or selecting it + takes of course more time as without this check - at least at the first + time (all following selects of a directory uses the cached information if + its subdirectories are empty or not). Therefore this feature can be + switched of via the new option `ecb-prescan-directories-for-emptyness'. + +** Fixed Bugs + +*** Fixed some newly introduced bugs which made ECB 2.23 incompatible with + semantic 1.4. + +*** Fixed a bug which changed the highlighted directory even after just expanding + or collapsing other directories. + +*** Fixed two small bugs which have influenced `ecb-create-new-layout' + + + +* Changes for ECB version 2.23 + +** New cedet1.0beta2 is supported. + +** Enhancements for the Methods-buffer + +*** The look&feel of the Methods-buffer is now much nicer because it has been + polished with a lot of new icons. ECB contains now a lot of new icons for + displaying the Method-buffer as pretty and professional as possible. The + new default-value of the option `ecb-tree-image-icons-directories' points + autom. to the new icon-images. Thanks a lot to Markus Gritsch + for providing these new icons. + + To use this you should reset the option `ecb-tree-image-icons-directories' + to the new default-value if you have customized this option! + + You can disable this icon-display via the new option + `ecb-display-image-icons-for-semantic-tags' if you do not like the new + icons. + +*** New feature for applying default tag-filters for certain files. + The new option `ecb-default-tag-filter' allow to define default + tag-filters for certain files which are applied automatically after + loading such a file into a buffer. The possible filters are the same as + offered by the command `ecb-methods-filter' and they are applied in the + same manner - the only difference is they are applied automatically. The + files can be specified on a combined major-mode- and + filename-regexp-basis. + + Usage-example: This can be used to display for outline-mode files (e.g. + NEWS) in the Methods-buffer only the level-1-headings by defining a + regexp-filter "^\* .*" (see the default-value of this new option). + +*** New keybindings and commands for faster applying certain tag-filters. + Here are the new bindings: + [C-c . fr] --> `ecb-methods-filter-regexp' + [C-c . ft] --> `ecb-methods-filter-tagclass' + [C-c . fp] --> `ecb-methods-filter-protection' + [C-c . fn] --> `ecb-methods-filter-nofilter' + [C-c . fl] --> `ecb-methods-filter-delete-last' + [C-c . ff] --> `ecb-methods-filter-function' + +*** The popup-menu contains now mode-dependend tag-filter entries. + This means for sources not supported by semantic no protection- or + tag-class filters will be offered. And for semantic-supported sources + exactly these tag-classes are offered the semantic-parser for the current + major-mode offers. Same for the command `ecb-methods-filter'. For example + texi-sources can only be filtered by the tag-classes "Definitions" and + "Sections" and java-sources can be filtered by "Methods", "Variables", + "Classes" etc. In general the semantic-variable + `semantic-symbol->name-assoc-list' is used to get the right tag-classes. + +*** The option `ecb-show-tags' is now defined on a major-mode-basis. + This means you can have different settings for each major-mode. ECB autom. + upgrades your old setting to the new option-type. + +*** Distinction between functions and function-prototypes in the Methods-buffer + This is for example useful for C++ and C because these languages distinct + between a method-prototype (rsp. function-prototype for C) and the method + (rsp. function for C) itself. The new default value of `ecb-show-tags' + displayes per default the methods as flattened and the method-prototype as + collapsed when opening a C- or C++-buffer. ECB autom. updates your old + setting of this option to the new default value. + +** The command `ecb-toggle-layout' now has a prefix-argument: + If this optional argument is not nil (e.g. if called with a prefix-arg) + then always the last selected layout was choosen regardless of the setting + in `ecb-toggle-layout-sequence'. The last selected layout is always that + layout which was current direct before the most recent layout-switch. So + now a user can switch to another layout via `ecb-change-layout' [C-c . l c] + and always come back to his previous layout via [C-u C-c . l t]. + +** Better internal self-monitoring of ECB + ECB now monitors itself when Emacs is idle, ie. it monitors if all + necessary ecb-functions are still member of the hooks `post-command-hook' + and `pre-command-hook'. This is because Emacs resets these hooks to nil if + any of the contained hook-functions fails with an error-signal. The + ECB-hook-functions are error-save but if any of the "other" hook-functions + of these hooks fail then the ECB-hooks would also have been removed from + these hooks. The new monitoring-mechanism checks this periodically and + re-adds the ECB-hooks if necessary. + +** New option group for the integrated speedbar and one new option: + The new hook `ecb-speedbar-before-activate-hook' runs directly before ECB + activates the integrated speedbar. For example this hook can be used to + change the expansion-mode of the integrated speedbar via + `speedbar-change-initial-expansion-list'. Example: + (speedbar-change-initial-expansion-list "buffers"). + +** Added a new section in the info-manual which describes how desktop.el can be + used best in combination with ECB. This has been done because some + conflicts have been reported. See the "Conflicts"-Chapter in the + info-manual. + +** Fixed bugs + +*** Double-clicking the mouse-1-button now works with integrated speedbar. + +*** Fixed two small bugs in the advice of `display-buffer': + One bug occured when called for one of the special ECB-buffers. The other + bug has not preserved the current-buffer when called for a buffer in the + sense of `ecb-compilation-buffer-p' and a hidden compile-window is + shown by display-buffer to display this buffer. The latter one for example + has prevented the ant-server of JDEE from working properly. + +*** Fixed a bug so now always the correct directory in the directories-buffer + is higlighted. + + + +* Changes for ECB version 2.22 + +** New nifty feature for filtering the tags displayed in the Methods-buffer + You can filter by regexp, protection, tag-class etc. See the new command + `ecb-methods-filter' (bound to [C-c . f m] and the new option + `ecb-methods-filter-replace-existing' for getting all details. + + Filters can be layered filters, i.e. you can apply filters on top of + already applied filters: An example of 3 combined filters would be: Display + only all public methods having the string "test" in its name. The modeline + of the Methods-buffer always displays the topmost filter. But you can see + all currently applied filters by moving the mouse over this section of the + modeline: The filters will be displayed as help-echo. + + The new functionality is also completely available via the popup-menu of + the Methods-buffer. + + Currently tags of class 'type can not be filtered out, because especially + in OO-languages like Java or C++ this makes only less sense because if the + class is filtered out then no filter can be applied to its members like + methods or attributes. + + These tag-filters can also applied to sources which are not supported by + the semantic-parser but "only" by imenu or etags. But because for these + sources not all information are avaiable the protection- and tag-class + filter can not used with such "non-semantic"-sources. + +** All tree-buffer filters are now guarded against filtering out all tags. + Each filter which a user can apply to the sources-, methods- or + history-buffer is now guarded against filtering out all nodes by accident, + ie. if a filter would empty the whole tree-buffer then this filter will be + autom. unwinded. + +** Much smarter mechanism to highlight the current tag in the methods-buffer. + Previous versions of ECB have always fully expanded the whole tree in the + Methods-buffer if the current tag in the source-buffer was not visible in + the current tree - e.g. because the variables-bucket was collapsed or the + containing type of a tag (e.g. the class of a method) was collapsed. So in + most cases much more was expanded as needed to make the current tag + visible. + + The mechanism of ECB 2.22 only expands the needed parts of the tree-buffer + to make the related node visible: First we try to highlight the current tag + with current expansion-state of the Methods-buffer. If the node is not + visible so the tag can not be highlighted then we go upstairs the ladder of + type-tags the current tag belongs to (e.g. we expand successive the nodes + of the whole class-hierachy of the current method-tag until the related + node becomes visible). If there is no containing type for the current tag + then the node of the tag is probably contained in a toplevel-bucket which + is currently collapsed; in this case we expand only this bucket-node and + try highlighting again. Only if this has still no success then we expand + the full tree-buffer and try to highlight the current tag. + + There is also a new option `ecb-auto-expand-tag-tree-collapse-other': If + this option is set then auto. expanding the tag-tree collapses all not + related nodes. This means that all nodes which have no relevance for the + currently highlighted node will be collapsed, because they are not + necessary to make the highlighted node visible. This feature is switched + off by default because if always collapses the complete Methods-tree before + the the following highlighting of the node for the current tag expands the + needed parts of the tree-buffer. + +** The popup-menus can now be nested into 4 levels of submenus. In general there + could be an infinite depth of nesting but it makes no sense - if possible + at all - to define infinite nested defcustom-types. So there is a limit of + 4 levels until a user asks for more - then this wish can be satisfied + during 1 minute: Just increase the value of the `ecb-max-submenu-depth' + before loading ECB. This enhancement affects the four options with name + `ecb-*-menu-user-extension'. + +** The indication for ECB in the minor-mode is now hidden when the ECB-windows + are visible because in this case the activity of ECB is quite obvious. When + the ECB-windows are hidden the the value of `ecb-minor-mode-text' is + displayed in the modeline. + +** Compatibility enhancements + +*** Cause of the fixed bugs the compatibility for `bs-show' has increased when + the buffer-selection should be displayed in the permanent compile-window. + +** Fixed Bugs + +*** Fixed a bug preventing the native Windows-port of XEmacs from working. + +*** Makes the behavior of adviced `display-buffer' fully compatible to the + original version for all buffers which are neither ecb-tree-buffer nor + compilation-buffers in the sense of `ecb-compilation-buffer-p'. These + "source-buffers" are now also handled correctly in all situations. + +*** Fixed a small bug in `ecb-toggle-compile-window-height'. This bug has + influenced the behavior of `display-buffer' when called from programs for + "compilation-buffers". + +*** Fixed a bug related to the speedbar-integration. + This bug complained "Can not switch buffer in dedicated window" when the + intergrated speedbar-buffer was selected and the user tries to open a file + or to jump to a tag. + +*** Fixed a bug for the special ECB-modeline-menu for the XEmacs-modelines. + Now only in the special ECB-tree-buffer a special ECB-modeline-menu is + bound to mouse-3, all other buffers display the standard modeline-menu of + XEmacs. + +*** Fixed a bug which occurs with XEmacs in combination with func-menu. + But there are still some incompatibilities between ECB and func-menu. So + the recommendation is to disable func-menu-support when using ECB. + Normally using func-menu makes no sense in combination with ECB because + ECB provides the same and even more informations as func-menu - so + func-menu is redundant ;-) + + + +* Changes for ECB version 2.21 + +** Advice for `balance-windows' so only the edit-windows are balanced. + Thanks to David Ishee <782zp6a02@sneakemail.com> for suggestion. + +** New option `ecb-ignore-display-buffer-function' + Per default the adviced version of `display-buffer' ignores the value of + `display-buffer-function' when called for the ECB-frame. If this variable + should not be ignored then the function of `display-buffer-function' is + completely responsible which window is used for the buffer to display - no + smart ECB-logic will help to deal best with the ECB-window-layout! You can + define if and when `display-buffer-function' should be ignored: Always + (default), when a compile-window is used or never. + +** Compatibility enhancements + In general the current layout-engine of ECB is so flexible that there + should be no - or at least very few - conflicts between ECB and any other + elisp-library - even when another lib is running during the ECB-windows are + visible. + +*** Commands like `bs-show' of the library bs.el now work correctly with ECB + +*** Xrefactory works even when all ECB-windows are visible (see Fixed Bugs). + +*** Applications like Gnus or BBDB run withing the ECB-frame without conflicts - + even when the ECB-windows are visible. + +*** Commands using `Electric-pop-up-window' now work correctly with ECB. + This ensures that the electric-* commands (e.g. `electric-buffer-list' or + `electric-command-history') work well with ECB. If the related + "display-buffer" of such an electric command is a "compilation-buffer" in + the sense of `ecb-compilation-buffer-p' then this buffer will be displayed + in the compile-window of ECB - if there is any shown. + +** For XEmacs the package fsf-compat is no longer required by ECB. + But it is still necessary to check if fsf-compat is required by the + packages semantic, eieio and speedbar which in turn are required by ECB. + +** Fixed Bugs + +*** Fixed a fatal bug which prevents `other-window' from working with + arguments < 0. This bug has also prevented Xrefactory from working correct + when ECB is active - see compatibility enhancements above. + +*** If point stays in the current source-buffer on a function argument then still + ECB highlights the function in the Methods-buffer. + +*** ECB now uses `compilation-window-height' correctly when set buffer-local + as possible with latest CVS-version of GNU Emacs 21. + +*** Fixed a bug in `ecb-sources-filter' and `ecb-history-filter'. + + + +* Changes for ECB version 2.20 + +** New customization group "ecb-most-important" + This group centralizes the most important options of ECB in one group which + is also offered by the "Preferences" submenu ob the ECB-menu. These are + options you should at least know that they exist. + +** The keybinding for the online-help has changed from [C-c . o] to [C-c . h] + This has been done because the key [C-c . o] is needed for the new command + `ecb-toggle-scroll-other-window-scrolls-compile'. + +** The options `ecb-major-modes-activate' and `ecb-majors-mode-deactivate' have + been replaced by one new option `ecb-major-modes-show-or-hide'. The purpose + of the old option is now quite out-of-date because: + - ECB supports window-managers like winring.el or escreen.el very well, + - as of version 2.20 ECB has no restrictions about the number of + edit-windows and + - the new option simplifies things a lot. + +** The restriction of only two edit-windows has been gone! + +*** Beginning with this version 2.20 there are no restrictions about the + window-layout in the edit-area of ECB. This means you can split the + edit-area of ECB in as many windows as you like. The split-state of the + edit-area will be preserved when toggling the visibility of the + ECB-windows and even between activation and deactivation of ECB. Deleting + of certain edit-windows will never destroy the special ECB-windows or the + compile-window. Just work with the edit-area of ECB as if it would be an + extra frame! + +*** Option `ecb-split-edit-window' has been renamed in + `ecb-split-edit-window-after-start' because this new name reflects much + better the purpose of this option. In addition there is offered a new + value 'before-deactivation which is also the new default value. This new + value preserves the full state between activations of ECB, i.e. the + visibility of the ECB-windows, the visibility of a compile-window and also + the full split-state of the edit-area. ECB auto. upgrades your setting! + +*** Compile-window can now be displayed even when the ECB-windows are hidden. + So now you can have the same compile-window functionality when the + ECB-window are hidden as when the ECB-windows are visible. The state of + the compile-window will be preserved when toggling the ecb-windows or when + maximizing one ecb-windows! So you have the advantage of one special + window for all help-, grep or compile-output also when the ecb-windows are + hidden - a window which will not be deleted if you call + `delete-other-windows' (bound to [C-x 1]) for one of the edit-windows. + +*** 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. ECB autom. upgrades the old settings. + +*** New keybinding [C-c . g l] for selecting the last selected edit-window. + Also available via the ECB-menu. The command is + `ecb-goto-window-edit-last'. + +*** Option `ecb-other-window-jump-behavior' has been renamed to + `ecb-other-window-behavior' and has also two new allowed values: 'smart + (the new default) and an arbitrary function-symbol. With the latter one + the user can define his own other-window-behavior and the former one + chooses in a smart and intuitive way the "other window" for going to it + via `other-window' or for scrolling it via one of the "scroll another + window"-functions (e.g. `scroll-other-window'). Thanks to John S. Yates, + Jr. for suggesting the new smart behavior. ECB + autom. upgrades the old value of `ecb-other-window-jump-behavior' to the + new option-name. + +*** New option `ecb-scroll-other-window-scrolls-compile-window' and new + command `ecb-toggle-scroll-other-window-scrolls-compile' (bound to [C-c . + o]). If this new option is nil then ECB chooses very smart and intuitive + the window which will be scrolled by commands like `scroll-other-window' + (see documentation of the the option `ecb-other-window-behavior'). But + sometimes the user wants to scroll the compile-window from another window. + With this new command the user can fest and easy toggle the behavior ECB + chooses another window for scrolling. + +*** Higher compatibility of ECB with other packages + Without the 2-edit-window-restriction ECB is now more compatible with + other packages. For example the package calculator.el can now also being + used without setting `calculator-electric-mode' to not nil - regardless in + how many edit-windows the edit-area of ECB is splitted. Also the package + bs.el (command `bs-show') benefits from the new layout-flexibility. As of + ECB-version 2.20 there should be no conflicts between this package and + ECB. + +** Enhancements to the tree-buffers of ECB + +*** Enhancements to the popup-menus of the tree-buffers + +**** All popup-menus of the tree-buffers can be used with the tmm-library + The already existing command `tree-buffer-show-menu-keyboard' (bound to + [M-m] in every tree-buffer of ECB) accepts now a prefix argument. If called + with a prefix-argument (hit [C-u M-m]) then the popup-menu is displayed + with the tmm-mechanismus (like the Emacs-[menu-bar] is displayed when + `tmm-menubar' is called). Thanks for suggestion to Yvonne Thomson + . + +**** Select an edit-window via popup where a source should be opened or a token + should be displayed. + +**** The popup-menus can be dynamically extended. + See the new options `ecb-directories-menu-user-extension-function', + `ecb-sources-menu-user-extension-function', + `ecb-methods-menu-user-extension-function' and + `ecb-history-menu-user-extension-function'. + +**** All popup-menu-commands respect the setting of the option + `ecb-mouse-click-destination' (formerly known as + `ecb-primary-mouse-jump-destination' - see above). + +*** ECB supports the default modeline-mechanisms for deleting other windows. + GNU Emacs binds [mouse-2] in its modeline to `delete-other-window'. ECB + now supports this mechanism by binding a toggle-command to [mouse-2] in + the modeline of each tree-buffer: If all ECB-windows are visible then this + command maximizes the current tree-window and if current tree-window is + maximized all ECB-windows are displayed again. XEmacs binds a popup-menu + with some window commands to [button-3] in its modeline. ECB supports this + mechanism by replacing this menu by a menu which offers exactly 2 + commands: Maximizing current tree-window and displaying all ECB-windows. + +*** Now all commands for selecting a tree-buffer work even when this buffer is + not visible because another tree-buffer is maximized. If the tree-buffer + is contained in the layout then the layout is redrawn with all its + tree-buffers visible so that tree-buffer can be selected. Same for + maximizing. An example for such a command is `ecb-goto-window-methods'. + +*** New option `ecb-maximize-ecb-window-after-selection'. + Automatic maximizing of a tree-window after selecting it. Thanks for + suggestion to John S. Yates, Jr. . + +*** Changes to the image-icons of the tree-buffers + +**** All image-files have been renamed from .xpm to + ecb-.xpm. This was necessary because the icons for "open" and + "close" in Emacs toolbar got superseeded by ECB's icons for "open" and + "close". The problem was, that ECB was using the same names for the icon + files "open.xpm" and "close.xpm" as emacs toolbar does. This problem + occurs if the image-directory of ECB is contained in the `load-path' + which is when ECB is installed in the site-lisp directory of Emacs with + the default subdirs.el of Emacs which adds automatically all + subdirectories to the load-path (and therefore also subdirectories which + does not contain elisp-files but only images - btw: not really smart;-). + Thanks to Roland Schaeuble for pointing + out that. + +**** Added all image-icons in a 10-point height. + Thanks to Nick Cross for sizing down the images. + +** New default-value for `ecb-post-process-semantic-taglist'. + Now for buffers with major-mode `c-mode' all function-prototypes are + filtered out. For example this is useful for editing C files which have the + function prototypes defined at the top of the file and the implementations + at the bottom. This means that everything appears twice in the methods + buffer, but probably nobody wants to jump to the prototypes, they are + only wasting space in the methods buffer. Of course in C-header-files + function-prototypes will be displayed! + + Thanks for suggestion and a first implementation to Rob Walker + . + +** Changes for the compile-window + +*** The command `ecb-toggle-compile-window' now displays a compile-window even if + the option `ecb-compile-window-height' is nil. This is a shortcut for + customizing this option via the customize-feature if you just want + displaying a compile-window for the current Emacs-session. In this + situation ECB asks for the height of the compile-window, sets this height + as new value of `ecb-compile-window-height' and displays the + compile-window. + +*** New option `ecb-change-layout-preserves-compwin-state'. + Changing the layout preserves now the state of the compile-window if this + option is not nil. This is for example useful if the user toggles between + several layouts and wants to preserve the hidden-state of the + compile-window. Thanks to John S. Yates, Jr. for + suggestion. + +*** Adviced `delete-window' and `delete-other-windows' handle compile-window. + The former one hides the compile-window if called in or for that window + whereas the latter one hides the compile-window if called in or for an + unsplitted edit-window. Thanks to John S. Yates, Jr. + for the suggestion. + +** New option `ecb-activation-selects-ecb-frame-if-already-active'. + See the docstring for more details. Thanks for suggestion to Jeff Jensen + + +** The command `ecb-redraw-layout' can be called with prefix-argument(s). + Called with ONE prefix-argument the command behaves as with ECB-versions < + 2.20, i.e. redrawing the full layout regardless of the current + visibility-state of the ecb-windows or the compile-window. Called without a + prefix-arg this command now preserves the state of the ecb-windows as well + as the state of the compile-window. Called with TWO prefix-args means an + emergency-redraw (see documentation of `ecb-redraw-layout'). + +** New command `ecb-display-news-for-upgrade'. + ECB autom. displays after an upgrade a short summary of the most important + NEWS. With the new command you can do this also on demand. + +** Fixed Bugs + +*** Adviced `display-buffer' handles `same-window-buffer-names' and + `same-window-regexps' correctly. + +*** Fixed a bug preventing tree-buffers with expand-symbol "before" to work + +*** Fixed a bug in the adviced version of `other-window'. + Now it works correctly also when a durable compile-window is set but + currently hidden. + +*** Fixed a bug when scrolling a window from within the minibuffer. + For example this bug has prevented scrolling the *Completion* buffer from + within the minibuffer. Now `minibuffer-scroll-window' is set correctly. + +*** Toggling the compile-window has not worked when `ecb-compile-window-height' + has not been saved for future sessions. This is fixed now. + +*** `ecb-cycle-through-compilation-buffers' works with hidden compile-window. + +*** Fixed a bug when an ECB-window was maximized and the user has stored sizes + for this layout. + +*** Fixed a bug in `ecb-major-modes-activate' and `ecb-major-modes-deactivate' + +*** Fixed a bug in the handling of the option `ecb-kill-buffer-clears-history' + +*** Fixed a bug which prevents some older version of XEmacs 21.4 working well. + For XEmacs 21.4.6 a bug was reported which causes this XEmacs-version to + fail when `compile' or `grep' is called. The reason for this was that + these old versions of XEmacs 21.4 contain versions of `display-buffer' + and/or `get-frame-for-buffer' which do not have the fourth argument + SHRINK-TO-FIT. Now ECB has fixed this and handles correctly the option + `temp-buffer-shrink-to-fit' and all shades of displaying and compiling + buffers even for these versions of XEmacs. + + + +* Changes for ECB version 2.11 + +** Using semanticdb to jump to type-tags defined in other files. + In OO-languages like CLOS, eieio and C++ there can be type-tags in the + method-buffer which are somehow virtual because there is no definition in + the current source-file. But such a virtual type collects all its outside + defined members like methods in C++ which are defined in the *.cc file + whereas the class-definition is defined in the associated header-file. + ECB uses semanticb to open the definition-file of such a tag and to jump to + the definition of this tag. Same for parent-tags in the methods-buffer. + This feature can only work correctly if semanticdb is well configured! + +** New option `ecb-ignore-special-display' + The options `special-display-buffer-names', `special-display-regexps' and + `special-display-function' work as expected. Per default this in only true, + when no durable compile-window is used (see option + `ecb-compile-window-height'), i.e. with a durable compile window the + special-display-options are ignored per default. But this behavior can be + changed with the new option `ecb-ignore-special-display'. + + Thanks to Rob Walker for a first suggestion. + +** Better reporting if there are errors during ECB-startup + +** Fixed bugs + +*** Clicking onto nodes with positionless semantic-tags as data doesn't fail + +*** Non-semantic sources (e.g. Perl, TeX) work when cedet 1.0 is loaded + +*** Fixed the versioning of ECB so the autom. upgrade works + + + +* Changes for ECB version 2.01 + +** Prepared for the new semantic 2.0 beta (contained in the cedet 1 beta) + +*** New naming convention + + Forthcoming semantic 2.0 (part of the new cedet-library) introduces a new + naming convention. Here is the relevant part of the semantic 2.0 + NEWS-file: + + token - Refers to a lexical analyzer production. + stream - A list of tokens + tag - Refers to a datastructure created by a grammar to represent + something in a language file + table - A hierarchical list of tags. + tag-class - A tag may represent a function, data type, or variable. + parse - Run a source file through a parser. + + Normally there is no need for ECB users to bother with all details of + semantic naming conventions but for the sake of consisteny between + semantic and ECB the ECB-package has renamed all its variables and + functions from "token" to "tag". Therefore also all options which contain + "token" in their name have been renamed by replacing "token" with "tag". + See RELEASE_NOTES for a list of this options. + + ECB autom. upgrades all old-values of these options to the new options! + There is nothing to do for you. + +*** ECB works with new semantic 2.0 which is shipped within cedet 1.0 + +** Overhaul of the display-layer and -handling of the tree-buffers + +*** Now there are 3 different styles available + * Image: Looks very nice and modern - just give it a try or see the + screenshots-section at http://ecb.sourceforge.net + * Ascii with guide-lines: Drawing the trees with ascii-symbols + * Ascii without guide-lines: This is the style of ECB <= 1.96 + + For details and a visualization of these different styles see the new + option `ecb-tree-buffer-style' (replaces the old option + `ecb-tree-use-image-icons'). + + Especially the new image-style was inspired by the library tree-widget.el + written by David Ponce . Also some images shipped with + ECB are "stolen" from this library. + +*** No-leaf-tree-nodes with currently no subnodes are displayed with [x] + An example are directories in the Directories tree-buffer which have + currently no subdirectories. Leafs like source-files or methods are of + course handled as leafs and not as currently empty nodes. + +*** Fixed some inconsistencies in expanding, collapsing and selecting nodes + +*** Moving all options related to the tree-buffer-style or -handling to the new + customize-group "ecb-tree-buffer". + +** Completely rewritten popup-menu mechanism. + +*** Now sub-menus are allowed for all popups + To give a better lucidity of the popup-menus of the tree-buffers these + menus can now being arranged in sub-menus. The default values now already + use sub-menus. So if you have added menu-entries 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' ECB + resets these options to the new defaults of ECB and adds at the top your + "old" personal entries. This comes because the type of these options has + changed. Thanks for general suggestion to Ole Arndt . + +*** Added new defaults to `ecb-directories-menu-user-extension' + Three new entries "CVS status", "CVS examine" and "CVS update" in a new + sub-menu "Version control" for running CVS-commands against the directory. + These menu-entries are added as new default values to + `ecb-directories-menu-user-extension' so a user can delete or change them + if he does not use CVS but another revision-tool (e.g. Clearcase). Thanks + for suggestion and first implementation to Ole Arndt . + +*** Added new defaults to `ecb-sources-menu-user-extension' + One new sub-menu "Version control" with some senseful commands. See also + new default for the option `ecb-directories-menu-user-extension'. Same is + added to the `ecb-history-menu-user-extension'. Thanks for suggestion and + first implementation to Ole Arndt . + +** Possibility to define which types should be expanded at file-open-time + Semantic groups types into different type-specifiers. Current available + type-specifiers are for example "class", "interface", "struct", "typedef", + "union" and "enum". With the new option `ecb-type-tag-expansion' you can + specify on a major-mode-basis which type-specifiers should be expanded at + file-open-time and which not. So for example in C++ it could be senseful + not to expand the types with a type-specifiers "typedef", "struct" or + "enum" (see the default-value of this option). + +** Adding a filter-feature to the Sources- and the History-buffer + Now a filter can be applied to the Sources- and/or History-buffer which + desides which entries are displayed in these buffers. See the new commands + `ecb-sources-filter' (bound to [C-c . fs]) and `ecb-history-filter' (bound + to [C-c . fh]) and the new entries for the popup-menus for these buffers. + In the sources-buffer each directory has its own filter. The currently + applied filter is displayed in the modeline of that tree-buffer with the + new face `ecb-mode-line-prefix-face' (s.b.) + +** Changes related to the modelines of the tree-buffers + +*** Added faces to the mode-lines of the ECB-tree-buffers. + See the three new options `ecb-mode-line-win-nr-face', + `ecb-mode-line-prefix-face' and `ecb-mode-line-data-face' and also they + related (and equally named) new faces. + +*** Moved all options related to the modelines in the new customize-group + "ecb-mode-line". + +** No window-restrictions if the ECB-windows are hidden + If the special ECB-windows are hidden (e.g. by `ecb-toggle-ecb-windows') + then there are no restrictions about the window-layout of the ecb-frame: + The frame can be splitted in any arbitrary windows. All adviced functions + behave as their originals. So the frame can be used as if ECB would not be + active but ECB IS still active in the "background" and all ECB-commands and + all ECB-keybindings can be used. Of course some of them doesn't make much + sense but nevertheless they can be called. + + Therefore it should be enough to hide the ECB-windows to run other + Emacs-applications which have their own window-layout-managing. There + should be no conflicts. But nevertheless the most recommended method for + running ECB and other applications (e.g. xrefactory, Gnus etc.) in the same + frame is to use a window-manager like winring.el or escreen.el! + +** Ediff runs per default in the ECB-frame. + Now ediff can run per default in the ECB-frame because ECB ensures that all + special ECB-windows are hidden before ediff sets up its own window-layout. + ECB also restores exactly the "before-ediff" window-layout of the ecb-frame + See new option `ecb-run-ediff-in-ecb-frame'. + +** More flexible directory-caching with new `ecb-cache-directory-contents-not' + +** New option `ecb-advice-window-functions-signal-error' + Now the adviced window functions of `ecb-advice-window-functions' do not + signal per default an error if called in situations which are not allowed - + they simple do nothing. An example is calling `delete-window' in a special + ecb-window or in the compile-window; if this new option is nil then nothing + is done otherwise an error is signaled. If you want the old behavior of + signaling an error just set this new option to not nil. + +** Fixed Bugs + +*** When the special ECB-windows were hidden and a durable compile-window was set + then ECB shows the special ECB-windows when a temp-buffer (e.g. + *Help*-buffers) has been displayed. This annoying behavior is fixed. + +*** XEmacs has not added the ECB-menu to the menubar of that buffers which are + already alive while activating ECB. On the other side XEmacs has not + removed the ECB-menu from the menubar for all living buffers after + deactivating ECB. Both of these two bugs are fixed now. + +*** JDEE-dialogs now work correctly. + JDEE offers sometimes "dialogs" where the user can choose among several + options. These "dialogs" now work correctly regardless if a durable + compile-window is used or not. + +*** A bug in displaying the tree-buffers in a different font or font-height + + + +* Changes for ECB version 1.96 + +** ECB can work together with the window-managers escreen and winring + This allows to run applications like Gnus, VM or BBDB in the same frame as + ECB! See the new lib ecb-winman-support.el and read the section + "Window-managers and ECB" in the chapter "Tips and tricks" in the + info-manual of ECB. + + Thanks to Johann "Myrkraverk" Oskarsson + who has reported some bugs related to escreen and has therefore motivated a + lot to add support for the well known window-managers escreen and winring. + +** ECB can display the window-number in the modeline of the special windows. + The left-top-most window in a frame has the window-number 0 and all other + windows are numbered with increasing numbers in the sequence, functions + like `other-window' or `next-window' would walk through the frame. This + allows to jump to windows by name as described at the Emacs-Wiki + http://www.emacswiki.org/cgi-bin/wiki.pl?SwitchingWindows. + + See the new option `ecb-mode-line-display-window-number'. Currently this + feature is only available for GNU Emacs 21.X, because neither GNU Emacs < + 21 nor XEmacs can dynamically evaluate forms in the mode-line. + + Thanks to Johann "Myrkraverk" Oskarsson + for suggesting this. + + In addition the already existing options `ecb-mode-line-data' and + `ecb-mode-line-prefixes' are now more flexible and are now able to define + special modelines not only for the 4 builtin ECB-tree-buffers but for every + special ECB-buffer. ECB will autom. upgrade the old values of these options + as best as possible to their new types! + +** Much better support of the ECB-compile-window + +*** General overhaul for displaying buffers in the ECB-compile-window. + The whole mechanism has been rewritten so now using a durable + compile-window is much safer and works as well as without one. Now all + buffers displayed with `display-buffer' are checked if they are + "compilation-buffers" in the sense of the function + `ecb-compilation-buffer-p' and then displayed in the compile-window of + ECB. Especially temp-buffers displayed with `with-output-to-temp-buffer' + (e.g. *Help*-buffers) are now much better supported. + + Simply said: All buffers for which `ecb-compilation-buffer-p' says t are + now *always* displayed in the compile-window (if there is any) with + complete consideration of Emacs-options like `compilation-window-height', + `temp-buffer-max-height', `temp-buffer-resize-mode' (GNU Emacs), + `temp-buffer-shrink-to-fit' (XEmacs) etc. All other buffer not. + +*** New layout-option `ecb-compile-window-width'. + Thanks for suggestion to John S. Yates, Jr. + +*** New layout-option `ecb-compile-window-prevent-shrink-below-height' + +*** Better and more reliable eshell-integration. Now the compile-window fits + always autom. to the output of the last eshell-command. + +*** All options related to the ECB-compile-window have been moved to the new + customization-group "ecb-compilation" which is a subgroup of "ecb-layout". + +** Safer handling of all adviced functions of ECB + All ECB-advices are now active if and only if ECB is running. Just loading + the ECB-library doesn't activate any ECB-advice! Also if there is an error + during the activation-process of ECB then all advices are always disabled + automatically. + +** ECB can visit tokens in a smarter way + +*** Narrowing via popup-menu of the Methods-buffer includes now the documentation + of the token if located outside of the token (e.g. Javadoc for Java). + +*** More flexible definition what to do after visiting a token via the + Methods-buffer. See the new option `ecb-token-visit-post-actions' which now + replaces the options ecb-highlight-token-header-after-jump', + `ecb-scroll-window-after-jump' and `ecb-token-jump-narrow'. + +** ECB selects autom. the current default-directory after activation even if + no file-buffer is displayed in the edit-window. This is useful if ECB is + autom. activated after startup of Emacs and Emacs is started without a + file-argument. So the directory from which the startup has performed is + auto. selected in the ECB-directories buffer and the ECB-sources buffer + displays the contents of this directory. See new option + `ecb-display-default-dir-after-start'. + +** ECB preserves the split-state of the frame after activation rsp. deactivation + This is done if the already existing option `ecb-split-edit-window' has the + new value t. + +** New command `ecb-toggle-window-sync' for fast toggling between autom. + synchronization of the ECB-buffers is switched on and off. + +** The popup-menu of the Directories-buffer allows opening a dir with Dired. + The Sources-Buffer offers the same for the current selected directory. In + the History-buffer the directory of the selected file-buffer can be + "dired". + +** Now manually resizing of the ECB-windows is possible even if + `ecb-fix-window-size' is not nil for current layout. Thanks for suggestion + Massimiliano Mirra . Only relevant for GNU Emacs 21.X. + +** ECB does not call any functions of the cl-library at runtime. + +** Fixed Bugs + +*** Fixed all the file- and directory-commands in the popup-menus. + Now the Directories- and Sources-buffers are autom. updated after creating + rsp. deleting source-files or directories. + +*** Jumping to some tokens for Perl sources failed. This is fixed now. + +*** Now the buffer-names displayed in the History-window are always uptodate, + even if file-buffers are killed/opened during hidden ECB-windows. + +*** Fixed a conflict between ECB and `tmm-menubar' (tmm.el) + +*** Fixed a lot of misspellings in the ECB-online-help and also in all comments + and strings of the sources. + +*** Fixed a bug in `ecb-toggle-enlarged-compilation-window'. + This function has been also renamed to `ecb-toggle-compile-window-height'. + +*** Fixed a bug in the layout-engine related to dedicated windows. + Thanks to Johann "Myrkraverk" Oskarsson + who helped to find this bug. + +*** Fixed some references in the info-manual of ECB. + + + +* Changes for ECB version 1.95.1 + +** Now the ecb-windows can be "maximized", means all other ecb-windows are + deleted so only the edit-window(s), and this maximized ecb-window are + visible (and maybe a compile-window if active). This can be done either via + the popup-menus of the ecb-windows or via calling `delete-other-windows' + (bound to [C-x 1]) in one of the ecb-windows or via the new commands + `ecb-maximize-window-*' where * stands for {directories, sources, methods, + history, speedbar}. There is also a command + `ecb-cycle-maximized-ecb-buffers'. + + *Note*: 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; see RELEASE_NOTES for details. + +** All popup-menus of the ECB-tree-buffers can be opened via [Meta-m] + +** Fixed bugs + +*** Clicking onto the image-icons of an integrated speedbar has failed for + XEmacs. This comes from a bug in speedbar which is now fixed locally in + ECB by advicing `dframe-mouse-set-point' if speedbar is integrated in the + ECB-frame. + + + +* Changes for ECB version 1.95 + +** ECB now displays the expand- and collapse symbols in the tree-buffers with + image-icons - the same icons as speedbar uses. See the new option + `ecb-tree-use-image-icons'. + +** Adding hideshow to the popup-menu of the Methods-buffer. + This popup-menu now offers two entries for hiding rsp. showing the block + of that token in the Methods-buffer for which the popup-menu was opened. + This is done with the hideshow.el library. + Thanks to Christoff Pale for suggestion. + +** Horizontal scrolling of the tree-buffers by clicking the edges of the + modeline with mouse-1 or mouse-2. I.e. if you click with mouse-1 onto the + left (rsp right) edge of the modeline you will scroll left (rsp. right) + with the scroll-step defined in `ecb-tree-easy-hor-scroll'. This is only + for GNU Emacs because XEmacs has hor. scrollbars. + +** Changed default key-bindings: + - C-c . r: `ecb-rebuild-methods-buffer' + - C-c . lc: `ecb-change-layout' + - C-c . lr: `ecb-redraw-layout' + - C-c . lt: `ecb-toggle-layout' + - C-c . lw: `ecb-toggle-ecb-windows' + +** Starting ECB is now possible via the "Tools"-menu + +** ECB now requires speedbar version 0.14beta1 or higher. An automatic + requirements-check is done by ECB. This is because now ECB has three + dependencies to speedbar-code: Integrating whole speedbar in the ECB-frame, + using speedbar-logic to parse files with imenu or etags and using the icons + of speedbar for the ECB-tree-buffers. + +** Fixed bugs + +*** Now the "goto-window-..." menu-entries in the "ECB"-menu are working correct + if a speedbar is integrated into the layout. + +*** Preventing etags-supported sources from being parsed (and saved) too often. + + + +* Changes for ECB version 1.94 + +** Supporting of non-semantic-sources. + +*** Native parsing and displaying source-contents of imenu supported files + +*** Native parsing and displaying source-contents of etags supported files + +*** There are some new options like `ecb-process-non-semantic-files', + `ecb-non-semantic-parsing-function' and `ecb-method-non-semantic-face' and + one new face `ecb-method-non-semantic-face'. See new customize group + "ecb-non-semantic"! + +** Better speedbar integration into the ECB-frame + +*** Now speedbar can be used not only as replacement for the + ECB-directory-browser in the directory-window but also instead of the + sources- or the methods-buffer/window. See new option + `ecb-use-speedbar-instead-native-tree-buffer' which replaces the old + option `ecb-use-speedbar-for-directories'. + +*** Now speedbar can be integrated into an arbitrary layout in the same way as + the other four special buffers (directories, sources, methods and + history). See new example layout with name "left-dir-plus-speedbar". + +*** New option `ecb-directories-update-speedbar' which helps you + to update a speedbar-window to the current selected directory of the + ECB-directories-window. + +** New option `ecb-compilation-predicates' for better specifying which buffers + should be treated as compilation-buffers and therefore be displayed in the + compile-window of ECB - if there is any. + +** Better customizing of the mode-line of an ECB-tree-buffer. + See the new option `ecb-mode-line-data'. + +** Fixed bugs: + +*** Using "Add source path" from the popup-menu now doesn't open the Windows + file-dialog-box onto Windows-systems because this would prevent this + command from working. + +*** Smart arrowkey-navigation in the tree-buffers is now even smarter. + Thanks to John Russel for suggestion. + +*** If ECB was activated with a layout which does not contain a + directory-buffer then you got always an empty directory-buffer even after + switching to a layout with a directory-buffer. This is fixed now. + + + +* Changes for ECB version 1.93 + +** Fixed bugs: + +*** The adviced version of `other-window' now works correct too if a + minibuffer-window is active. + +*** The commands of `winner-mode' are now only forbidden in the ECB-frame + but work in any other frame. + +*** `scroll-all-mode' now works correct in other frames than the ECB-frame. + +*** Removed the annoying message "Partial reparsing..." + +** Enhancements to the layout: + +*** Slightly better redrawing current layout especially if the layout contains + a compile-window. + +*** ECB autom. displays hidden compile-window before starting a compilation. + This is done if `ecb-compile-window-height' is not nil but the + compile-window is currently hidden by `ecb-toggle-compile-window'. Of + course this works also for grep and other compile-modes. Same for + `switch-to-buffer' and `switch-to-buffer-other-window' if called for a + compilation-buffer in the sense of `ecb-compilation-buffer-p'. + +*** `switch-to-buffer-other-window' now works more naturally within the + ECB-frame, especially if a compile-window is used. + +*** `ecb-toggle-compile-window' now has a default key-binding: [C-c . \] + +*** Now also layouts with user-defined special ecb-windows can be created + interactively. See the online-manual for further details. + +** Enhancements to the tree-buffers: + +*** Now user-extensions can be added to the popup-menus of the tree-buffers. + See new options `ecb-directories-menu-user-extension', + `ecb-sources-menu-user-extension', `ecb-methods-menu-user-extension', + `ecb-history-menu-user-extension'. + +*** The methods-buffer now has a popup-menu with senseful actions + +** New option `ecb-sources-exclude-cvsignore' which allows to exclude files from + being displayed in the sources-buffer if they are contained in a .cvsignore + file. + +** ECB now also works with buffers "online" extracted from archives. + Buffers extracted from an archive in `tar-mode' or `archive-mode' are now + correct handled as if they were normal file-buffers. This feature doesn't + work with XEmacs cause of its tar-mode and arc-mode implementation which + does not handle extracted files as normal files. + +** ECB now checks at load-time if the required packages semantic and eieio are + at least available - regardless of the needed version. If at least one of + these packages is missing then ECB offers to download and install it. More + details are available in the installation instructions. + + + +* Changes for ECB version 1.92.1 + +** Fixed bugs: + +*** Fixing eating up a lot of CPU-power just for updating the menu- + entries of current compilation-buffers in the ECB-menu. Now the mechanism + is based on a idle-timer and a cache. + Fixed with great testing-help by Dan Debertin + +*** Fixed a bug which always truncates lines in the ECB-windows regardless + of the value of `ecb-truncate-lines' + +*** The upgrade library of ECB now explicitly requires and loads the + library executable.el because Emacs 20.X does not autoload the + function `executable-find'. + +*** `ecb-toggle-compile-window' now works also correct if called with + a prefix arg. + + + +* Changes for ECB version 1.92 + +** Fixed bugs: + +*** Fixed small bugs in the popup-menu of the history-buffer. + +*** Fixed some not working links in the FAQ. + +** ECB now includes a file "ecb-autoloads.el" which contains all available + autoloads of ECB. Therefore loading this file is enough. + +** Enhancements to the layout + +*** The sizes of the ecb-windows can be fixed even during frame-resizing + This new feature is only available with GNU Emacs 21.X. See new option + `ecb-fix-window-size'. + Suggested by Gunther Ohrner + +*** The command `ecb-store-window-sizes' can now also store fixed sizes. + If called with a prefix arg then fixed sizes are stored instead of + fractions of frame-width rsp. -height. + +*** The command `split-window' is now also adviced to work properly. + +** Enhancements for the tree-buffers + +*** "Create Source" in the popup-menus now work also for non-java-files. + +*** ecb-truncate-lines can now be set different for each ECB-tree-buffer. + +*** Easy horizontal mouse-scrolling of the ECB tree-buffers. See new option + `ecb-tree-easy-hor-scroll'. + +** Added a command `ecb-jde-display-class-at-point' which displays the contents + of the java-class under point in the methods-buffer of ECB. + +** Renamed previous HISTORY file to NEWS and reformated it for outline-mode. + + + +* Changes for ECB version 1.91.1 + +** Fixed bugs: + +*** Fixes a bug in the speedbar integration which prevented clicking onto a + directory in the speedbar: Always after clicking onto a directory speedbar + has re-synced itself to the directory of the current source-buffer in the + edit-window. This bug is fixed, now directory navigation in the speedbar + works. (Klaus) + +*** Fixes a bug in upgrading stored window-sizes from ECB 1.80 to ECB >= 1.90. + Fixes also two bugs in `ecb-store-window-sizes' if default-values are used in + `ecb-layout-window-sizes' or if ecb-windows have frame-height as height + (rsp. frame-width as width) . (Klaus) + +*** Fixed a bug in the navigation-history of ECB which sometimes has prevented + that a user can open files from the sources/history buffer or clicking onto + tokens in the method-buffer. Now the back-forward-navigation works stable. + (Klaus) + +** Enhanced the downloading feature of ECB + +*** Fixed a bug in the downloading feature of ECB. (Klaus) + +*** Now ECB autom. checks at the download sites which versions are available. + With the new option `ecb-download-package-version-type' you can define + which types of version you allow to download (only stable, stable and betas + or stable, betas and alphas); see related section in the online-manual! + (Klaus) + +*** New command `ecb-download-semantic' for easy getting latest semantic + versions. (Klaus) + + + +* Changes for ECB version 1.90 + +** The website of ECB has moved from http://home.swipnet.se/mayhem/ecb.html to + http://ecb.sourceforge.net. Maintainance has switched from Jesper Nordenberg + to Klaus Berndl. + +** Fixed bugs: + +*** Fixed an annoying bug which results in an error "Wrong type argument: + integer-or-marker-p nil)" after a full buffer reparse. ECB 1.80 has repaired + its internal state but nevertheless the user had to re-click on the same + token after this error to really jump to a token. With ECB 1.90 this bug has + been gone (Klaus). + +*** Fixed a small bug in `ecb-add-all-buffers-to-history': If + `ecb-sort-history-items' is nil then now the most recently used buffers are + added to the top of the history, the seldom used buffers at the bottom. + Thanks to Stefan Reichör ! (Klaus). + +*** Fixed some bugs concerning the eshell-integration (Klaus): + +**** Synchronizing does not set the mark anymore + +**** No longer synchronizing after every command if current source resides in + the HOME directory. + +**** Redrawing the layout preserves the eshell-buffer in the compile-window. + +**** Standard emacs-hooks are not clobbered with ecb-eshell-functions if ECB is + not active. + +** General enhancements: + +*** Now ECB displays at every start a "Tip of the day" in a dialog-box. This can + be switched off with option `ecb-tip-of-the-day'. There is also a new + command `ecb-show-tip-of-the-day' (Klaus). + +*** Advicing `scroll-all-mode' so it works correct with ECB, means + `scroll-all-mode' scrolls only the windows of the edit-area, i.e. max. the + two edit-windows (Klaus). + +*** Autom. preventing `winner-mode' from being activated as long as ECB is + running (Klaus). + +*** Now autom. (de)activating ECB via the options ecb-major-modes-activate and + ecb-major-modes-deactivate also works when opening files via dired (Klaus). + +*** Now ECB can be "autoloaded", i.e. + + ecb-activate, + + ecb-minor-mode, + + ecb-byte-compile and + + ecb-show-help + are autoload-able via '(autoload ...)' (Klaus) + +*** Silencing the byte-compiler, i.e. byte-compilation of ECB should now be + warning free. If byte-compilation still throws warnings during + byte-compilation with 'ecb-byte-compile' (rsp. using the Makefile or + make.bat) please send this to our mailing list. (Klaus) + +** Enhancements to the methods/variable/token tree-buffer: + +*** New feature: Now the methods buffer is auto. expanded if the node related to + the current token in the edit-window is not visible (probably because its + parent is collapsed). See new options `ecb-auto-expand-token-tree' and + `ecb-expand-methods-switch-off-auto-expand' and the new command + `ecb-toggle-auto-expand-token-tree' (Klaus). + +*** New command `ecb-expand-methods-nodes' which allows precisely expanding + tokens with a certain indentation-level. There are also two new related + options `ecb-methods-nodes-expand-spec' and + `ecb-methods-nodes-collapse-spec' (Klaus). + +** Enhancements to the directories tree-buffer: + +*** New command `ecb-expand-directory-nodes' which does the same for the + directories tree-buffer as the new command `ecb-expand-methods-nodes' for + the methods tree-buffer (Klaus). + +*** Rewritten cache-mechanism for directories and sources: + Depending on the value of the option ecb-cache-directory-contents the + following is cached for a directory: + - The disk-contents of the directory means subdirs and files + - If ecb-show-sources-in-directories-buffer is nil (i.e. sources are + displayed in the extra ECB-sources-window) then also the complete + sources-buffer is cached. This results in a speed-boost for big-size + directories. + The cache of a directory is refreshed and actualized with a POWER-click onto + the related directory in the directories-buffer (s.b.) (Klaus) + +** Enhancements to the sources tree-buffer: + +*** The option ecb-source-file-regexps now works on a directory-base, which means + for each directory-regexp the files to display can be specified. Default is + an all-matching directory-regexp. Old saved values are autom. upgraded + (Klaus). + +** Enhancements to the layout-customization: + +*** Naming and managing of layouts has been changed! Now a layout is not longer + identified by an integer but by an arbitrary string! Example: The layout + with index 0 in ECB <= 1.80 is now named "left1" in ECB 1.90. + +**** Therefore the name of the option 'ecb-layout-nr' has changed to + 'ecb-layout-name'! See the docstring of 'ecb-layout-name' for the names + of all built-in layouts. + +**** In this context also the type of ecb-show-sources-in-directories-buffer has + changed so it is now a list of layout-names where the sources should be + displayed in the directories window (or 'always/'never). Now every change of + the layout also checks the value of ecb-show-sources-in-directories-buffer. + +**** This change also introduces three new commands: + - ecb-change-layout: Change layouts by selecting a name + - ecb-delete-new-layout: Delete an user-created (by 'ecb-create-new-layout') + layout. + - ecb-show-layout-help: Displays the docstring of a layout which at least + for built-in layouts contains a picture of the outline of this layout. + All three commands offer TAB-completion for easy selecting a layout name. + +**** ECB autom. upgrades the following options to theirs new names/types: + - ecb-layout-nr: The stored value is transformed to the new name of the + related layout and stored in 'ecb-layout-name' + - ecb-toggle-layout-sequence: The stored value is transformed to the new + type with layout-names instead of layout-numbers. + - ecb-major-modes-activate: The stored value is transformed to the new type + with layout-names instead of layout-numbers. + - ecb-layout-window-sizes: The stored value is transformed to the new type + with layout-names instead of layout-numbers. + - ecb-show-sources-in-directories-buffer: Reset to the new default value. + (Klaus) + +*** Adding a new layout type "left-right" which allows the ECB-tree-windows to + be located at the left and the right side of the ECB-frame. See the new + layouts "leftright1", "leftright2" and "leftright3" for examples. Other + layouts of this type can be created or programmed very easy with + 'ecb-create-newlayout' rsp. the macro 'ecb-layout-define'. (Klaus) + +*** Now ECB offers a command `ecb-create-new-layout' for interactively creating + new layouts "by example". Read the online-help. (Klaus) + +*** Rewritten the mechanism for storing customized window-sizes. See option + ecb-layout-window-sizes and the command ecb-store-window-sizes and + ecb-restore-window-sizes. Now the sizes are always saved as fractions of + the width (rsp. height) of the ECB-frame, so the stored sizes are always + correct regardless of the current frame-size (Klaus). Suggested and first + implementation by Geert Ribbers [geert.ribbers@realworld.nl] + +** General Enhancements of the tree-windows: + +*** Introduced a POWER-click (was SHIFT-click before) in the ECB-tree-windows - + see documentation of ecb-primary-secondary-mouse-buttons and see also the + online-help section "Usage of ECB --> Using the mouse" (Klaus). + +*** Now the ECB-tree-buffers offer in their popup-menus a "Grep" and a "Grep + recursive" (= grep-find) command where you can perform an easy grep in every + directory without buffer-switching before. See also the new options + `ecb-grep-function' and `ecb-grep-find-function'. (Klaus) + +*** Modified syntax-table for all tree-buffers with all paren, braces and + brackets handled as whitespace so for example no paren-matching takes place + (Klaus). + +** Enhancements to the layout-engine of ECB: + +*** Added a complete new section "The layout-engine of ECB" to the online-help + which describes in detail how to program new layouts and new special + windows. This is for foreign packages which want to display own informations + in own special windows and synchronizing these windows with the edit-window + of ECB (a graphical debugger could be an example). Also a full working + example is added in the new file ecb-examples.el. (Klaus) + +*** Completely rewritten how to program new layouts. Now there is a new macro + `ecb-layout-define' which offers very easy programming of new layouts. + (Klaus). + +** Enhancements to the compile-window + +*** ECB now has a list of valid compilation buffers within the ECB menu. (Kevin) + +*** ECB now supports `ecb-enlarged-compilation-window-max-height' which can be + used for defining the max. height of the ecb-compile-window if enlarged by + `ecb-toggle-enlarged-compilation-window'. (burton) + +*** Added new command 'ecb-toggle-compile-window': Toggle the visibility of the + compile-window of ECB (Klaus). + +** Speedbar is now integrated in ECB and can be used instead of the standard + ECB-directories buffer (or instead of all tree-buffers if you like :-). Most + of the important basic work has been done by Kevin A. Burton. + +*** See new option 'ecb-use-speedbar-for-directories' and the node "Integrating + speedbar" in the online-help. (Klaus) + +*** Version-checking for correct speedbar version (>= 0.14beta1). For lower + versions ecb-use-speedbar-for-directories has no effect. (Klaus) + +*** ecb-speedbar and speedbar first loaded direct before drawing the layout + with integrated speedbar. (Klaus) + +*** The speedbar-commands speedbar, speedbar-get-focus are adviced during + running speedbar within ECB, so they behave in a senseful way. (Klaus) + +** Enhancements to the ehell-support of ECB: + +*** ecb-eshell now recenters after command execution. (burton) + +*** ecb-eshell now recenters if there are any window resizes. This is done so + that the prompt is always at the bottom of the window. (burton) + +*** ecb-eshell integration now protects against buffer-list modifications during + transparent eshell updates in the compile window. In the past, if the eshell + was running, and you want from buffer "foo", to "bar", and then tries to go + back to "foo" the next entry in your buffer list is "*eshell*" so this would + break a lot of completion tools like 'switch-to-buffer. (burton) + +*** Added online documentation for the eshell integration. See section + "Tips and tricks". (Klaus) + +** New hooks: + +*** New or renamed hooks: + - ecb-redraw-layout-after-hook (new) + - ecb-redraw-layout-before-hook (new) + - ecb-hide-ecb-windows-after-hook (new) + - ecb-hide-ecb-windows-before-hook (was ecb-hide-ecb-windows-hook) + - ecb-show-ecb-windows-after-hook (new) + - ecb-show-ecb-windows-before-hook (was ecb-show-ecb-windows-hook) + Read the documentation! (Klaus) + +*** Added two general hooks: + + ecb-before-activate-hook: Activate ECB only if all added hooks return not + nil + + ecb-before-deactivate-hook: Deactivate ECB only if all added hooks return + not nil + (Klaus) + +*** Added 5 new hooks for the ECB tree-buffers: + + ecb-common-tree-buffer-after-create-hook + + ecb-directories-buffer-after-create-hook + + ecb-sources-buffer-after-create-hook + + ecb-methods-buffer-after-create-hook + + ecb-history-buffer-after-create-hook + These hooks are called directly after tree-buffer creation so they can be + used for example to add personal local key-bindings either to all + tree-buffers (ecb-common-tree-buffer-after-create-hook) or just to a certain + tree-buffer. Please read the documentation. (Klaus) + + + +* Changes for ECB version 1.80 + +** ECB now requires: + + Latest stable release of semantic: Version 1.4 + + Latest stable release of eieio: Version 0.17 + ECB checks at start-time if the correct versions are available and if not + ECB offers you to download and install them from within Emacs. After this + you have only to restart Emacs and you are fine. (Klaus) + +** Fixed bugs: + +*** Fixed: Now no empty tool-tips are displayed if mouse moves over nodes in the + tree-buffers of ECB which can be displayed completely in the tree-window. + (Klaus) + +*** Fixed a bug in ecb-eshell. If we are running with current buffer sync, and + there is garbage on the current line, when we change buffers this garbage will + be executed which could result in a 'command not found' or even worse, a + damaging command executed. We now cleanse the command line prior to directory + changed. (Kevin A. Burton) + +*** Fixed a bug in ecb-speedbar. The speedbar was doing its own updating outside + of the ECB. This means that if you were to change buffers in a frame outside + of the ECB frame, the ECB's Speedbar would be updated to reflect a buffer not + within the ECB. We now disable Speedbar's automatic update and have ECB + handle this. (Kevin A. Burton) + +*** Fixed a bug: Sometimes there occurs a a "wrong-type-argument"-error (or + "destroyed extent"-error with XEmacs) under some circumstances. Now ECB + auto-reparses the buffer and after that ECB is in correct state again. + (Klaus) + +*** Fixed formatting of "Parent" nodes in token buffer. (Jesper) + +** Byte compiling ECB either interactive with `ecb-byte-compile' or with the + supplied Makefile now checks also the versions of semantic and eieio. + (Klaus) + +** ECB now displays the section "First steps" of the online-manual after + activating first time. (Klaus) + +** Now the adviced versions of `delete-window' and `delete-other-windows' can + also handle the optional WINDOW argument of the original versions correctly + so the adviced versions now also work correct if called from program (Klaus). + +** New adviced window command: `delete-windows-on' now works correct with ECB. + See `ecb-advice-window-functions'. (Klaus) + +** In the ECB-directories buffer now F4 adds a new source-path instead of F1. + That is because F1 is such an important key in many OS and tools (e.g. opens + help in all windows-programs), so ECB should not hardly "rebind" it. (Klaus) + +** Enhancing the option 'ecb-window-sync': Now the synchronization can take + place for all buffers which have a relation to files AND directories, i.e. + now also for dired-buffers. But per default this is switched off, see the + doc-string. (Klaus) + +** Now the ECB online help is available in the standard Info-format and also in + HTML-format. With the new option 'ecb-show-help-format' you can choose which + format is used by the function 'ecb-show-help'. (Klaus) + +** New feature and command: ecb-download-ecb. With this function you can + download and install any arbitrary ECB-version from the ECB-website from + within Emacs. This is especially useful for upgrading to the latest + version. (Klaus) + +** New debug mode for ECB which prints some debug informations in the message + buffer for certain critical operations with semantic-overlays/extends. + New option 'ecb-debug-mode' (also available in the Help-menu of ECB). + (Klaus) + +** Some default key-bindings have changed; see `ecb-key-map'. (Klaus) + +** New feature: Possibility to define a sequence of layouts with new option + `ecb-toggle-layout-sequence' and toggle very fast between them via + `ecb-toggle-layout'. Read the online-help section "Simulation a speedbar + without an extra frame"! (Klaus). + +** Two new hooks: ecb-hide-ecb-windows-hook and ecb-show-ecb-windows-hook. Read + the documentation. (Klaus) + Suggested by Daniel Hegyi + +** Two new options: ecb-major-modes-activate and ecb-major-modes-deactivate. + Allow (de)activation of ECB on major-mode base. Instead of deactivation also + just hiding the ECB-windows is possible. Read the docstrings. (Klaus) + Suggested by Daniel Hegyi + +** Redefining of the option 'ecb-compile-window-temporally-enlarge': Now you + can specify that the compile-window is auto. enlarged after selecting it and + auto. shrinked after leaving it. Read the docstring! (Klaus) + Suggested by Daniel Hegyi + +** Much better and more powerful auto. upgrading-mechanism of incompatible or + renamed ECB-options to latest ECB-version. See the option + ecb-auto-compatibility-check! (Klaus) + +** New option ecb-tree-RET-selects-edit-window: Possibility not to select the + edit-window of hitting RET in a tree-buffer; see the doc-string. There is + also a new function ecb-toggle-RET-selects-edit-window which is bound to + [C-t] in each tree-buffer. (Kevin A. Burton, Klaus) + +** Better grouping of external methods, i.e. methods which are implemented + outside the class-definition, like in C++, CLOS and EIEIO. Now this is done + completely by semantic. (Klaus) + +** For application programmers using the tree-buffer library: + + The function tree-buffer-create has a new argument NODE-DATA-EQUAL-FN. See + the doc-string for a description (Klaus). + + For each tree-buffer a special user-data-storage (for any arbitrary data) + is created which can be accessed via `tree-buffer-set-data-store' and + `tree-buffer-get-data-store'. See the docstring of `tree-buffer-create'. + (Klaus) + + + +* Changes for ECB version 1.70 + +** New option ecb-bucket-token-display. See doc-string for details. (Klaus) + +** Reorganization of the faces used by ECB. The group 'ecb-face-options' + contains now all options which type is 'face (i.e. the defcustom's) and the + group 'ecb-faces' contains all face-definition (the defface's). In addition + it is now possible to change easily and fast the general face for ALL + ECB-tree-buffers (same for the highlighting face). See the docstring of the + new faces 'ecb-default-general-face' and 'ecb-default-highlight-face' for + further details. (Klaus). + +** Smarter incr. search in a tree-buffer with the [end]-key: If there are at + least two nodes with the same greatest common-prefix than every hit of + [end] jumps to the next node with this common prefix. (Klaus) + +** New feature ecb-auto-compatibility-check: ECB checks on startup if the + current value of an ECB-option OPT is not compatible with the type of OPT in + current ECB-release. This is done during activation. If there are + incompatible options ECB resets them to the default value of current ECB + release and displays after activation in a temporary window which options + have been reset, incl. their old-value (before the reset) and new-value + (after the reset). (Klaus) + +** New feature ecb-tree-navigation-by-arrow: Smarter navigation in the + tree-windows with left- and right-arrow key (Klaus). + Thanks for the suggestion and a first implementation to Geert Ribbers + ! + +** New feature 'ecb-type-token-display'. See the doc-string of this new option + for a description. (Klaus) + +** Now the option 'ecb-post-process-semantic-tokenlist' has per default an + entry for emacs-lisp-mode, so for eieio-code the methods (defmethod) of a + class are grouped with respect to the class they belong. The new default + value of this option does this for c++- and eieio-code. (Klaus) + +** Now in the ECB-tree-buffers RETURN works like the primary button (already in + previous versions) and C-RETURN works like the secondary button (new in + version 1.70). For an explanation of primary and secondary see the option + ecb-primary-secondary-mouse-buttons. (Klaus) + +** New feature: Now the token-display function can be defined separated for + each major-mode. Furthermore the token-display for C++ has enhanced, + especially for template-classes (but template displaying is first available + with semantic > version 14beta13!). + For this the option ecb-token-display-function has been completely rewritten + and is now incompatible with the old values before ECB 1.61. (Klaus) + +** Fixed a bug with mouse-avoidance-mode (only relevant for GNU Emacs 20.X) + Klaus. + +** New feature, ecb-select-edit-window-on-redraw. Mostly used if you are running + with ecb-redraw-layout-quickly and want to make sure you are always in the + edit window. (Kevin) + +** New feature, ecb-auto-activate. If non-nil we can start the ECB after Emacs + is started. See `ecb-auto-activate' for more information. (Kevin) + +** New package, ecb-cycle.el. Supports cycling through all known compilation + buffers. (Kevin) + + ecb-cycle-switch-to-compilation-buffer - switch to available compilation + buffers. + + ecb-cycle-through-compilation-buffers - cycle through all compilation + buffers. + +** Much better performance of the directory and file-browser in ECB, especially + for directories with a lot of entries (means ~ >1000, dependent on your + machine and the net-connection in case of network-drives). See also the new + feature: ecb-cache-directory-contents. (Klaus) + +** ecb-eshell now supports customization. (Kevin) + +** New feature: ecb-layout-always-operate-in-edit-window. Look at the + documentation. (Kevin & Klaus) + +** Fixed a bug in `ecb-toggle-ecb-windows'. For starters we weren't setting + `ecb-window-hidden' when we redraw the layout. This means that the ecb + windows could be hidden but never shown. + Other things: + + ecb-windows-hidden now has documentation + + we display status messages when we hide windows. (Kevin) + +** Fixed bug in `ecb-redraw-layout-quickly'. If for come reason any of the ECB + windows are not alive, we do not return with a hard error. Instead, we use + the scratch buffer. (Kevin) + +** New function ecb-toggle-enlarged-compilation-window allows users to expand and + then contract the compilation window with a new key binding C-c . / (Kevin) + +** new option ecb-add-path-for-not-matching-files. Look at the documentation + (Klaus). + + + +* Changes for ECB version 1.60 + +** ecb-highlight-token-header-after-jump is now a boolean; which face is used + for highlighting is defined in ecb-token-header-face. (Klaus) + +** New option 'ecb-post-process-semantic-tokenlist': Special post-processing of + the semantic tokenlist for certain major-modes. This is useful for + c++-mode. Now with the default value of this option all methods in a + c++-implementation-file (no class/method-declaration but only method + implementations) are grouped with respect to the class they belong. (Klaus) + +** Now also with C++ Sources the method- and variable-protection is displayed + correct in the ECB-method buffer (Klaus). + +** Fixed a bug which prevented ECB using the root path "/" on Unix-like systems + as a source-path. (Klaus) + +** If a file via the standard-mechanisms of Emacs (e.g. find-file) is opened, + then the auto. window sync (see `ecb-window-sync') has worked only correct + if the new file is located in any of the paths in `ecb-source-path'. Now ECB + adds the path of the new file at least temporally via `ecb-add-source-path' + to the list of paths in `ecb-source-path', so the window-sync works always + correct. ECB asks the user if the new path should saved also for future + sessions. (Klaus) + +** Added ecb-redraw-layout-hooks so that code can be executed after we redraw the + ecb layout. + +** New hook ecb-current-buffer-sync-hook allows developers to add code to be + evaluated after the ECB is synchronized with the current buffer. + +** Now all faces used by ECB for highlighting and displaying it´s own stuff are + customizable. See new group 'ecb-faces' (Klaus). + +** ECB is now fully prepared for Emacs 21. The new feature + `ecb-show-node-info-in-minibuffer' is implemented with the new 'help-echo + property of Emacs 21, therefore the ugly `track-mouse' mechanism is not + needed anymore with Emacs 21. (Klaus). + +** 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 (Klaus). + +** ecb-auto-expand-directory-tree now offers two options: + - best: Expand always the best matching source-path for a file + - first: Expand always the first matching source-path for a file (Klaus) + +** Fixed a bug in auto. expanding directories if a source-path has an alias. + (Klaus) + +** If mouse is moved over an alias in the directories buffer then the real path + is shown in the echo-area; see also 'ecb-show-node-info-in-minibuffer' + (Klaus). + +** If mouse is moved over an history-entry then the full path is shown in the + echo-area so you can distinct better between two entries with the same name + but with different paths; see also 'ecb-show-node-info-in-minibuffer' + (Klaus). + +** New option for the history: ecb-kill-buffer-clears-history defines if + `kill-buffer' should also remove the corresponding history entry. There are + several options (Klaus). + + + +* Changes for ECB version 1.52 + +** Added EIEIO requirement to ECB. + + + +* Changes for ECB version 1.51 + +** Now the names of all ECB buffers begin with a SPC per default. (Klaus) + +** ECB now can handle not only full but also partial buffer reparsing if done + by semantic and other tools (e.g. JDE >= 2.2.9). The method buffer will + always be uptodate if for a major-mode auto. reparsing after buffer changes + is enabled (the auto. buffer reparsing itself is not an ECB feature but must + be supplied by the major-mode, e.g. JDE). (Klaus) + +** Incremental node-search in the ECB-buffers now uses the value of + `case-fold-search'. (Klaus) + +** Complete new customization of the ECB-key-bindings. The option + `ecb-prefix-key' has been removed. There is one new option `ecb-key-map' + where you can customize all key-settings of ECB (including a common + prefixkey). (Klaus) + +** ecb-add-source-path and ecb-delete-source-path now ask if saving should be + done for future sessions (Klaus). + +** Added new navigator functionality. Makes it easy to go to the back and forward + in navigated tokens and buffers. See ecb-nav-goto-next and + ecb-nav-goto-previous. (Jesper) + +** Added an option to narrow the buffer to the token that is jumped to. See + ecb-token-jump-narrow. (Jesper) + +** Fixed a small bug that placed the window start at the beginning of the token + instead of the beginning of the token line. (Jesper) + + + +* Changes for ECB version 1.50 + +** Fixed a minor bug that occured when de-activating ECB under XEmacs. (Jesper) + +** ecb-layout-window-sizes variable is now an association list, which makes it + easier to add and remove layouts. (Jesper) + +** Added a new layout (nr. 12). Thanks to Nick Cross + for this layout. + +** Each source path can now have an alias that is displayed instead of the path + name in the directories buffer. (Jesper) + +** The history items can now use the buffer name instead of the file + name. Customizable with ecb-history-item-name. (Jesper) + +** When jumping to a token the window can be scrolled so that the token starts + at the top or center of the window. This behavior is customizable with + the variable ecb-scroll-window-after-jump. (Jesper) + +** Fixed a bug when retrieving parent names for a token. (Jesper) + +** Now the option 'ecb-prefix-key' is customizable so you can define another + prefix if there are conflicts with other minor-modes or packages (Klaus). + + + +* Changes for ECB version 1.41 + +** Fixed bug when clicking on token in the methods buffer in XEmacs. + + + +* Changes for ECB version 1.40 + +** Tree-incremental-search in the ecb-windows now ignores all non interesting + stuff: + + any leading spaces + + expand/collapse-buttons: [+] rsp. [-] + + protection-signs (+, -, #) in the method-window if uml-notation is used + + variables types or return-types in front of variable- or method-names. + + const specifier for variables + This makes incremental-searching in a tree-buffer much faster and easier. + (Klaus) + +** ECB now uses Semantic DB to find parents of types. (Jesper) + +** Long source paths in the directories buffer are now truncated at the + beginning. Customizable with variable ecb-truncate-long-names. (Jesper) + +** Tokens can now be sorted by access. (Jesper) + +** Added a function to semantic-clean-token-hooks that just updates the token + changed instead of re-building the entire token tree. (Jesper) + +** Implemented a token tree cache that stores recently opened buffers' token + trees. This makes the buffer switching much faster and also saves expanded + nodes and window positions. The cache is unlimited at the moment. (Jesper) + +** Added a speedbar-like layout nr. 11. This is very useful (like also layout + nr. 10) either for users with small screens or users which normally do not + need/want the ECB-windows but sometimes browsing/selecting + methods/variables. (Klaus) + +** Better extraction of tokens from current buffer. ECB now displays any token + type in any order. (Jesper) + +** ECB now uses Semantic to display tokens in the methods buffer. (Jesper) + +** Much saver ecb-redraw-layout: Now the layout can be restored ALWAYS + regardless what messy thing has been done before. (Klaus) + +** New advice for 'other-window-for-scrolling', so all scroll-functions for the + "other" window can also scroll the first edit-window if point stays in the + second one. (Klaus) + +** ecb-toggle-ecb-windows now preserves the split, the split-amount, the buffer + contents, the window starts and current point. (Klaus) + +** Some important changes in the ECB-layout concerning displaying compilation- + and temp-buffers. (Klaus): + +*** 'ecb-select-compile-window' has been gone. + +*** 'ecb-use-dedicated-windows' is not longer a user-customizable option but + it is always set to t, because this is essential for correct working of + the ecb-layout engine! + +*** 'ecb-compile-window-temporally-enlarge' is now a boolean option. + +*** Now ECB does all necessary that your edit-window of ECB seems to be a + normal Emacs frame, especially concerning displaying temp-buffers (like + help- and completion-buffers) and compilation-buffers. + +*** The variables 'compilation-window-height' and 'temp-buffer-shrink-to-fit' + (XEmacs) and 'temp-buffer-resize-mode' (GNU Emacs) are now fully supported + by ECB if no durable compilation-window is shown. + +** New function to toggle visibility of the ECB windows. Now it´s possible to + hide all ECB windows without deactivating ECB (see 'ecb-toggle-ecb-windows') + (Klaus). + +** ECB is now a global minor mode with it´s own menu "ECB" and it´s own key-map + with prefix "C-c .". New function to (de)activate/toggle ECB with + 'ecb-minor-mode'. (Klaus) + +** Fixed a bug in highlighting current token in the method-buffer when + font-lock-mode is nil for the source-buffer. (Klaus) + +** New option for highlighting the method-header in the edit-window after + clicking onto the method in the method-window (like Speedbar does). (Klaus) + +** Function for automatically submitting a problem report to the ECB mailing + list: ecb-submit-problem-report. (Klaus) + +** Now not only for method-highlighting an idle delay can be set but also for + synchronizing the ECB windows with current edit window (see option + ecb-window-sync and ecb-window-sync-delay; default is 0.25 sec delay) + (Klaus). + +** Smarter highlighting of current method (Klaus). + +** All tree-buffers now have as default-directory the current selected + directory in the directory buffer. So you can also open files with find-file + etc. from within the tree-buffers. (Klaus). + + + +* Changes for ECB version 1.32 + +** Nil parent bug fixed. (Jesper) + +** New advices for find-file and switch-to-buffer (Klaus). + +** Now possible to set an idle delay before the current method is highlighted; + useful for slow machines but prevents also "jumping backward/forward" during + scrolling within java-classes if point goes out of method-definition into + class-definition. Default is an idle time of 0.25 seconds. (Klaus). + + + +* Changes for ECB version 1.31 + +** Parents (extends and implements) of the classes in the current buffer is now + shown in the methods buffer. (Jesper). Possibility to define a regexp which + parents should not be shown. (Klaus). + +** Now displaying the complete node name in minibuffer with the track-mouse + mechanism works also with mouse-avoidance-mode on; the mouse-avoidance will + be deactivated as long ECB is activated and the node-name display-mechanism + is on. This refers only to GNU Emacs! (Klaus) + +** Fixed a bug in 'ecb-current-buffer-sync' and 'ecb-redraw-layout' (Klaus) + +** Fixed a bug in loading semantic 1.3.3 or semantic 1.4 (Klaus) + + + +* Changes for ECB version 1.30 + +** If not all ECB-tree-windows of current layout are visible at redraw-time + ('ecb-redraw-layout') then the redraw synchronizes the contents of the + tree-windows with the source displayed in current edit-window (Klaus). + +** Added a section "Tips and Tricks" to the ECB online-help. (Klaus) + +** Added a new layout Nr. 10 for very small screen resolutions where all + square-centimeters are needed for the editing itself. This layout only + displays a method-window and a edit-window. (Klaus). + +** The messages displayed after moving the mouse over a node in a tree-buffer + do not longer wasting the log, means they will not be logged (Klaus). + +** ECB now also works with semantic >= 1.4 (Klaus). + +** Now the ecb-compile-window-height is also preserved after displaying + temp-buffers (e.g. help-buffers after C-h f) - if you want this. See the + documentation of the option 'ecb-compile-window-temporally-enlarge'. (Klaus) + +** Added menu items for modification of the source paths in the directories + buffer. (Jesper) + +** Added buttons to directories buffer. (Jesper) + +** Mouse over files, methods etc. now work even if follow-mouse isn't + activated (Jesper). ECB adds a more intelligent mouse tracking mechanism, so + not only the mouse-over-node stuff of ECB works now very well and savely but + also follow-mouse itself works better and saver as without activated ECB. + (Klaus) + +** Popup menus now work in XEmacs. (Jesper) + +** You can now specify paths with env-vars like $HOME in the option + `ecb-source-path'. (Klaus) + +** The user must now confirm if he tries to delete the ECB frame. If he wants + to proceed then ECB will be first deactivated before deleting the frame. + This works for all ways to delete a frame (shortcut, window-manager-button, + ...). (Klaus) + +** ECB now optionally create its own frame when activated. See the new option + 'ecb-new-ecb-frame'. (Klaus) + +** Intelligent recentering of tree-buffers now completely implemented without + the function 'recenter'. This means no flickering and flashing the whole + frame anymore after each 'recenter'. Now the ECB display is stable like a + rock :-) (Klaus) + +** Mouse over directories now shows directory path. (Jesper) + +** Methods and variables with point are now highlighted. (Jesper) + +** ECB windows are now updated when saving new files and deleting files. (Jesper) + +** incremental-search in every tree-buffer for easier and faster selecting + nodes with the keyboard (see new option `ecb-tree-incremental-search' and + new function 'tree-buffer-incremental-node-search') for more details. + (Klaus) + +** ecb-redraw-layout now restores both edit window buffers and the edit window + start. (Jesper) + +** Spelling corrections. Thanks to Colin Marquardt + for spotting them. + +** Mode line prefixes can now be set individually for each ECB-buffer. There is + a default-prefix for each buffer but the user can also define a custom + prefix or no prefix at all. (Jesper/Klaus) + +** Fixed small bug in directory tree that caused directories to be sorted by + extension. (Jesper) + + + +* Changes for ECB version 1.20 + +** Now the ECB-buffers are intelligent in displaying nodes (Klaus): + + Expandable nodes: (e.g. a directory with it´s subdirectories). An + ECB-tree-window now tries always to make visible as much as possible of + the sub-nodes of a node if a node is expanded (e.g. by clicking onto it´s + expand-symbol). + + Other nodes: A ECB-tree-window is always best filled, means no empty lines + if there are enough lines to fill the whole window. + +** The source file is only parsed if the ECB methods window is visible + (Jesper). + +** The methods buffer now show fields of EIEIO classes. Only works with + semantic 1.4. Thanks to Eric M. Ludlam for + this patch. + +** Now all adviced functions behave only special in the ECB-frame. In each other + frame they behave exactly like the not adviced functions. (Klaus) + +** Fix "invalid method-buffer"-bug (Klaus, with a lot of help by Eric Ludlam + and David Ponce). + +** Source files can now be sorted by name, extension or not sorted at all + (Jesper). + +** Now you can precisely define by an exclude and include regexp which files + should be displayed by ECB. (Jesper). + +** Jumping to a method/variable from the ECB-method buffer now sets the mark so + the user can easily jump back (see `ecb-method-jump-sets-mark'). (Klaus) + +** Now you can define a primary and a secondary mouse-button for ECB. See the + new variable `ecb-primary-secondary-mouse-buttons'. + Note: The name of the option 'ecb-left-mouse-jump-destination' has been + changed to `ecb-primary-mouse-jump-destination'! + +** Now ECB is really ediff-friendly: During ediff is active the advices of ECB + are temporally deactivated! (Klaus) + +** Now all tree-buffers (ECB-buffers) are read-only (Klaus)! + +** Better implementation of advising the functions. Now all advice-able + functions are completely independent from each other (Klaus)! + +** Removes the redundant modeline info and shows important + information. + +** Added new option `ecb-advice-window-functions'. Enabling the intelligent + window functions via customize. No hook hacking necessary anymore! + Now the intelligent window functions are implemented by advicing (Klaus). + +** Better online help display (Klaus). + +** Added new option 'ecb-primary-mouse-jump-destination' (thanks to David Hay + for suggestion . + +** Adviced 'other-window' acts now exactly like the original but always related + to 'ecb-other-window-jump-behavior' (Klaus)! + +** Fixed bug with 'ecb-compile-window-height'. Now ECB has always the correct + compile-window height after compilation-output (compile, grep etc.) + +** New option 'ecb-compile-window-temporally-enlarge'. Allowing + Emacs-compilation to enlarge the ECB-compile-window temporally. + + + +* Changes for ECB version 1.10 + +** Automatic expansion of the directory tree. + +** Method parsing is now recursive, so that for example inner classes + in Java are shown in the methods buffer. + +** Variables are now shown in the methods buffer. + +** Selected files and directories now use the secondary-selection + face. Thanks to Kevin A. Burton for this + patch. + +** Fixed some issues with XEmacs. Thanks to Colin Marquardt + for this. + +** Fixed bug with truncating lines in tree-buffer.el. + +** The methods buffer can now be automatically updated when the source + file is saved. + +** Help text is available with "ecb-show-help". + +** Moving the mouse over a node shows the name in the + mini-buffer. Currently this only works when follow-mouse is + activated. + + + +* Changes for ECB version 1.0 + +** Changed name from JCB to ECB and prefix from "jde-jcb-" to "ecb-". + +** Works with semantic 1.3.1 and higher. + +** Fixed a couple of bugs when creating and deleting files. + +** Grouped customization variables. + +** Contributed by Klaus Berndl : + +*** A lot of intelligent ECB window-functions (e.g. ecb-delete-window) which + gives you the feeling as if the edit-window is the only window of the ECB + frame. + +*** New layout functionality. + +*** The history buffer can optionally be sorted and also cleared. + +*** The package expanded symbol can optionally be placed before the package name. + +*** Syntax highlighting of the methods buffer. + +*** Show argument names and return type in the methods buffer. + +*** History clear function: ecb-clear-history. + +*** Added pop-up menu to the history buffer. + +*** Fixed edit buffer sync bug. + + + +* Changes for ECB version 0.04 + +** Keyboard navigation in JCB buffers. Use Return to select and Tab to expand. + +** Tree view of packages. + +** Class files can be viewed in the packages buffer. + +** Better handling of mouse events. + +** Automatic update of the packages buffer. + +** Added pop-up menus to the packages and classes buffers. They are activated + with mouse button 3 (right button). + +** Added method sorting. Thanks to Brian Anderson + for this improvement. + + + +* Changes for ECB version 0.03 + +** Fixed naming of variables. + +** Fixed license and copyright comments. + +** Fixed class file regular expression bug. + Thanks to Jim Loverde for finding it. + +** Added three new layouts. + +** The JCB buffers can now be (almost) synchronized with the edit window. + +** When clicking on a class or method using mouse button 2, it will be loaded + into another window. A new customization variable was added for this. + +** Minor changes. Thanks to Jim for his suggestions. + +** Removed the "jde-jcb-window-skips-from-methods-buffer" and + "jde-jcb-window-skips-from-history-buffer" customization variables. + + + +* Changes for ECB version 0.02 + +** Changed prefix from "jcb-" to "jde-jcb-". This will cause JCB customization + variables to be saved in JDE project files. + +** Lists and parses non-Java file types. Currently the C and Lisp parsers from + semantic-ex.el are used. + +** History buffer implemented. + +** Layout function implement. Thanks to Jim Loverde for + helping out with this. + +** Packages matching a regular expression can be excluded from the packages + buffer. Thanks to Mark Gibson for this feature. + + + +* Changes for ECB version 0.01 + +** Initial version. + + + +Local variables: +mode: outline +paragraph-separate: "[ ]*$" +end: diff --git a/conf/emacs.d/ecb/README b/conf/emacs.d/ecb/README new file mode 100644 index 0000000..4737e4e --- /dev/null +++ b/conf/emacs.d/ecb/README @@ -0,0 +1,210 @@ +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. + diff --git a/conf/emacs.d/ecb/RELEASE_NOTES b/conf/emacs.d/ecb/RELEASE_NOTES new file mode 100644 index 0000000..691e327 --- /dev/null +++ b/conf/emacs.d/ecb/RELEASE_NOTES @@ -0,0 +1,288 @@ +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. + diff --git a/conf/emacs.d/ecb/TODO b/conf/emacs.d/ecb/TODO new file mode 100644 index 0000000..7fc9325 --- /dev/null +++ b/conf/emacs.d/ecb/TODO @@ -0,0 +1,34 @@ +- 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........ diff --git a/conf/emacs.d/ecb/TODO.org b/conf/emacs.d/ecb/TODO.org new file mode 100644 index 0000000..6955fb6 --- /dev/null +++ b/conf/emacs.d/ecb/TODO.org @@ -0,0 +1,7 @@ + +* 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 diff --git a/conf/emacs.d/ecb/ecb-advice-test.el b/conf/emacs.d/ecb/ecb-advice-test.el new file mode 100755 index 0000000..e056a62 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-advice-test.el @@ -0,0 +1,281 @@ +;;; 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 +;; Maintainer: Klaus Berndl +;; 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 + diff --git a/conf/emacs.d/ecb/ecb-analyse.el b/conf/emacs.d/ecb/ecb-analyse.el new file mode 100644 index 0000000..33bd98e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-analyse.el @@ -0,0 +1,714 @@ +;;; ecb-analyse.el --- ECB analysis display window + +;;; Copyright (C) 2004 - 2005 Klaus Berndl + +;; Author: Klaus Berndl +;; Maintainer: Klaus Berndl +;; 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 : 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 : 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 : 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 : 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 diff --git a/conf/emacs.d/ecb/ecb-autogen.el b/conf/emacs.d/ecb/ecb-autogen.el new file mode 100644 index 0000000..414486f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-autogen.el @@ -0,0 +1,160 @@ +;;; 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 +;; Klaus Berndl +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 diff --git a/conf/emacs.d/ecb/ecb-buffertab.el b/conf/emacs.d/ecb/ecb-buffertab.el new file mode 100644 index 0000000..a74ae9a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-buffertab.el @@ -0,0 +1,115 @@ +;;; 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 diff --git a/conf/emacs.d/ecb/ecb-cedet-wrapper.el b/conf/emacs.d/ecb/ecb-cedet-wrapper.el new file mode 100755 index 0000000..1e46e50 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-cedet-wrapper.el @@ -0,0 +1,368 @@ +;;; ecb-cedet-wrapper.el -- define wrappers for all cedet funcs/vars + +;; Copyright (C) 2000 - 2009 Klaus Berndl, +;; Free Software Foundation, Inc. + +;; Author: Klaus Berndl +;; Maintainer: Klaus Berndl +;; 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 : 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--"= 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 diff --git a/conf/emacs.d/ecb/ecb-common-browser.el b/conf/emacs.d/ecb/ecb-common-browser.el new file mode 100644 index 0000000..b986f6a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-common-browser.el @@ -0,0 +1,2178 @@ +;;; ecb-common-browser.el --- common browsing stuff for Emacs + +;; Copyright (C) 2000 - 2005 Jesper Nordenberg, +;; Klaus Berndl, +;; Kevin A. Burton, +;; Free Software Foundation, Inc. + +;; Author: Jesper Nordenberg +;; Klaus Berndl +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 PATICULAR 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$ + + +;;; 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-util) + +(require 'tree-buffer) +;; (require 'ecb-layout) ;; causes cyclic dependencies! +(require 'ecb-mode-line) +(require 'ecb-navigate) + +;; various loads +(require 'assoc) + +(eval-when-compile + ;; to avoid compiler grips + (require 'cl)) + +(silentcomp-defvar modeline-map) + +(defgroup ecb-tree-buffer nil + "General settings related to the tree-buffers of ECB." + :group 'ecb + :prefix "ecb-") + +(defcustom ecb-bucket-node-display '("" "" ecb-bucket-node-face) + "*How ECB displays bucket-nodes in a ECB tree-buffer. +Bucket-nodes have only one job: Nodes with similar properties will be dropped +into one bucket for such a common property and all these nodes will be added +as children to the bucket-node. Besides being expandable and collapsable a +bucket-node has no senseful action assigned. Examples for bucket-nodes are +\"[+] Variables\", \"[+] Dependencies\" etc. in the Methods-buffer or buckets +which combine filenames with same extension under a bucket-node with name this +extension. + +This option defines how bucket-node should be displayed. The name of the +bucket-node is computed by ECB but you can define a prefix, a suffix and a +special face for the bucket-node + +The default are empty prefix/suffix-strings and 'ecb-bucket-node-face'. But +an alternative can be for example '\(\"[\" \"]\" nil) which means no special +face and a display like \"[+] []\"." + :group 'ecb-tree-buffer + :set (function (lambda (symbol value) + (set symbol value) + (ecb-clear-tag-tree-cache))) + :type '(list (string :tag "Bucket-prefix" :value "[") + (string :tag "Bucket-suffix" :value "]") + (choice :tag "Bucket-face" :menu-tag "Bucket-face" + (const :tag "No special face" :value nil) + (face :tag "Face" :value ecb-bucket-node-face))) + :initialize 'custom-initialize-default) + +(defcustom ecb-use-speedbar-instead-native-tree-buffer nil + "*If true then uses speedbar for directories, sources or methods. +This means that speedbar is integrated in the ECB-frame and is displayed in +that window normally displaying the standard ECB-directories-buffer, +ECB-sources-buffer or ECB-methods-buffer. + +This option takes effect in all layouts which contain either a directory +window, a sources window or a method window. + +This option can have four valid values: +- nil: Do not use speedbar \(default) +- dir: Use speedbar instead of the standard directories-buffer +- source: Use speedbar instead of the standard sources-buffer +- method: Use speedbar instead of the standard methods-buffer + +Note: For directories and sources a similar effect and usability is available +by setting this option to nil \(or 'method) and setting +`ecb-show-sources-in-directories-buffer' to not nil, because this combination +displays also directories and sources in one window. + +`ecb-use-speedbar-instead-native-tree-buffer' is for people who like the +speedbar way handling directories and source-files or methods and want it in +conjunction with ECB." + :group 'ecb-tree-buffer + :group 'ecb-directories + :group 'ecb-sources + :group 'ecb-methods + :type '(radio (const :tag "Do not use speedbar" :value nil) + (const :tag "For directories" :value dir) + (const :tag "For sources" :value source) + (const :tag "For methods" :value method)) + :initialize 'custom-initialize-default + :set (function (lambda (sym val) + (set sym val) + (if (and (boundp 'ecb-minor-mode) ecb-minor-mode) + (ecb-redraw-layout-full))))) + +(defvar ecb-tree-do-not-leave-window-after-select--internal nil + "Only set by customizing `ecb-tree-do-not-leave-window-after-select' or +calling `ecb-toggle-do-not-leave-window-after-select'! Do not set this +variable directly, it is only for internal uses!") + +(defcustom ecb-tree-do-not-leave-window-after-select nil + "*Tree-buffers which stay selected after a key- or mouse-selection. +If a buffer \(either its name or the variable-symbol which holds the name) is +contained in this list then selecting a tree-node either by RET or by a +mouse-click doesn't leave that tree-buffer after the node-selection but +performes only the appropriate action \(opening a new source, selecting a +method etc.) but point stays in the tree-buffer. In tree-buffers not contained +in this option normaly a node-selection selects as \"last\" action the right +edit-window or maximizes the next senseful tree-buffer in case of a currently +maximized tree-buffer \(see `ecb-maximize-next-after-maximized-select'). + +The buffer-name can either be defined as plain string or with a symbol which +contains the buffer-name as value. The latter one is recommended for the +builtin ECB-tree-buffers because then simply the related option-symbol can be +used. + +A special remark for the `ecb-directories-buffer-name': Of course here the +value of this option is only relevant if the name of the current layout is +contained in `ecb-show-sources-in-directories-buffer' or if the value of +`ecb-show-sources-in-directories-buffer' is 'always and the clicked ot hitted +node represents a sourcefile \(otherwise this would not make any sense)! + +The setting in this option is only the default for each tree-buffer. With the +command `ecb-toggle-do-not-leave-window-after-select' the behavior of a +node-selection can be changed fast and easy in a tree-buffer without +customizing this option, but of course not for future Emacs sessions!" + :group 'ecb-tree-buffer + :set (function (lambda (sym val) + (set sym val) + (setq ecb-tree-do-not-leave-window-after-select--internal + (ecb-copy-list val)))) + :type '(repeat (choice :menu-tag "Buffer-name" + (string :tag "Buffer-name as string") + (symbol :tag "Symbol holding buffer-name")))) + +(defcustom ecb-tree-indent 4 + "*Indent size for tree buffer. +If you change this during ECB is activated you must deactivate and activate +ECB again to take effect." + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type 'integer) + +(defcustom ecb-tree-expand-symbol-before t + "*Show the expand symbol before the items in a tree. +When the expand-symbol is located before the items then the tree looks like: + +\[-] ECB + \[+] code-save + \[-] ecb-images + \[-] directories + +When located after then the tree looks like: + +ECB \[-] + code-save \[+] + ecb-images \[-] + directories \[-] + +The after-example above use a value of 2 for `ecb-tree-indent' whereas the +before-example uses a value of 4. + +It is recommended to display the expand-symbol before because otherwise it +could be that with a deep nested item-structure with and/or with long +item-names \(e.g. a deep directory-structure with some long +subdirectory-names) the expand-symbol is not visible in the tree-buffer and +the tree-buffer has to be horizontal scrolled to expand an item." + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type 'boolean) + +;; we can savely set here 'image as default because the tree-buffer-lib checks +;; itslef if image-support is possible and switches back to 'ascii-style if not. +(defcustom ecb-tree-buffer-style 'image + "*The style of the tree-buffers. +There are three different styles available: + +Image-style \(value 'image): +Very nice and modern - just try it. For this style the options +`ecb-tree-indent' and `ecb-tree-expand-symbol-before' have no effect! +The value 'image means use image-style if images can be displayed with current +Emacs-setup \(otherwise auto. 'ascii-style is used). +Note: GNU Emacs <= 21.3.X for Windows does not support image-display so ECB +uses always 'ascii-guides even when here 'image is set! + +Ascii-style with guide-lines \(value 'ascii-guides): +\[-] ECB + | \[+] code-save + `- \[-] ecb-images + | \[-] directories + | | \[-] height-15 + | | | * close.xpm + | | | * empty.xpm + | | | * leaf.xpm + | | `- * open.xpm + | | \[+] height-17 + | | \[+] height-19 + | `- \[+] height-21 + | \[x] history + | \[x] methods + `- \[x] sources + +Ascii-style without guide-lines \(value 'ascii-no-guides) - this is the style +used by ECB <= 1.96: +\[-] ECB + \[+] code-save + \[-] ecb-images + \[-] directories + \[-] height-15 + * close.xpm + * empty.xpm + * leaf.xpm + * open.xpm + \[+] height-17 + \[+] height-19 + \[+] height-21 + \[x] history + \[x] methods + \[x] sources + +With both ascii-styles the tree-layout can be affected with the options +`ecb-tree-indent' and `ecb-tree-expand-symbol-before'." + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type '(radio (const :tag "Images-style" :value image) + (const :tag "Ascii-style with guide-lines" :value ascii-guides) + (const :tag "Ascii-style w/o guide-lines" :value ascii-no-guides))) + +;; TODO: Klaus Berndl : add here the analyse buffer if +;; additonal images are necessary - but currently i don't think we need +;; special images for this analyse-stuff. +(defcustom ecb-tree-image-icons-directories + (let ((base (concat (if ecb-regular-xemacs-package-p + (format "%s" (locate-data-directory "ecb")) + ecb-ecb-dir) + "ecb-images/"))) + (cons (concat base "default/height-17") + (mapcar (function (lambda (i) + (cons (car i) (concat base (cdr i))))) + '((ecb-directories-buffer-name . "directories/height-17") + (ecb-sources-buffer-name . "sources/height-14_to_21") + (ecb-methods-buffer-name . "methods/height-14_to_21"))))) + "*Directories where the images for the tree-buffer can be found. +This is a cons cell where: + +car: Default directory where the default images for the tree-buffer can be +found. It should contain an image for every name of +`tree-buffer-tree-image-names'. The name of an image-file must be: +\"ecb-.\". + +cdr: This is a list where each element is a cons again with: car is the buffer +name of the tree-buffer for which a special image-path should be used. The +buffer-name can either be defined as plain string or with a symbol which +contains the buffer-name as value. The latter one is recommended for the +builtin ECB-tree-buffers because then simply the related option-symbol can be +used \(e.g. the symbol `ecb-directories-buffer-name'). The cdr is the the +full-path of an additional image-directorie which is searched first for images +needed for the related tree-buffer. If the image can not be found in this +directory then the default-directory \(see above) is searched. If the +image can't even be found there the related ascii-symbol is used - which is +defined in `tree-buffer-tree-image-names'. If a tree-buffer is not contained +in this list then there is no additional special image-directory for it. + +ECB comes with predefined images in several different heights - so for the +most senseful font-heights of a tree-buffer a fitting image-size should be +available. The images reside either in the subdirectory \"ecb-images\" of the +ECB-installation or - if ECB is installed as regular XEmacs-package - in the +ECB-etc data-directory \(the directory returned by \(locate-data-directory +\"ecb\")." + :group 'ecb-tree-buffer + :type '(cons (directory :tag "Full default image-path") + (repeat (cons (choice :menu-tag "Buffer-name" + (string :tag "Buffer-name as string") + (symbol :tag "Symbol holding + buffer-name")) + (directory :tag "Full image-path for this tree-buffer"))))) + +;; TODO: Klaus Berndl : rename this to ecb-truncate-lines. +(defcustom ecb-tree-truncate-lines '(ecb-directories-buffer-name + ecb-sources-buffer-name + ecb-methods-buffer-name + ecb-history-buffer-name + ecb-analyse-buffer-name) + "*Truncate lines in ECB buffers. +If a buffer \(either its name or the variable-symbol which holds the name) is +contained in this list then line-truncation is switched on for this buffer +otherwise it is off. + +The buffer-name can either be defined as plain string or with a symbol which +contains the buffer-name as value. The latter one is recommended to switch on +line-truncation for one of the builtin ECB-tree-buffers because then simply +the related option-symbol can be used. To truncate lines in the builtin +directories tree-buffer just add the symbol `ecb-directories-buffer-name' to +this option. + +If you change this during ECB is activated you must deactivate and activate +ECB again to take effect." + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type '(repeat (choice :menu-tag "Buffer-name" + (string :tag "Buffer-name as string") + (symbol :tag "Symbol holding buffer-name")))) + +(defcustom ecb-tree-easy-hor-scroll 5 + "*Scroll step for easy hor. scrolling via mouse-click in tree-buffers. +XEmacs has horizontal scroll-bars so invisible parts beyond the right +window-border of a tree-buffer can always made visible very easy. + +GNU Emacs does not have hor. scroll-bars so especially with the mouse it is +quite impossible to scroll smoothly right and left. The functions +`scroll-left' and `scroll-right' can be annoying and are also not bound to +mouse-buttons. + +If this option is a positive integer S then in all ECB-tree-buffers the keys +\[M-mouse-1] and \[M-mouse-3] are bound to scrolling left rsp. right with +scroll-step S - clicking with mouse-1 or mouse-2 onto the edge of the modeline +has the same effect, i.e. if you click with mouse-1 onto the left \(rsp. +right) edge of the modeline you will scroll left \(rsp. right). Additionally +\[C-M-mouse-1] and \[C-M-mouse-3] are bound to scrolling left rsp. right with +scroll-step `window-width' - 2. Default is a scroll-step of 5. If the value is +nil then no keys for horizontal scrolling are bound." + :group 'ecb-tree-buffer + :type '(radio :value 5 + (const :tag "No hor. mouse scrolling" :value nil) + (integer :tag "Scroll step"))) + + +(defcustom ecb-tree-make-parent-node-sticky t + "*Make the parent-node sticky in the headerline of the tree-buffer. + +If not nil then the first line of the tree-buffer is used as header-line which +is used to display the next unvisible parent of the first visible node as +sticky, so always the parent of a node is visible and clickable. If a node has +no parent then just the next node above is displayed in the header-line. The +node displayed in the header-line is exactly in the same manner clickable as +all other nodes. + +See also `ecb-tree-stickynode-indent-string'. + +This feature is only available with Gnu Emacs, not with XEmacs." + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type 'boolean) + +(defcustom ecb-tree-stickynode-indent-string (tree-buffer-sticky-default-indent-string) + "*String used to indent the stickynode. +This string is used to match the space used by scrollbars and +fringe so it does not appear that the node-name is moving left/right +when it lands in the sticky line. + +Normally the needed value is computed automatically by ECB. But if the result +is not matching this option allows to customize the indent-string. +The default value is computed by the function +`tree-buffer-sticky-default-indent-string', so you can change the needed value +with that starting-point. + +Changing this option takes only effect after restarting Emacs!" + :group 'ecb-tree-buffer + :type 'string) + + +;; TODO: Klaus Berndl : maybe we should change this to a +;; type analogous to ecb-tree-truncate-lines +(defcustom ecb-truncate-long-names t + "*Truncate long names that don't fit in the width of the ECB windows. +If you change this during ECB is activated you must deactivate and activate +ECB again to take effect." + :group 'ecb-tree-buffer + :type 'boolean) + +;; TODO: Klaus Berndl : maybe we should change this to a +;; type analogous to ecb-tree-truncate-lines +(defcustom ecb-tree-incremental-search 'prefix + "*Enable incremental search in the ECB-tree-buffers. +For a detailed explanation see the online help section \"Working with the +keyboard in the ECB buffers\". If you change this during ECB is activated you +must deactivate and activate ECB again to take effect." + :group 'ecb-tree-buffer + :type '(radio (const :tag "Match only prefix" + :value prefix) + (const :tag "Match every substring" + :value substring) + (const :tag "No incremental search" + :value nil))) + +(defcustom ecb-tree-navigation-by-arrow t + "*Enable smart navigation in the tree-windows by horizontal arrow-keys. +If not nil then the left- and right-arrow keys work in the ECB tree-window in +the following smart way if onto an expandable node: ++ Left-arrow: If node is expanded then it will be collapsed otherwise point + jumps to the next \"higher\" node in the hierarchical tree \(higher means + the next higher tree-level or - if no higher level available - the next + higher node on the same level). ++ Right-arrow: If node is not expanded then it will be expanded. +Onto a not expandable node the horizontal arrow-keys go one character in the +senseful correct direction. + +If this option is changed the new value takes first effect after deactivating +ECB and then activating it again!" + :group 'ecb-tree-buffer + :type 'boolean) + +(defun ecb-show-any-node-info-by-mouse-moving-p () + "Return not nil if for at least one tree-buffer showing node info only by +moving the mouse over a node is activated. See +`ecb-directories-show-node-info' etc...." + (let ((when-list (mapcar (function (lambda (elem) + (car (symbol-value elem)))) + '(ecb-directories-show-node-info + ecb-sources-show-node-info + ecb-methods-show-node-info + ecb-history-show-node-info + ecb-analyse-show-node-info + )))) + (or (member 'if-too-long when-list) + (member 'always when-list)))) + +(defcustom ecb-primary-secondary-mouse-buttons 'mouse-2--C-mouse-2 + "*Primary- and secondary mouse button for using the ECB-buffers. +A click with the primary button causes the main effect in each ECB-buffer: +- ECB Directories: Expanding/collapsing nodes and displaying files in the ECB + Sources buffer. +- ECB sources/history: Opening the file in that edit-window specified by the + option `ecb-mouse-click-destination'. +- ECB Methods: Jumping to the method in that edit-window specified by the + option `ecb-mouse-click-destination'. + +A click with the primary mouse-button while the SHIFT-key is pressed called +the POWER-click and does the following \(depending on the ECB-buffer where the +POWER-click occurs): ++ Directory-buffer: Refreshing the directory-contents-cache \(see + `ecb-cache-directory-contents'). ++ Sources- and History-buffer: Only displaying the source-contents in the + method-buffer but not displaying the source-file in the edit-window. ++ Methods-buffer: Narrowing to the clicked method/variable/ect... \(see + `ecb-tag-visit-post-actions'). This works only for sources supported by + semantic! + +In addition always the whole node-name is displayed in the minibuffer after a +POWER-click \(for this see `ecb-directories-show-node-info' etc...). + +The secondary mouse-button is for opening \(jumping to) the file in another +edit-window \(see the documentation `ecb-mouse-click-destination'). + +The following combinations are possible: +- primary: mouse-2, secondary: C-mouse-2 \(means mouse-2 while CTRL-key is + pressed). This is the default setting. +- primary: mouse-1, secondary: C-mouse-1 +- primary: mouse-1, secondary: mouse-2 + +Note: If the tree-buffers are used with the keyboard instead with the mouse +then [RET] is interpreted as primary mouse-button and [C-RET] as secondary +mouse-button! + +If you change this during ECB is activated you must deactivate and activate +ECB again to take effect!" + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type '(radio (const :tag "Primary: mouse-2, secondary: Ctrl-mouse-2" + :value mouse-2--C-mouse-2) + (const :tag "Primary: mouse-1, secondary: Ctrl-mouse-1" + :value mouse-1--C-mouse-1) + (const :tag "Primary: mouse-1, secondary: mouse-2" + :value mouse-1--mouse-2))) + +(defcustom ecb-tree-mouse-action-trigger 'button-release + "*When the tree-buffer mouse-action should be triggered. +This option determines the moment a mouse-action in a tree-buffer is +triggered. This can be either direct after pressing a mouse-button \(value +'button-press) or not until releasing the mouse-button \(value: +'button-release). + +If you change this during ECB is activated you must deactivate and activate +ECB again to take effect!" + :group 'ecb-tree-buffer + :type '(radio (const :tag "After button release" :value button-release) + (const :tag "After button press" :value button-press))) + +(defcustom ecb-mouse-click-destination 'last-point + "*Destination of a mouse-button click. +Defines in which edit-window \(if splitted) ECB does the \"right\" action +\(opening a source, jumping to a method/variable etc.) after clicking with a +mouse-button \(see `ecb-primary-secondary-mouse-buttons') onto a node. There +are two possible choices: +- left-top: Does the \"right\" action always in the left/topmost edit-window. +- last-point: Does the \"right\" action always in that edit-window which had + the point before. +This is if the user has clicked either with the primary mouse-button or +has activated a popup-menu in the tree-buffer. + +A click with the secondary mouse-button \(see again +`ecb-primary-secondary-mouse-buttons') does the \"right\" action always in +another edit-window related to the setting in this option: If there are two +edit-windows then the \"other\" edit-window is used and for more than 2 +edit-windows the \"next\" edit-window is used \(whereas the next edit-window +of the last edit-window is the first edit-window). + +If the edit-window is not splitted this setting has no effect. + +Note: If the tree-buffers are used with the keyboard instead with the mouse +then this option takes effect too because [RET] is interpreted as primary +mouse-button and [C-RET] as secondary mouse-button!" + :group 'ecb-tree-buffer + :group 'ecb-most-important + :type '(radio (const :tag "Left/topmost edit-window" + :value left-top) + (const :tag "Last edit-window with point" + :value last-point))) + + +(defcustom ecb-common-tree-buffer-after-create-hook nil + "*Local hook running at the end of each tree-buffer creation. +Every function of this hook is called once without arguments direct after +creating a tree-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 for EVERY tree-buffer. + +The following keys must not be rebind in all tree-buffers: +- and all combinations with and +- +- `C-t'" + :group 'ecb-tree-buffer + :type 'hook) + +(defcustom ecb-basic-buffer-sync '(Info-mode dired-mode) + "*Synchronize the basic ECB-buffers automatically with current edit buffer. + +The basic ECB-buffers are the buffers for directories, sources, methods and +history. + +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. + +But in every case the synchronization takes only place if the current-buffer +in the edit-window has a relation to files or directories. Examples for the +former one are all programming-language-modes, `Info-mode' too, an example for +the latter one is `dired-mode'. For all major-modes related to +non-file/directory-buffers like `help-mode', `customize-mode' and others never +an autom. synchronization will be done! + +It's recommended to exclude at least `Info-mode' because it makes no sense to +synchronize the ECB-windows after calling the Info help. Per default also +`dired-mode' is excluded but it can also making sense to synchronize the +ECB-directories/sources windows with the current directory in the +dired-buffer. + +IMPORTANT NOTE: Every time the synchronization is done the hook +`ecb-basic-buffer-sync-hook' is evaluated." + :group 'ecb-tree-buffer + :type '(radio :tag "Synchronize basic ECB buffers" + (const :tag "Always" :value always) + (const :tag "Never" nil) + (repeat :tag "Not with these modes" + (symbol :tag "mode")))) + +(defcustom ecb-basic-buffer-sync-delay 0.25 + "*Time Emacs must be idle before the special ECB-buffers are 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." + :group 'ecb-tree-buffer + :type '(radio (const :tag "No synchronizing delay" + :value nil) + (number :tag "Idle time before synchronizing" + :value 0.25)) + :set (function (lambda (symbol value) + (set symbol value) + (if ecb-minor-mode + (ecb-activate-ecb-autocontrol-function + value 'ecb-basic-buffer-sync)))) + :initialize 'custom-initialize-default) + +(defcustom ecb-basic-buffer-sync-hook nil + "*Hook run at the end of `ecb-basic-buffer-sync'. +See documentation of `ecb-basic-buffer-sync' for conditions when +synchronization takes place and so in turn these hooks are evaluated. + +Precondition for such a hook: +Current buffer is the buffer of the currently selected edit-window. + +Postcondition for such a hook: +Point must stay in the same edit-window as before evaluating the hook. + +Important note: If the option `ecb-basic-buffer-sync' is not nil +the function `ecb-basic-buffer-sync' is running either every time +Emacs is idle or even after every command \(see +`ecb-basic-buffer-sync-delay'). So 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! + +It is strongly recommended that each function added to this hook uses the +macro `ecb-do-if-buffer-visible-in-ecb-frame' at beginning! See +`ecb-speedbar-buffer-sync' and `ecb-eshell-buffer-sync' for +examples how to use this macro!" + :group 'ecb-tree-buffer + :type 'hook) + +;;==================================================== +;; Internals +;;==================================================== + +;;; ----- advice stuff ------------------------------------- + +(defvar ecb-adviced-function-sets nil + "A list of adviced-function sets defined with `defecb-advice-set'. +Each element is a cons-cell where car is the advice-set-var and cdr is an +indicator if the caller of `ecb-with-original-adviced-function-set' is the +outmost caller. + +DO NOT CHANGE THIS!") + +(defvar ecb-adviced-permanent-function-sets nil + "A list of symbols, each of them an advice-set which should be permanent. +Permanent means this advice set will not be disabled during deactivation of +ECB. This variable is only set by `defecb-advice-set'. + +DO NOT CHANGE THIS!") + +(defvar ecb-adviced-functions nil + "A list of all advices defined with `defecb-advice'. +This list is the set union of the values of all function-sets of +`ecb-adviced-function-sets'. + +DO NOT CHANGE THIS!") + +(defvar ecb-advices-debug-error nil + "It not nil then each advice of ECB reports when it's en/disabled or called.") + +(defun ecb-advices-debug-error (advice class action &rest args) + "Run ARGS through `format' and write it to the *Messages*-buffer. +ADVICE is the adviced-function-symbol, CLASS is the advice-class \(after, +around or before) and ACTION is one of the symbols 'calling, 'enabling, +'disabling or 'reporting. + +This will build up a message string like: +ECB : debug of '' advice ADVICE: ARGS. +If ARGS is nil then only the message above is reported." + (when ecb-advices-debug-error + (message (concat (format "ECB %s: debug %s of '%s' advice %s " + ecb-version + action + class + advice) + (if args + (apply 'format args)))))) + +(defmacro defecb-advice-set (advice-set docstring &optional permanent) + "Defines an advice-set for ECB. +This defines a variable which will contain adviced functions defined by +`defecb-advice-set'. This is a set of advices which can be enabled or disabled +\"en block\" which must be done either by `ecb-enable-advices', +`ecb-disable-advices' or `ecb-with-original-adviced-function-set'. + +Before defining a new advice-set it's recommended to take a look at the value +of `ecb-adviced-function-sets' if there is already a suitable advice-set. + +IMPORTANT: Each advice in ECB must be defined by `defecb-advice' and must +belong to an advice-set previously defined by `defecb-advice-set'! + +All advice-sets of ECB will be automatically\(!) disabled at load-time of the +ecb-library and at deactivation-time of ECB. But: Enabling of a certain +advice-set must be done appropriately. + +If optional argument PERMANENT is t then this advice-set will NOT be disabled +at deactivation-time of ECB! Calling `ecb-disable-advices' for an advice set +defined with permanent is t will take no effect unless the optional argument +FORCE-PERMANENT of this function is set to not nil. +PERMANENT can also be a function which will be called by `ecb-disable-advices' +for this advice set \(the function gets one argument: the symbol of the +advice-set) and have to return not nil if the advice-set should not be disable +by `ecb-disable-advices' unless the FORCE-PERMANENT of this function is set to +not nil. + +Example: + +\(defecb-advice-set ecb-always-disabled-advices + \"These advices are always disabled.\")" + `(eval-and-compile + (add-to-list 'ecb-adviced-function-sets (cons (quote ,advice-set), nil)) + ,(if permanent + `(add-to-list 'ecb-adviced-permanent-function-sets + (cons (quote ,advice-set) ,permanent))) + (defvar ,advice-set nil ,docstring))) + +(put 'defecb-advice-set 'lisp-indent-function 1) + +(defmacro defecb-advice (adviced-function advice-class advice-set advice-docstring &rest body) + "Defines an advice for ADVICED-FUNCTION with ADVICE-CLASS for ADVICE-SET. +ADVICED-FUNCTION must be an advicable object \(e.g. a function, a subr +etc...). ADVICE-CLASS must be one of around, after or before. ADVICE-SET must +ba an advice-set previously defined by `defecb-advice-set'. ADVICE-DOCSTRING +ist the docstring for the advice. BODY is the program-code for the advice as +it would be written with `defadvice'. + +Do not quote ADVICED-FUNCTION, ADVICE-CLASS and ADVICE-SET. + +Example: + +\(defecb-advice delete-frame around ecb-layout-basic-adviced-functions + \"If FRAME is equal to the ECB frame then...\" + \(let \(\(frame \(or \(ad-get-arg 0) \(selected-frame)))) + \(if \(and ecb-minor-mode + \(equal frame ecb-frame)) + \(when \(ecb-confirm \"Attempt to delete the ECB-frame....Proceed? \") + \(ecb-deactivate-internal) + ad-do-it) + ad-do-it)))" + `(progn + (if (assoc (quote ,advice-set) ecb-adviced-function-sets) + (add-to-list (quote ,advice-set) + (cons (quote ,adviced-function) (quote ,advice-class))) + (error "The advice-set %s does not exist!" + (symbol-name (quote ,advice-set)))) + (if (not (member (quote ,advice-class) + '(around after before))) + (error "The advice-class %s is not allowed - only around, after and before!" + (symbol-name (quote ,advice-class)))) + (add-to-list 'ecb-adviced-functions (cons (quote ,adviced-function) (quote ,advice-class))) + (eval-and-compile + (defadvice ,adviced-function (,advice-class ecb) + ,advice-docstring + (ecb-advices-debug-error (quote ,adviced-function) + (quote ,advice-class) + 'calling) + ,@body)))) + +(put 'defecb-advice 'lisp-indent-function 3) + +;; (insert (pp (macroexpand '(defecb-advice insert around +;; ecb-always-disabled-advices "doc" +;; (message "test"))))) + + +(defun ecb-enable-ecb-advice (function-symbol advice-class arg) + "If ARG is greater or equal zero then enable the adviced version of +FUNCTION-SYMBOL. Otherwise disable the adviced version. The advice must be +defined with class ADVICE-CLASS by `defecb-advice'. + +IMPORTANT: Do not use the function directly. Always use `ecb-enable-advices', +`ecb-disable-advices' or `ecb-with-original-adviced-function-set'!." + (if (< arg 0) + (progn + (ad-disable-advice function-symbol advice-class 'ecb) + (ad-activate function-symbol) + (ecb-advices-debug-error function-symbol advice-class 'disabling)) + (ad-enable-advice function-symbol advice-class 'ecb) + (ad-activate function-symbol) + (ecb-advices-debug-error function-symbol advice-class 'enabling))) + + +(defun ecb-enable-advices (adviced-function-set-var) + "Enable all advices of ADVICED-FUNCTION-SET-VAR, which must be defined by +`defecb-advice-set'." + (if ecb-advices-debug-error + (message "ECB %s: debug enabling the advice-set: %s" + ecb-version adviced-function-set-var)) + (if (eq adviced-function-set-var 'ecb-always-disabled-advices) + (error "The advice-set ecb-always-disabled-advices must not be enabled!")) + (if (not (assq adviced-function-set-var ecb-adviced-function-sets)) + (error "The adviced function set %s is not defined by defecb-advice-set!" + (symbol-name adviced-function-set-var))) + (dolist (elem (symbol-value adviced-function-set-var)) + (ecb-enable-ecb-advice (car elem) (cdr elem) 1))) + +(defun ecb-disable-advices (adviced-function-set-var &optional force-permanent) + "Disable all advices of ADVICED-FUNCTION-SET-VAR, which must be defined by +`defecb-advice-set' + +This function tests if ADVICED-FUNCTION-SET-VAR has been defined as permanent +by `defecb-advice-set'. + +Calling `ecb-disable-advices' for an advice set defined with +permanent t will take no effect unless the optional argument +FORCE-PERMANENT is set to not nil. If the advice set is defined as permanent +with a permanent-disable-function then this function is called with +ADVICED-FUNCTION-SET-VAR as argument; if this function returns not nil then +the adviced will be treated as permanent and will not being disabled. + +If optional FORCE-PERMANENT is not nil then ADVICED-FUNCTION-SET-VAR will +be disabled regardless if permanent or not." + (if ecb-advices-debug-error + (message "ECB %s: debug disabling the advice-set: %s" + ecb-version adviced-function-set-var)) + (if (not (assq adviced-function-set-var ecb-adviced-function-sets)) + (error "The adviced function set %s is not defined by defecb-advice-set!" + (symbol-name adviced-function-set-var))) + (let ((permanent (if force-permanent + nil + (cdr (assq adviced-function-set-var + ecb-adviced-permanent-function-sets))))) + (unless (or (eq permanent t) + (and (functionp permanent) + (funcall permanent adviced-function-set-var))) + (dolist (elem (symbol-value adviced-function-set-var)) + (ecb-enable-ecb-advice (car elem) (cdr elem) -1))))) + +;; for the outmost-caller-stuff see ecb-with-original-adviced-function-set +(defmacro ecb-with-ecb-advice (function-symbol advice-class &rest body) + "Evaluates BODY with the adviced version of FUNCTION-SYMBOL. The advice must +be defined by `defecb-advice' with class ADVICE-CLASS for the advice-set +`ecb-always-disabled-advices'. Otherwise an error occurs. The advice is only +active during BODY. + +BODY is protected by `unwind-protect' so in each case the advice +will be disabled after finishing this macro unless it is nested +within a call to this macro for the *same* FUNCTION-SYMBOL and +ADVICE-CLASS-combination! This means that the usage of this macro +is save for arbitrary nested calls, so full BODY is guaranted +being evaluated with enabled ADVICE-CLASS advice for +FUNCTION-SYMBOL. + +Returns the value of BODY. + +Example where this macro is used for `walk-windows' within another advice: + +\(ecb-with-ecb-advice 'walk-windows 'around + ad-do-it)" + (let ((outmost-caller-p (make-symbol "outmost-caller-p"))) + ;; we have to check if we are the outmost-caller of this macro for this + ;; adviced function AND the advice-class! different advice-classes for the + ;; same function have to be treated differently!! + `(let ((,outmost-caller-p (unless (member ,advice-class (get ,function-symbol 'ecb-with-ecb-advice)) + (put ,function-symbol 'ecb-with-ecb-advice + (append (list ,advice-class) (get ,function-symbol 'ecb-with-ecb-advice))) + ,advice-class))) + (if (not (member (cons ,function-symbol ,advice-class) + ecb-always-disabled-advices)) + (error "Advice for %s with class %s not registered in ecb-always-disabled-advices!" + (symbol-name ,function-symbol) + (symbol-name ,advice-class))) + (if ecb-advices-debug-error + (message "ECB %s: debug with always disabled ecb-advice: %s %s - ENTRY" + ecb-version ,advice-class ,function-symbol)) + (unwind-protect + (progn + (when ,outmost-caller-p + (ecb-enable-ecb-advice ,function-symbol ,advice-class 1)) + ,@body) + (when ,outmost-caller-p + ;; Only if we are the outmost caller we are allowed to disable the + ;; enabled advice + (put ,function-symbol 'ecb-with-ecb-advice + (delete ,advice-class (get ,function-symbol 'ecb-with-ecb-advice))) + (ecb-enable-ecb-advice ,function-symbol ,advice-class -1)) + (if ecb-advices-debug-error + (message "ECB %s: debug with always disabled ecb-advice: %s %s - EXIT" + ecb-version ,advice-class ,function-symbol)))))) + +(put 'ecb-with-ecb-advice 'lisp-indent-function 2) + +;; (insert (pp (macroexpand '(ecb-with-ecb-advice 'one-window-p 'around +;; (message ""))))) + +(defmacro ecb-with-original-adviced-function-set (adviced-function-set-var &rest body) + "Evaluates BODY with all adviced functions of ADVICED-FUNCTION-SET-VAR +being disabled \(means with their original definition). Restores always \(even +if an error occurs during evaluating BODY) the previous state of the adviced +functions, means it depends if the call to this macro is the outermost call: +Only if it is the outermost-call the advices of the used advice-set will be +disabled after finishing. So full BODY is guaranted being evaluated with +disabled advices of ADVICED-FUNCTION-SET-VAR. + +ADVICED-FUNCTION-SET-VAR must be defined by `defecb-advice-set' and all +advices of this set must be defined by `defecb-advice'. Otherwise an error +occurs. + +Example: + +\(ecb-with-original-adviced-function-set 'ecb-layout-basic-adviced-functions + \(do-something..))" + (let ((outmost-caller-p (make-symbol "outmost-caller-p"))) + `(let ((,outmost-caller-p + (unless (equal (cdr (assq ,adviced-function-set-var ecb-adviced-function-sets)) + 'outmost-caller) + ;; if we are the outmost caller of this macro we store this + ;; for + ;; a) following callers + ;; b) ourself, so we can later reset is + (setcdr (assq ,adviced-function-set-var ecb-adviced-function-sets) 'outmost-caller)) + )) + (if ecb-advices-debug-error + (message "ECB %s: debug with original advice-set: %s - ENTRY" + ecb-version ,adviced-function-set-var)) + (unwind-protect + (progn + (when ,outmost-caller-p + ;; we must force disabling permanent advice-sets too + (ecb-disable-advices ,adviced-function-set-var t)) + ,@body) + (when ,outmost-caller-p + ;; Only if we are the outmost caller we are allowed to re-enable the + ;; disabled advice-set + (setcdr (assq ,adviced-function-set-var ecb-adviced-function-sets) nil) + (ecb-enable-advices ,adviced-function-set-var)) + (if ecb-advices-debug-error + (message "ECB %s: debug with original advice-set: %s - EXIT" + ecb-version ,adviced-function-set-var)))))) + + +(put 'ecb-with-original-adviced-function-set 'lisp-indent-function 1) + + +;; !!!!!!!!!!!!!!!! Caution !!!!!!!!!!!!!!!!!!!!!!!!!! +;; when editing that file which defines such an advice and then saving and +;; byte-compiling this file then this reactivates this advice - just a hint - +;; should be not a problem for ECB because the users should not edit the +;; ecb-code ;-) But we should have this in mind!!!!!!!!!!!!!!!!!!!!!!! +(defecb-advice-set ecb-always-disabled-advices + "These advices are always disabled. +This advice-set can not be enabled by `ecb-enable-advices' but such an +advice has to be activated 'on demand' by the caller. Such an advice must be +used with the macro `ecb-with-ecb-advice'.") + + +(defun ecb-source-make (filename &optional buffer) + "Build a source-object from FILENAME and BUFFER. +If optional arg BUFFER is nil then the just FILENAME is returned. +If BUFFER is not nil then it can be either a buffer-object or a buffer-name. +A cons is returned where car is FILENAME and cdr is the buffername of BUFFER." + (let ((buffername (when buffer + (if (bufferp buffer) + (buffer-name buffer) + buffer)))) + (if buffername + (cons filename buffername) + filename))) + +(defun ecb-source-get-filename (source) + "SOURCE is either a string, then it is a filename or a cons, then the car is +the filename and the cdr is the buffer-name, whereas the latter one can be the +name of an indirect-buffer." + (if (consp source) + (car source) + source)) + +(defun ecb-source-get-buffername (source) + "SOURCE is either a string, then it is a filename or a cons, then the car is +the filename and the cdr is the buffer-name, whereas the latter one can be the +name of an indirect-buffer." + (if (consp source) + (cdr source))) + +(defun ecb-source-get-buffer (source) + "Return a living buffer-object for SOURCE. +SOURCE is either a string, then it is a filename or a cons, then the car is +the filename and the cdr is the buffer-name, whereas the latter one can be the +name of an indirect-buffer. + +If SOURCE contains a living buffer then this buffer is returned. Otherwise a +buffer for the filename-part of SOURCE is created and returned. For an +existing ans readable file this means the file is loaded into a buffer. + +Note: The buffer is just returned but not displayed." + (let* ((my-source (if (consp source) source (cons source nil))) + (filename (car my-source)) + (buffer (ecb-buffer-obj (cdr my-source)))) + (or buffer + (find-file-noselect filename)))) + +(defvar ecb-path-selected-directory nil + "Path to currently selected directory.") + +(defvar ecb-path-selected-source nil + "Path to currently selected source. + +It is a cons where the cdr is a buffer-object of the current selected source +The name of this file is the car of the cons: +\( . ). + +This variable is only set by `ecb-path-selected-source-set' and evaluated by +the function `ecb-path-selected-source'. + +Do not use it directly! Use always one of the mentioned functions!") + +(defun ecb-path-selected-source-set (filename buffer) + "Set `ecb-path-selected-source' to FILENAME and BUFFER. +Returns in the new value. FILENAME and BUFFER must not be nil. +For a description of FILENAME and BUFFER see `ecb-source-make'." + (unless (and filename buffer) + (error "ECB %s: Invalid setting of `ecb-path-selected-source with file %s, buffer %s" + ecb-version filename buffer)) + (setq ecb-path-selected-source (ecb-source-make filename buffer))) + +(defun ecb-path-selected-source (&optional type) + "Get the value of the internal variable `ecb-path-selected-source'. +If optional arg TYPE is the symbol 'file then the filename-part +is returned as string, if it is the symbol 'buffername then the +stored buffername is returned if there is any and and if it is the +symbol 'buffer then the buffer-object of the stored buffername is +returned if there is any or nil. + +In all other cases of TYPE always that value is returned +`ecb-path-selected-source' has been set by most recent +`ecb-path-selected-source-set'." + (case type + (file (ecb-source-get-filename ecb-path-selected-source)) + (buffername (ecb-source-get-buffername ecb-path-selected-source)) + (buffer (ecb-source-get-buffer ecb-path-selected-source)) + (otherwise ecb-path-selected-source))) + + +;; all defined tree-buffer creators + +(defvar ecb-tree-buffer-creators nil + "The tree-buffer creators of ECB. +An alist where each element is a cons where the car is a symbol which contains +the name of a tree-buffer \(e.g. `ecb-sources-buffer-name') and the cdr is the +associated function-symbol which creates the tree-buffer with that name.") + +(defun ecb-tree-buffer-creators-init () + "Initialize `ecb-tree-buffer-creators'. +Removes all creators and set it to nil." + (setq ecb-tree-buffer-creators nil)) + +(defun ecb-tree-buffer-creators-register (name-symbol fn) + "Register the creator-function FN for the tree-buffer NAME-SYMBOL." + (add-to-list 'ecb-tree-buffer-creators (cons name-symbol fn))) + +(defun ecb-tree-buffer-creators-run () + "Run all currently registered creator-functions." + (dolist (creator-elem ecb-tree-buffer-creators) + ;; create all the tree-buffers if they don't already exist + (funcall (cdr creator-elem)))) + + +(defmacro defecb-tree-buffer-creator (creator + tree-buffer-name-symbol + docstring &rest body) + "Define a creator-function CREATOR for a tree-buffer which name is hold in +the symbol TREE-BUFFER-NAME-SYMBOL. Do not quote CREATOR and +TREE-BUFFER-NAME-SYMBOL. DOCSTRING is the docstring for CREATOR. BODY is all +the program-code of CREATOR \(must contain a call to `tree-buffer-create'). It +makes sense that BODY returns the created tree-buffer. + +When creating a tree-buffer with this macro then this tree-buffer will be +automatically created \(i.e. its creator-function defined with this macro will +be called) when activating ECB and the tree-buffer will automatically +registered at ECB. This means that some features of ECB will work +automatically out of the box with this tree-buffer. + +When creating a tree-buffer for ECB then it MUST be created with this macro +and not with `tree-buffer-create'!" + `(eval-and-compile + (ecb-tree-buffer-creators-register (quote ,tree-buffer-name-symbol) + (quote ,creator)) + (defun ,creator () + ,docstring + (unless (ecb-ecb-buffer-registry-get-symbol ,tree-buffer-name-symbol) + (ecb-ecb-buffer-registry-add ,tree-buffer-name-symbol + (quote ,tree-buffer-name-symbol) + t) + ,@body)))) + +(put 'defecb-tree-buffer-creator 'lisp-indent-function 2) + +;; all created ecb-buffers + +;; KB: `defecb-tree-buffer-creator' calls ecb-ecb-buffer-registry-add. Besides +;; `defecb-window-dedicator-to-ecb-buffer' this is the only modifier of that +;; variable! +(defvar ecb-ecb-buffer-registry nil + "The ecb-buffers registry. + +Each special ecb-buffer must be registered at ECB in this registry. + +Do not change this variable! This registration is done completely +by the macro `defecb-window-dedicator-to-ecb-buffer' and the +results are stored in this registry. Each item is a 4-element +list with the following contents: +1. elem: The buffer-name of the registered ecb-buffer +2. elem: The symbol which holds this buffer-name +3. elem: An indicator if the registered ecb-buffer is of type tree-buffer + \(i.e. this tree-buffer is created with `defecb-tree-buffer-creator'). Not + nil in case of a tree-buffer otherwise nil +4. elem: A function which displays that buffer in current window + when called and makes this window dedicated to this buffer. This is the + DEDICATOR-argument of `defecb-window-dedicator-to-ecb-buffer'. + +The dedicator-function must do: +1. switch to that buffer in current window +2. all things necessary for this buffer - e.g. making it read-only + +The setting function must ensure that the current window is still +current at the end and that the related ecb-buffer is displayed +in this window at the end. One examples of such a setting +function is `ecb-set-history-buffer' for the buffer with name +`ecb-history-buffer-name'. + +See `defecb-window-dedicator-to-ecb-buffer' for more details and an example.") + +(defun ecb-ecb-buffer-registry-init () + (setq ecb-ecb-buffer-registry nil)) + +(defun ecb-ecb-buffer-registry-add (name name-symbol tree-buffer-p &optional set-fcn-symbol) + (if (assoc name ecb-ecb-buffer-registry) + (ecb-set-elt (assoc name ecb-ecb-buffer-registry) 3 set-fcn-symbol) + (setq ecb-ecb-buffer-registry + (cons (list name name-symbol tree-buffer-p set-fcn-symbol) + ecb-ecb-buffer-registry)))) + +(defsubst ecb-ecb-buffer-registry-name-list (&optional only-tree-buffers) + (delq nil (mapcar (function (lambda (e) + (and (or (not only-tree-buffers) + (nth 2 e)) + (nth 0 e)))) + ecb-ecb-buffer-registry))) + +(defsubst ecb-ecb-buffer-registry-symbol-list (&optional only-tree-buffers) + (delq nil (mapcar (function (lambda (e) + (and (or (not only-tree-buffers) + (nth 2 e)) + (nth 1 e)))) + ecb-ecb-buffer-registry))) + +(defsubst ecb-ecb-buffer-registry-buffer-list (&optional only-tree-buffers) + (delq nil (mapcar (function (lambda (e) + (and (or (not only-tree-buffers) + (nth 2 e)) + (ecb-buffer-obj (nth 0 e))))) + ecb-ecb-buffer-registry))) + +(defsubst ecb-ecb-buffer-registry-get-symbol (name) + (nth 1 (assoc name ecb-ecb-buffer-registry))) + +(defsubst ecb-ecb-buffer-registry-get-set-fcn (name) + (nth 3 (assoc name ecb-ecb-buffer-registry))) + + +(defvar ecb-tree-buffer-callbacks '((expand . nil) (select . nil)) + "All callback-functions for the tree-buffers of ECB. +This list contains two items of the form: +\( .\()) +where is 'select and 'expand and + is an alist where each item is a cons +like \( . )." + ) + + +(defun ecb-tree-buffer-callbacks-add (type buffer-name-symbol callback) + (unless (member type '(select expand)) + (error "ECB %s tries to add tree-buffer-callback of unknown type %s" + ecb-version type)) + ;; TODO: Klaus Berndl : maybe we should add a check if + ;; the buffer-name-symbol is already registered with defecb-tree-buffer-creator + (let ((type-elem (ecb-find-assoc type ecb-tree-buffer-callbacks))) + (unless (ecb-find-assoc buffer-name-symbol type-elem) + (setcdr type-elem (cons (cons buffer-name-symbol callback) + (cdr type-elem)))))) + + +(defun ecb-tree-buffer-callbacks-alist-of-type (type) + (unless (member type '(select expand)) + (error "ECB %s tries to get tree-buffer-callback of unknown type %s" + ecb-version type)) + (cdr (assoc type ecb-tree-buffer-callbacks))) + + +(defmacro defecb-tree-buffer-callback (callback + tree-buffer-name-symbol + callback-type + optional-arg-list + docstring &rest body) + "Define a callback-function CALLBACK for a tree-buffer which name is hold in +the symbol TREE-BUFFER-NAME-SYMBOL. Do not quote CALLBACK and +TREE-BUFFER-NAME-SYMBOL and CALLBACK-TYPE. DOCSTRING is the +docstring for CALLBACK. BODY is all the program-code of CALLBACK. + +CALLBACK-TYPE must be either 'expand or 'select, whereas the +former one defines a callback for handling expanding a node and +the latter one for clicking onto a node. + +CALLBACK is defined as a function with at least five arguments: +NODE, ECB-BUTTON, EDIT-WINDOW-NR, SHIFT-MODE and META-MODE. +CALLBACK must handle clicking onto NODE in the tree-buffer for +which the callback is defined. ECB-BUTTON can be 1, 2 or 3 \(= +mouse-buttons). If 3 then EDIT-WINDOW-NR contains the number of +the edit-window the NODE should be displayed or whatever should +be done with NODE. For 1 and 2 the value of EDIT-WINDOW-NR is +ignored. SHIFT-MODE and META-MODE are not nil if the user has +pressed the shift- rsp. the meta-button during his click. Note: +using the keyboard in the tree-buffer instead the mouse is +already handled by the caller of CALLBACK, so CALLBACK has no +need to bother with keyboard or mouse specific stuff! + +If OPTIONAL-ARG-LIST is not nil then it must be a list with all +optional or rest arguments. You have to include the keywords +&optional or/and &rest! The first item of this list must be +either the keyword &optional or &rest! The defined CALLBACK gets +exactly these additional arguments after the reqired 5 arguments +described above. Do not quote OPTIONAL-ARG-LIST! + +The defined CALLBACK automatically hides the ecb-windows after +selecting a node in case META-MODE is not nil and if the CALLBACK +is of type 'select; this is a must for every tree-buffer. Do not +do this within BODY! But: During the evaluation of BODY the local +variable no-meta-hiding is bound and set to nil per default. If +BODY sets it to not nil then the hiding of the ecb-windows is +prevented even if META-MODE is not nil. + +The value of the last expression of BODY is returned. + +This macro automatically adds the appropriate description of the +5 arguments of the defined CALLBACK to DOCSTRING. So just +describe what the CALLBACK does! + +It is strongly recommended defining a callback-function for a +tree-buffer of ECB with this macro and not with plain `defun', +because then a lot of stuff needed to be done by every +tree-buffer is automatically performed." + `(eval-and-compile + (ecb-tree-buffer-callbacks-add (quote ,callback-type) + (quote ,tree-buffer-name-symbol) + (quote ,callback)) + (defun ,callback ,(append '(node ecb-button edit-window-nr shift-mode meta-mode) + optional-arg-list) + ,(concat (if (equal callback-type 'select) + (concat + "Handle clicking onto NODE in the current tree-buffer.\n" + "ECB-BUTTON can be 1, 2 or 3. If 3 then EDIT-WINDOW-NR contains the number\n" + "of the edit-window the NODE should be displayed or whatever should be done\n" + "with NODE. For 1 and 2 the value of EDIT-WINDOW-NR is ignored.\n" + "SHIFT-MODE and META-MODE are self-explanatory.") + (concat + "Handle expanding NODE in the current tree-buffer.\n" + "ECB-BUTTON can be 1, 2 or 3. If 3 then EDIT-WINDOW-NR contains the number\n" + "of the edit-window the NODE should be displayed or whatever should be done\n" + "with NODE. For 1 and 2 the value of EDIT-WINDOW-NR is ignored.\n" + "SHIFT-MODE and META-MODE are self-explanatory.")) + "\n\n" + docstring) + (let ((no-meta-hiding nil)) + (prog1 + (progn + ,@body) + ,(if (equal callback-type 'select) + `(when (and (not no-meta-hiding) meta-mode) + (ecb-run-with-idle-timer 0.001 nil 'ecb-hide-ecb-windows)))))))) + +;; (insert (pp (macroexpand +;; '(defecb-tree-buffer-callback kausi-callback ecb-history-buffer +;; expand (&optional a b) +;; "das ist ein Docstring" +;; (message "") +;; (if nil t nil))))) + + +(put 'defecb-tree-buffer-callback 'lisp-indent-function 4) + +;; the filename/path cache + +(defecb-multicache ecb-filename-cache 500 nil '(FILES-AND-SUBDIRS + EMPTY-DIR-P + SOURCES + VC + FIXED-FILENAMES + REMOTE-PATH + HOST-ACCESSIBLE) + "Cache used for the filebrowser to cache all necessary informations +associated to file- or directory-names. + +Currently there are the following subcaches managed within this cache: + + FILES-AND-SUBDIRS: + + Cache for every directory all subdirs and files. This is a cache with + key: + value: \( . ) + + EMPTY-DIR-P: + + Cache for every directory if it is empty or not. This is a cache with + key: + value: \(\[nil|t] . ) + + SOURCES: + + Cache for the contents of the buffer `ecb-sources-buffer-name'. This is a + cache with + key: + value: \( . ) + whereas is a 3-elem list \(tree-buffer-root buffer-string) for a full \(i.e. all files) + cache and is a 4-elem list \(tree-buffer-root sources-buffer-string ) for a filtered + cache where is a cons-cell \( . ). + + VC: + + Cache necessary informations for the version-control-support. This is a + cache for filenames and directories. In case of a file with + key: of a sourcefile + value: \( ) + whereas is the that VC-state the file had at time . + is a list of tree-buffer-names for which was + checked. + In case of a directory with + key: of a directory + value: or 'NO-VC + is the function used to get the VC-state if + is older than the most recent modification-timestamp of . + + FIXED-FILENAMES: + + Cache for fixed filenames which can speedup handling-remote-paths \(like + tramp-paths) + key: The concatenation of the args PATH and FILENAME of `ecb-fix-filename'. + value: The result of `ecb-fix-filename' for these args. + + REMOTE-PATH: + + Cache if a path is a remote path and store its components if yes. + key: a path + value: 'NOT-REMOTE if not a remote path otherwise the result of + `ecb-remote-path'. + + HOST-ACCESSIBLE: + + Cache if a host is accessible or not. + key: a host \(e.g. ecb.sourceforge.net) + value: \( . ) whereas is the cache time of + and is either 'NOT-ACCESSIBLE if host is not accessible + or t if accessible. +") + +(defun ecb-filename-cache-init () + "Initialize the whole cache for file- and directory-names" + (if (ecb-multicache-p 'ecb-filename-cache) + (ecb-multicache-clear 'ecb-filename-cache))) + +;; directory separator + +(defconst ecb-directory-sep-char + (if ecb-running-xemacs + ;; to avoid compiler complainings + (symbol-value 'directory-sep-char) + ?/)) + +(defsubst ecb-directory-sep-char (&optional refdir) + (if (or (null refdir) + (not (ecb-remote-path refdir))) + ecb-directory-sep-char + ?/)) + +(defsubst ecb-directory-sep-string (&optional refdir) + (char-to-string (ecb-directory-sep-char refdir))) + +;; autocontrol/sync-stuff -------------------------------------------- + +(defvar ecb-autotrace-autocontrol/sync-functions nil + "Allow autotracing the internal autocontrol/synchronisations of ECB. +All functions defined with `defecb-autocontrol/sync-function' can +be autotraced. The value of this variable is either nil \(then no +autotracing will be performed) or t \(then all functions defined with +`defecb-autocontrol/sync-function' will be traced) or a list of +function-symbols \(then exactly these functions will be traced). + +Auto-tracing means that each\(!) time the function runs \(either +by idle-timer or within pre- or post-command-hook) a trace-message on +function-entry and a trace-message on function exit is writen.") + +(defvar ecb-bodytrace-autocontrol/sync-functions nil + "Allows a body tracing of the internal autocontrol/synchronisations of ECB. +For allowed values for this variable see `ecb-autotrace-autocontrol/sync-functions' + +Body-tracing means calls to `ecb-bodytrace-autocontrol/sync-fcn-error' +somewhere within the BODY of functions defined by +`defecb-autocontrol/sync-function'. So by setting this variable tracing of the +BODY of autocontrol/sync-function can be switched on or off.") + +;; (setq ecb-autotrace-autocontrol/sync-functions +;; (list 'ecb-compilation-buffer-list-changed-p)) +;; (setq ecb-bodytrace-autocontrol/sync-functions +;; (list 'ecb-compilation-buffer-list-changed-p)) + +(defun ecb-autotrace-autocontrol/sync-fcn-error (autocontrol-fcn &rest args) + "Run ARGS through `format' and write it to the *Messages*-buffer. +Do not use this function for own traces, but use the function +`ecb-bodytrace-autocontrol/sync-fcn-error'! +Entry and exit-traces are already buildin in functions defined with +`defecb-autocontrol/sync-function' and can be switched on/off by +`ecb-autotrace-autocontrol/sync-functions'." + (when (or (eq ecb-autotrace-autocontrol/sync-functions t) + (member autocontrol-fcn ecb-autotrace-autocontrol/sync-functions)) + (message (concat (format "ECB %s autocontrol-fcn %s autotrace [%s] " + ecb-version autocontrol-fcn + (format-time-string "%H:%M:%S")) + (apply 'format args))))) + +(defun ecb-bodytrace-autocontrol/sync-fcn-error (autocontrol-fcn &rest args) + "Run ARGS through `format' and write it to the *Messages*-buffer. + +Use this function only for traces used within the BODY of a function defined +with `defecb-autocontrol/sync-function' and not for entry and exit-traces +because these ones are already buildin in functions defined with +`defecb-autocontrol/sync-function' and can be switched on/off by +`ecb-autotrace-autocontrol/sync-functions'. + +Body-tracing can be switched on/off with +`ecb-bodytrace-autocontrol/sync-function'." + (when (or (eq ecb-bodytrace-autocontrol/sync-functions t) + (member autocontrol-fcn ecb-bodytrace-autocontrol/sync-functions)) + (message (concat (format "ECB %s autocontrol-fcn %s bodytrace [%s] " + ecb-version autocontrol-fcn + (format-time-string "%H:%M:%S")) + (apply 'format args))))) + +(defvar ecb-autocontrol/sync-fcn-register nil + "List of autocontrol/sync-functions defined by +`defecb-autocontrol/sync-function'. Each element is a cons where car is the +function symbol and cdr is either the symbol of a variable containing a +buffer-name of a special ECB-buffer or nil.") +(defvar ecb-idle-timer-alist nil + "List of active idle-timers of ECB") +(defvar ecb-post-command-hooks nil + "List of functions which have to be part of the value of `post-command-hook'") +(defvar ecb-pre-command-hooks nil + "List of functions which have to be part of the value of `pre-command-hook'") + +(defun ecb-register-autocontrol/sync-function (fcn-symbol buffer-name-symbol) + (add-to-list 'ecb-autocontrol/sync-fcn-register (cons fcn-symbol buffer-name-symbol))) + +(defun ecb-stop-all-autocontrol/sync-functions () + (dolist (fcn-elem ecb-autocontrol/sync-fcn-register) + (ecb-stop-autocontrol/sync-function (car fcn-elem)))) + +(defun ecb-stop-autocontrol/sync-function (fcn-symbol) + (let* ((timer-elem (assoc fcn-symbol ecb-idle-timer-alist)) + (timer (cdr timer-elem))) + (when timer-elem + (ecb-cancel-timer timer) + (setq ecb-idle-timer-alist (delq timer-elem ecb-idle-timer-alist))) + (remove-hook 'post-command-hook fcn-symbol) + (remove-hook 'pre-command-hook fcn-symbol) + (setq ecb-post-command-hooks (delq fcn-symbol ecb-post-command-hooks)) + (setq ecb-pre-command-hooks (delq fcn-symbol ecb-pre-command-hooks)))) + + +(defun ecb-activate-ecb-autocontrol-function (value func) + "Adds function FUNC to `ecb-idle-timer-alist' and activates an idle-timer +with idle-time VALUE if VALUE is a number. If nil or 'post the +FUNC is added to `post-command-hook' and `ecb-post-command-hooks' +and removed from the idle-list \(if it has been contained). If +'pre the FUNC is added to `pre-command-hook' and +`ecb-pre-command-hooks' and removed from the idle-list \(if it +has been contained)." + (unless (assoc func ecb-autocontrol/sync-fcn-register) + (error "ECB %s: Try to activate unregistered %s as autocontrol/sync-function" + ecb-version func)) + ;; `ecb-basic-buffer-sync-delay' can never have the value 'basic so this + ;; recursion is save + (if (equal 'basic value) + (ecb-activate-ecb-autocontrol-function ecb-basic-buffer-sync-delay func) + (ecb-stop-autocontrol/sync-function func) + (case value + ((nil post) + (add-hook 'post-command-hook func) + (add-to-list 'ecb-post-command-hooks func)) + (pre + (add-hook 'pre-command-hook func) + (add-to-list 'ecb-pre-command-hooks func)) + (otherwise + (add-to-list 'ecb-idle-timer-alist + (cons func + (ecb-run-with-idle-timer value t func))))))) + +(defmacro defecb-autocontrol/sync-function (fcn buffer-name-symbol + buffer-sync-option-symbol + interactive-p docstring + &rest body) + "Define a function run either by idle-timer or before or after each command. +Such a function is used either for automatic self-controlling certain aspects +of ECB or for synchronizing a special window/buffer of ECB with contents of +the active buffer in the edit-area. + +FCN is the name of the defined function and BUFFER-NAME-SYMBOL is +either nil or a variable-symbol containing the buffer-name +of a special ECB-window/buffer for which the defined function is +used for synchronizing it with the edit-area. In the latter case +BODY is encapsulated with the macros a) +`ecb-when-point-in-edit-window-ecb-windows-visible' and b) +`ecb-do-if-buffer-visible-in-ecb-frame' so BODY runs only if a) +point stays in an edit-window \(ie. the currently selected window +is an edit-window) and the ecb-windows of current layout are +not hidden and b) the buffer of BUFFER-NAME-SYMBOL is displayed in a +window of the ECB-frame \(for details see the documentation of +this macro). + +Please note: If BUFFER-NAME-SYMBOL is nil then BODY is not +encapsulated with these two macros mentioned above! + +The defined function has an optional argument FORCE which can be used within +BODY. + +BUFFER-SYNC-OPTION-SYMBOL is either nil or the name of an option +which defines if and under which circumstances the +synchronization should take place. Such an option must be of the +same type and must offer exactly the same values as `ecb-analyse-buffer-sync'. +If BUFFER-SYNC-OPTION-SYMBOL is not nil and a valid symbol then the generated +function encapsulates BODY in a when-statement whereas the condition-clause is +exactly true when either: +- force is not nil or +- The value of BUFFER-SYNC-OPTION-SYMBOL is t or 'always or +- The major-mode of current buffer is not contained in the list-value of + BUFFER-SYNC-OPTION-SYMBOL or +- The value of BUFFER-SYNC-OPTION-SYMBOL is 'basic and the conditions above + are true for `ecb-basic-buffer-sync'. + +If INTERACTIVE-P is not nil then FCN will be defined as an interactice +command, i.e. it will containe the clause \(interactive \"P\"). + +The defined function is automatically prepared for tracing its calls when +`ecb-autotrace-autocontrol/sync-functions' is either set to t or the symbol of FCN +is contained in the list of this variable. In this case a trace-statemant with +time-details is reported to the message-buffer directly before and after BODY. + +Do not quote FCN, BUFFER-NAME-SYMBOL and BUFFER-SYNC-OPTION-SYMBOL! + +Example: + +\(defecb-autocontrol/sync-function ecb-sync-a-buffer ecb-a-special-buffer-name + ecb-a-special-buffer-sync nil + \"Synchronize the buffer of ECB-A-SPECIAL-BUFFER-NAME with...\" + \(let \(\(x nil)) + \(if force + ;; do something + ;; do something else + ) + )) + +This defines a non interactive function `ecb-sync-a-buffer' which +should be used for synchronizing the special buffer the name is +hold in the variable `ecb-a-special-buffer-name'. +" + `(eval-and-compile + (ecb-register-autocontrol/sync-function (quote ,fcn) (quote ,buffer-name-symbol)) + + (defun ,fcn (&optional force) + ,docstring + ,(if interactive-p + '(interactive "P")) + (ecb-autotrace-autocontrol/sync-fcn-error (quote ,fcn) + "Begin: Cur-buf: %s" (current-buffer)) + (let (,(if (and buffer-sync-option-symbol (symbolp buffer-sync-option-symbol)) + `(,buffer-sync-option-symbol (if (equal + ,buffer-sync-option-symbol + 'basic) + ecb-basic-buffer-sync + ,buffer-sync-option-symbol)) + ;; we need anything to bound in the else-fork, so we just bind + ;; major-mode to major-mode - we could use any variable, takes + ;; no effect + `(major-mode major-mode)) +;; `(,(make-symbol "abc123xyz456efg789") nil)) + ) + (when ,(if (and buffer-sync-option-symbol (symbolp buffer-sync-option-symbol)) + `(or force + (equal 'always ,buffer-sync-option-symbol) + (equal t ,buffer-sync-option-symbol) + (and ,buffer-sync-option-symbol + (listp ,buffer-sync-option-symbol) + (not (member major-mode ,buffer-sync-option-symbol)))) + t) + ,(if (and buffer-name-symbol (symbolp buffer-name-symbol)) + `(ecb-when-point-in-edit-window-ecb-windows-visible + (ecb-do-if-buffer-visible-in-ecb-frame (quote ,buffer-name-symbol) + (ecb-bodytrace-autocontrol/sync-fcn-error (quote ,fcn) + "After conditions: Cur-buf: %s" (current-buffer)) + ,@body + (ecb-autotrace-autocontrol/sync-fcn-error (quote ,fcn) + "End: Cur-buf: %s" (current-buffer)) + nil ;; we always return nil + )) + `(progn + (ecb-bodytrace-autocontrol/sync-fcn-error (quote ,fcn) + "After conditions: Cur-buf: %s" (current-buffer)) + ,@body + (ecb-autotrace-autocontrol/sync-fcn-error (quote ,fcn) + "End: Cur-buf: %s" + (current-buffer)) + nil ;; we always return nil + ) + )))))) +(put 'defecb-autocontrol/sync-function 'lisp-indent-function 4) + +;; (insert (pp (macroexpand +;; '(defecb-autocontrol/sync-function ecb-analyse-buffer-sync-test +;; ecb-anaylyse-buffer-name-test ecb-basic-buffer-sync nil +;; "testdoctsirng" +;; (let ((analysis nil) +;; (completions nil) +;; (fnargs nil) +;; (cnt nil) +;; ) +;; ;; Try and get some sort of analysis +;; (ignore-errors +;; (save-excursion +;; (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)) +;; (setq fnargs (ecb--semantic-get-local-arguments (point))) +;; ))))) +;; ))) + + +(defecb-autocontrol/sync-function ecb-monitor-autocontrol-functions nil nil nil + "Checks if all necessary ECB-hooks are contained in `post-command-hook' rsp. +`pre-command-hook'. If one of them has been removed by Emacs \(Emacs resets +these hooks to nil if any of the contained functions fails!) then this +function reads them to these hooks." + ;; post-command-hook + (dolist (hook ecb-post-command-hooks) + (when (not (member hook post-command-hook)) + (add-hook 'post-command-hook hook))) + ;; pre-command-hook + (dolist (hook ecb-pre-command-hooks) + (when (not (member hook pre-command-hook)) + (add-hook 'pre-command-hook hook)))) + +;; -- end of sync stuff + + + +;;; ----- Wrappers for file- and directory-operations ------ + +(dolist (f '(file-name-nondirectory + file-exists-p + file-name-directory + file-readable-p + file-attributes + file-name-extension + file-directory-p + file-accessible-directory-p + file-name-sans-extension + file-writable-p + file-name-as-directory + directory-files)) + (fset (intern (format "ecb-%s" f)) + `(lambda (file-or-dir-name &rest args) + ,(format "Delegate all args to `%s' but call first `ecb-fix-path' for FILE-OR-DIR-NAME." f) + (apply (quote ,f) (ecb-fix-path file-or-dir-name) args)))) + +(defun ecb-expand-file-name (name &optional default-dir) + "Delegate all args to `expand-file-name' but call first `ecb-fix-path' +for both args." + (expand-file-name (ecb-fix-path name) (ecb-fix-path default-dir))) + +;;; ----- Canonical filenames ------------------------------ + +(defun ecb-fix-path (path) + "Fixes an annoying behavior of the native windows-version of XEmacs: +When PATH contains only a drive-letter and a : then `expand-file-name' does +not interpret this PATH as root of that drive. So we add a trailing +`directory-sep-char' and return this new path because then `expand-file-name' +treats this as root-dir of that drive. For all \(X)Emacs-version besides the +native-windows-XEmacs PATH is returned." + (if (and ecb-running-xemacs + (equal system-type 'windows-nt)) + (if (and (= (length path) 2) + (equal (aref path 1) ?:)) + (concat path (ecb-directory-sep-string)) + path) + path)) + +;; accessors for the FIXED-FILENAMES-cache + +(defsubst ecb-fixed-filename-cache-put (path filename fixed-filename) + "Add FIXED-FILENAME for PATH and FILENAME to the FIXED-FILENAMES-cache +of `ecb-filename-cache'." + (ecb-multicache-put-value 'ecb-filename-cache + (concat path filename) + 'FIXED-FILENAMES + fixed-filename)) + +(defsubst ecb-fixed-filename-cache-get (path filename) + "Get the cached value for PATH and FILENAME from the FIXED-FILENAMES-cache +in `ecb-filename-cache'. If no vaue is cached for PATH and FILENAME then nil +is returned." + (ecb-multicache-get-value 'ecb-filename-cache + (concat path filename) + 'FIXED-FILENAMES)) + +(defun ecb-fixed-filename-cache-dump (&optional no-nil-value) + "Dump the whole FIXED-FILENAMES-cache. If NO-NIL-VALUE is not nil then these +cache-entries are not dumped. This command is not intended for end-users of ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache + 'FIXED-FILENAMES + no-nil-value)) + +;; TODO: Klaus Berndl : What about the new cygwin-version +;; of GNU Emacs 21? We have to test if this function and all locations where +;; `ecb-fix-path' is used work correctly with the cygwin-port of GNU Emacs. +(silentcomp-defun mswindows-cygwin-to-win32-path) +(defun ecb-fix-filename (path &optional filename substitute-env-vars) + "Normalizes path- and filenames for ECB. If FILENAME is not nil its pure +filename \(i.e. without directory part) will be concatenated to PATH. The +result will never end with the directory-separator! If SUBSTITUTE-ENV-VARS is +not nil then in both PATH and FILENAME env-var substitution is done. If the +`system-type' is 'cygwin32 then the path is converted to win32-path-style!" + (when (stringp path) + (or (ecb-fixed-filename-cache-get path filename) + (let ((remote-path (ecb-remote-path path)) + (norm-path nil) + (result nil)) + (if (or (not remote-path) + (ecb-host-accessible-p (nth 1 remote-path))) + (progn + (setq norm-path (if ecb-running-xemacs + (case system-type + (cygwin32 + (mswindows-cygwin-to-win32-path + (expand-file-name path))) + (windows-nt + (expand-file-name (ecb-fix-path path))) + (otherwise + (expand-file-name path))) + (expand-file-name path))) + ;; substitute environment-variables + (setq norm-path (expand-file-name (if substitute-env-vars + (substitute-in-file-name norm-path) + norm-path)))) + (setq norm-path path)) + ;; For windows systems we normalize drive-letters to downcase + (setq norm-path (if (and (member system-type '(windows-nt cygwin32)) + (> (length norm-path) 1) + (equal (aref norm-path 1) ?:)) + (concat (downcase (substring norm-path 0 2)) + (substring norm-path 2)) + norm-path)) + ;; delete a trailing directory-separator if there is any + (setq norm-path (if (and (> (length norm-path) 1) + (= (aref norm-path (1- (length norm-path))) + (ecb-directory-sep-char path))) + (substring norm-path 0 (1- (length norm-path))) + norm-path)) + (setq result + (concat norm-path + (if (stringp filename) + (concat (when (> (length norm-path) 1) + ;; currently all protocols like tramp, + ;; ange-ftp or efs support only not + ;; windows-remote-hosts ==> we must not + ;; add a backslash here (would be done + ;; in case of a native Windows-XEmacs) + (ecb-directory-sep-string path)) + (file-name-nondirectory (if substitute-env-vars + (substitute-in-file-name filename) + filename)))))) + (ecb-fixed-filename-cache-put path filename result) + result)))) + +;; (ecb-fix-filename "/berndl@ecb.sourceforge.net:~") + +;; -- end of canonical filenames + + +(defun ecb-format-bucket-name (name &optional ignore-prefix-suffix ignore-bucket-face) + "Format NAME as a bucket-name according to `ecb-bucket-node-display'. +If optional arg IGNORE-PREFIX-SUFFIX is not nil then +these settings of `ecb-bucket-node-display' are ignored. If IGNORE-BUCKET-FACE +it t then the face of `ecb-bucket-node-display' is completely ignored, if it +is 'only-name then the face of `ecb-bucket-node-display' is only ignored for +NAME but not for a prefix or suffix of `ecb-bucket-node-display' \(if any)." + (let ((formated-prefix (unless ignore-prefix-suffix + (if (eq ignore-bucket-face t) + (nth 0 ecb-bucket-node-display) + (ecb-merge-face-into-text + (nth 0 ecb-bucket-node-display) + (nth 2 ecb-bucket-node-display))))) + (formated-suffix (unless ignore-prefix-suffix + (if (eq ignore-bucket-face t) + (nth 1 ecb-bucket-node-display) + (ecb-merge-face-into-text + (nth 1 ecb-bucket-node-display) + (nth 2 ecb-bucket-node-display))))) + (formatted-name (if ignore-bucket-face + name + (ecb-merge-face-into-text name (nth 2 ecb-bucket-node-display))))) + (concat formated-prefix formatted-name formated-suffix))) + +(defun ecb-toggle-do-not-leave-window-after-select () + "Toggles if a node-selection in a tree-buffer leaves the tree-window. +See also the option `ecb-tree-do-not-leave-window-after-select'." + (interactive) + (let ((tree-buffer (ecb-point-in-ecb-tree-buffer))) + (if tree-buffer + (let ((tree-buf-name (buffer-name tree-buffer))) + (if (ecb-member-of-symbol/value-list + tree-buf-name + ecb-tree-do-not-leave-window-after-select--internal) + (progn + (setq ecb-tree-do-not-leave-window-after-select--internal + ;; we must try both - the symbol of the tree-buffer-name + ;; and the tree-buffer-name because we do not know what + ;; the user has specified in + ;; `ecb-tree-do-not-leave-window-after-select'! + (delete (ecb-ecb-buffer-registry-get-symbol tree-buf-name) + (delete tree-buf-name + ecb-tree-do-not-leave-window-after-select--internal))) + (message "Selections leave the tree-window of %s" tree-buf-name)) + (setq ecb-tree-do-not-leave-window-after-select--internal + (append ecb-tree-do-not-leave-window-after-select--internal + (list (ecb-ecb-buffer-registry-get-symbol tree-buf-name)))) + (message "Selections don't leave the tree-window of %s." tree-buf-name))) + (message "Point must stay in an ECB tree-buffer!")))) + +(defun ecb-common-tree-buffer-modeline-menu-creator (buf-name) + "Return a menu for the modeline of all ECB-tree-buffers." + '((delete-other-windows "Maximize Window Above") + (ecb-redraw-layout-preserving-compwin-state "Display All ECB-windows"))) + +(defun ecb-common-after-tree-buffer-create-actions () + "Things which should be performed after creating a tree-buffer. +The tree-buffer is the current buffer." + (local-set-key (kbd "C-t") 'ecb-toggle-do-not-leave-window-after-select) + (if ecb-running-xemacs + ;; TODO: Klaus Berndl : Is it necessary to make + ;; modeline-map buffer-local for current buffer first?! + (define-key modeline-map + '(button2up) + 'ecb-toggle-maximize-ecb-window-with-mouse) + (local-set-key [mode-line mouse-2] + 'ecb-toggle-maximize-ecb-window-with-mouse))) + + + + +;;==================================================== +;; Mouse callbacks +;;==================================================== + +(defun ecb-tree-buffer-node-select-callback (node + mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name) + "This is the callback-function ecb.el gives to every tree-buffer to call +when a node has been selected. This function does nothing if the click +combination is invalid \(see `ecb-interpret-mouse-click'." + (let* ((ecb-button-list (ecb-interpret-mouse-click mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name)) + (ecb-button (nth 0 ecb-button-list)) + (shift-mode (nth 1 ecb-button-list)) + (meta-mode (nth 2 ecb-button-list)) + (keyboard-p (equal (nth 3 ecb-button-list) 'keyboard)) + (maximized-p (ecb-buffer-is-maximized-p tree-buffer-name)) + (select-callbacks (ecb-tree-buffer-callbacks-alist-of-type 'select)) + (callback-fcn nil)) + ;; we need maybe later that something has clicked in a tree-buffer, e.g. + ;; in `ecb-handle-major-mode-visibilty'. + (setq ecb-item-in-tree-buffer-selected t) + (if (not keyboard-p) + (setq ecb-layout-prevent-handle-ecb-window-selection t)) + + ;; first we dispatch to the right action + (when ecb-button-list + (setq callback-fcn + (ecb-member-of-symbol/value-list tree-buffer-name + select-callbacks + 'car + 'cdr)) + (when (functionp callback-fcn) + (funcall callback-fcn node ecb-button nil shift-mode meta-mode))) + + ;; now we go back to the tree-buffer but only if all of the following + ;; conditions are true: + ;; 1. The ecb-windows are now not hidden + ;; 2. The tree-buffer-name is contained in + ;; ecb-tree-do-not-leave-window-after-select--internal + ;; 3. Either it is not the ecb-directories-buffer-name or + ;; at least `ecb-show-sources-in-directories-buffer-p' is true and the + ;; hitted node is a sourcefile + (when (and (not (ecb-windows-all-hidden)) + (ecb-member-of-symbol/value-list + tree-buffer-name + ecb-tree-do-not-leave-window-after-select--internal) + (or (not (ecb-string= tree-buffer-name ecb-directories-buffer-name)) + (and (ecb-show-sources-in-directories-buffer-p) + (= ecb-directories-nodetype-sourcefile + (tree-node->type node))))) + ;; If there is currently no maximized window then we can savely call + ;; `ecb-goto-ecb-window'. If we have now a maximized window then there + ;; are two possibilities: + ;; - if it is not equal to the maximzed tree-buffer before the selection + ;; then we must maximi + (if (and maximized-p + (not (ecb-buffer-is-maximized-p tree-buffer-name))) + (ecb-maximize-ecb-buffer tree-buffer-name t) + (ecb-goto-ecb-window tree-buffer-name)) + (tree-buffer-remove-highlight)))) + +(defun ecb-tree-buffer-node-collapsed-callback (node + mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name) + "This is the callback-function ecb.el gives to every tree-buffer to call +when a node has been collapsed." + (let* ((ecb-button-list (ecb-interpret-mouse-click mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name)) + (keyboard-p (equal (nth 3 ecb-button-list) 'keyboard))) + (if (not keyboard-p) + (setq ecb-layout-prevent-handle-ecb-window-selection t)))) + +(defun ecb-tree-buffer-node-expand-callback (node + mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name) + "This is the callback-function ecb.el gives to every tree-buffer to call +when a node should be expanded. This function does nothing if the click +combination is invalid \(see `ecb-interpret-mouse-click')." + (let* ((ecb-button-list (ecb-interpret-mouse-click mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name)) + (ecb-button (nth 0 ecb-button-list)) + (shift-mode (nth 1 ecb-button-list)) + (meta-mode (nth 2 ecb-button-list)) + (keyboard-p (equal (nth 3 ecb-button-list) 'keyboard)) + (expand-callbacks (ecb-tree-buffer-callbacks-alist-of-type 'expand)) + (callback-fcn nil)) + (if (not keyboard-p) + (setq ecb-layout-prevent-handle-ecb-window-selection t)) + ;; we just dispatch to the right action + (when ecb-button-list + (setq callback-fcn + (ecb-member-of-symbol/value-list tree-buffer-name + expand-callbacks + 'car + 'cdr)) + (when (functionp callback-fcn) + (funcall callback-fcn node ecb-button nil shift-mode meta-mode))))) + +(defun ecb-interpret-mouse-click (mouse-button + shift-pressed + control-pressed + meta-pressed + tree-buffer-name) + "Converts the physically pressed MOUSE-BUTTON \(1 = mouse-1, 2 = mouse-2, 0 = +no mouse-button but the keys RET or TAB) to ECB-mouse-buttons: either primary +or secondary mouse-button depending on the value of CONTROL-PRESSED and the +setting in `ecb-primary-secondary-mouse-buttons'. Returns a list +'\( ) where is +either 1 \(= primary) or 2 \(= secondary) and and are +non nil if SHIFT-PRESSED rsp. META-PRESSED is non nil. is either +'mouse or 'keyboard dependent if the uses has used the mouse rsp. the keyboard +in the tree-buffer. For an invalid and not accepted click combination nil is +returned. + +Note: If MOUSE-BUTTON is 0 \(means no mouse-button but a key like RET or TAB +was hitted) then CONTROL-PRESSED is interpreted as ECB-button 2. + +Currently the fourth argument TREE-BUFFER-NAME is not used here." + (if (eq mouse-button 0) + (list (if control-pressed 2 1) shift-pressed meta-pressed 'keyboard) + (if (and (not (eq mouse-button 1)) (not (eq mouse-button 2))) + nil + (case ecb-primary-secondary-mouse-buttons + (mouse-1--mouse-2 + (if control-pressed + nil + (list mouse-button shift-pressed meta-pressed 'mouse))) + (mouse-1--C-mouse-1 + (if (not (eq mouse-button 1)) + nil + (list (if control-pressed 2 1) shift-pressed meta-pressed 'mouse))) + (mouse-2--C-mouse-2 + (if (not (eq mouse-button 2)) + nil + (list (if control-pressed 2 1) shift-pressed meta-pressed 'mouse))) + (otherwise nil))))) + +(defun ecb-show-minibuffer-info (node window when-spec) + "Checks if any info about the current node in the ECB-window WINDOW should +be displayed. WHEN-SPEC must have the same format as the car of +`ecb-directories-show-node-info'." + (or (eq when-spec 'always) + (and (eq when-spec 'if-too-long) + window + (>= (tree-node-linelength node) + (window-width window))))) + + +(tree-buffer-defpopup-command ecb-maximize-ecb-window-menu-wrapper + "Expand the current ECB-window from popup-menu." + (ecb-maximize-ecb-buffer (buffer-name (current-buffer)) t)) + +;; stealthy mechanism + +(defvar ecb-stealthy-function-list nil + "List of functions which ECB runs stealthy. Do not modify this variable! +This variable is autom. set by the macro `defecb-stealthy'!") + +(defvar ecb-stealthy-function-state-alist nil + "Alist which stores the state of each function of +`ecb-stealthy-function-list'. Do not add new items to this variable because +this is autom. done by the macro `defecb-stealthy'!") + +(defun ecb-stealthy-function-list-add (fcn) + (add-to-list 'ecb-stealthy-function-list fcn)) + +(defun ecb-stealthy-function-state-alist-add (fcn) + (add-to-list 'ecb-stealthy-function-state-alist + (cons fcn 'done))) + +(defun ecb-stealthy-function-state-get (fcn) + "Getter for `ecb-stealthy-function-state-alist'. Return state for the +stealthy function FCN." + (cdr (assoc fcn ecb-stealthy-function-state-alist))) + +(defun ecb-stealthy-function-state-set (fcn state) + "Setter for `ecb-stealthy-function-state-alist'. Set STATE for the +stealthy function FCN. Return STATE." + (setcdr (assoc fcn ecb-stealthy-function-state-alist) state)) + +(defun ecb-stealthy-function-p (fcn) + "Return not nil if FCN is a stealthy function defined with +`defecb-stealthy'." + (member fcn ecb-stealthy-function-list)) + +(defun ecb-stealthy-function-state-init (&optional fcn state) + "Reset the state of stealthy functions. If first optional arg FCN is a +stealthy function then only the state of this function is reset - otherwise +all stealthy functions of `ecb-stealthy-function-list' are reset. If second +optional arg STATE is nil then the state will be reset to the special state +'restart - otherwise to the value STATE." + (if (and fcn (ecb-stealthy-function-p fcn)) + (ecb-stealthy-function-state-set fcn (or state 'restart)) + (dolist (f ecb-stealthy-function-list) + (ecb-stealthy-function-state-set f (or state 'restart))))) + +(defmacro defecb-stealthy (name docstring &rest body) + "Define a so called stealthy function with NAME. This function will be +registered by this macro in `ecb-stealthy-function-list' and +`ecb-stealthy-function-state-alist'. During the evaluation of BODY the +variable `state' will be bound and initialized with the stealthy state. BODY +can use and modify `state'. After evaluating BODY `state' will be +automatically saved so its available at the runtime of this stealthy function. +BODY will only be evaluated if `state' is not 'done. BODY should be designed +to be interruptable by the user, so its recommended to use for this +`ecb-exit-on-input' ans `ecb-throw-on-input' \(see example in +`ecb-test-throw-on-input'). If BODY completes then BODY has to set `state' to +the special value 'done! If BODY has been interrupted then `state' can have an +arbitrary value which will be autom. stored and at next runtime of the +stealthy function NAME `state' will be initialized with this stored value. If +`state' is initialized with the special value 'restart then this means the +stealthy function should start from scratch because an eventually stored state +is not longer valid. If the stealthy function sets `state' to 'done then this +function will first being called after the state for this function has been +reset to something else than 'done \(mostly to 'restart)\; such a reset of the +state for a stealthy function can be done by any code and must be done via +`ecb-stealthy-function-state-init'!" + `(progn + (unless (fboundp (quote ,name)) + (ecb-stealthy-function-list-add (quote ,name)) + (ecb-stealthy-function-state-alist-add (quote ,name))) + (eval-and-compile + (unless (fboundp (quote ,name)) + (defun ,name nil + ,docstring + (let ((state (ecb-stealthy-function-state-get (quote ,name)))) + (unless (equal state 'done) + ,@body) + (ecb-stealthy-function-state-set (quote ,name) state))))))) + +(put 'defecb-stealthy 'lisp-indent-function 1) + +(defvar ecb-stealthy-update-running nil + "Recursion avoidance variable for stealthy performance.") + +(defecb-autocontrol/sync-function ecb-stealthy-updates nil nil nil + "Run all functions in the stealthy function list. +Each function returns 'done if it completes successfully, or something else if +interrupted by the user \(i.e. the function has been interrupted by the +user). If a function is interrupted then `ecb-stealthy-function-list' is +rotated so the interrupted function is the first element so the next stealthy +run starts with this interrupted function." + (unless ecb-stealthy-update-running + (let ((l ecb-stealthy-function-list) + (ecb-stealthy-update-running t) + ;; necessary because timers set this locally to t to prevent + ;; timer-actions from being quitted by C-g. Our potentially long + ;; lasting actions must be quit-able! + (inhibit-quit nil)) + (while (and l (equal 'done (funcall (car l)))) + (setq l (cdr l))) + ;; if l is nil this means all functions have successfully completed - + ;; otherwise we ensure that next time we start with the interrupted + ;; function. + (when l + (setq ecb-stealthy-function-list + (ecb-rotate ecb-stealthy-function-list (car l))))))) + +; +;; generation of nodes rsp. of attributes of nodes + +(defun ecb-generate-node-name (text-name first-chars icon-name name-of-buffer) + "Generate a new name from TEXT-NAME by adding an appropriate image according +to ICON-NAME to the first FIRST-CHARS of TEXT-NAME. If FIRST-CHARS is < 0 then +a string with length abs\(FIRST-CHARS) is created, the image is applied to +this new string and this \"image\"-string is added to the front of TEXT-NAME. +If no image can be found for ICON-NAME then the original TEXT-NAME is +returned. NAME-OF-BUFFER is the name of the tree-buffer where the resulting +node-name will be displayed. + +If an image is added then two text-properties are added to the FIRST-CHARS of +the returned string: 'tree-buffer-image-start which holds 0 as value and +'tree-buffer-image-length which holds the absolute value of FIRST-CHARS +value." + (let ((image nil) + (ret nil)) + (with-current-buffer name-of-buffer + (setq image (and icon-name (tree-buffer-find-image icon-name))) + (setq ret + (if image + (if (> first-chars 0) + (tree-buffer-add-image-icon-maybe + 0 first-chars text-name image) + (concat (tree-buffer-add-image-icon-maybe + 0 (- first-chars) + (make-string (- first-chars) ? ) image) + text-name)) + text-name))) + ret)) + + +(silentcomp-provide 'ecb-common-browser) + +;;; ecb-common-browser.el ends here diff --git a/conf/emacs.d/ecb/ecb-compatibility.el b/conf/emacs.d/ecb/ecb-compatibility.el new file mode 100644 index 0000000..b7a933f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-compatibility.el @@ -0,0 +1,369 @@ +;;; 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 +;; Maintainer: Klaus Berndl +;; 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 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 : 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 : 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 : 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 : 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 : +;; *** 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 diff --git a/conf/emacs.d/ecb/ecb-compilation.el b/conf/emacs.d/ecb/ecb-compilation.el new file mode 100644 index 0000000..2feae95 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-compilation.el @@ -0,0 +1,312 @@ +;;; 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 +;; Klaus Berndl +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 : 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 : 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 diff --git a/conf/emacs.d/ecb/ecb-create-layout.el b/conf/emacs.d/ecb/ecb-create-layout.el new file mode 100644 index 0000000..97ab662 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-create-layout.el @@ -0,0 +1,861 @@ +;;; 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 +;; Maintainer: Klaus Berndl +;; 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. + + : 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. + + : 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 + +;; Author: Klaus Berndl +;; Maintainer: Klaus Berndl +;; 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 "") + 'delete-backward-char) + (define-key ecb-create-layout-mode-map (kbd "") + '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 "") 'backward-char) + (define-key ecb-create-layout-mode-map (kbd "") + 'ecb-create-layout-forward-char) + (define-key ecb-create-layout-mode-map (kbd "") 'previous-line) + (define-key ecb-create-layout-mode-map (kbd "") '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-") +;; '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 : 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 : 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 diff --git a/conf/emacs.d/ecb/ecb-cycle.el b/conf/emacs.d/ecb/ecb-cycle.el new file mode 100644 index 0000000..0f1e451 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-cycle.el @@ -0,0 +1,137 @@ +;;; 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 +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 diff --git a/conf/emacs.d/ecb/ecb-eshell.el b/conf/emacs.d/ecb/ecb-eshell.el new file mode 100644 index 0000000..ad9ecfa --- /dev/null +++ b/conf/emacs.d/ecb/ecb-eshell.el @@ -0,0 +1,394 @@ +;;; 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 +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 : 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 diff --git a/conf/emacs.d/ecb/ecb-examples.el b/conf/emacs.d/ecb/ecb-examples.el new file mode 100644 index 0000000..cff6e48 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-examples.el @@ -0,0 +1,560 @@ +;;; ecb-examples.el --- examples for using ECB with Elisp + +;; Copyright (C) 2000 - 2005 Jesper Nordenberg, +;; Klaus Berndl, +;; Free Software Foundation, Inc. + +;; Author: Klaus Berndl +;; Maintainer: Klaus Berndl +;; 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 : |[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 diff --git a/conf/emacs.d/ecb/ecb-face.el b/conf/emacs.d/ecb/ecb-face.el new file mode 100644 index 0000000..4d62b80 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-face.el @@ -0,0 +1,768 @@ +;;; 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 +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 : 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 diff --git a/conf/emacs.d/ecb/ecb-file-browser.el b/conf/emacs.d/ecb/ecb-file-browser.el new file mode 100644 index 0000000..63179b1 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-file-browser.el @@ -0,0 +1,4898 @@ +;;; ecb-file-browser.el --- the file-browser of Emacs + +;; Copyright (C) 2000 - 2005 Jesper Nordenberg, +;; Klaus Berndl, +;; Free Software Foundation, Inc. + +;; Author: Jesper Nordenberg +;; Klaus Berndl +;; Maintainer: Klaus Berndl +;; Keywords: browser, code, programming, tools +;; Created: 2000 + +;; 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 the code of the file-browser of ECB + + +(require 'ecb-util) +(require 'tree-buffer) +(require 'ecb-mode-line) +(require 'ecb-navigate) +(require 'ecb-face) +(require 'ecb-speedbar) +(require 'ecb-layout) +(require 'ecb-common-browser) + +;; various loads +(require 'assoc) + +(eval-when-compile + ;; to avoid compiler grips + (require 'cl)) + +(eval-when-compile + (require 'silentcomp)) + +(silentcomp-defun ecb-speedbar-update-contents) +(silentcomp-defun vc-load-vc-hooks) +;; (silentcomp-defvar vc-svn-admin-directory) +(silentcomp-defun substring-no-properties) +(silentcomp-defun vc-find-root) +(silentcomp-defun vc-file-clearprops) +(silentcomp-defun vc-state) +(silentcomp-defvar dired-directory) + +;;==================================================== +;; Customization +;;==================================================== + + +(defgroup ecb-directories nil + "Settings for the directories-buffer in the Emacs code browser." + :group 'ecb + :prefix "ecb-") + +(defgroup ecb-sources nil + "Settings for the sources-buffers in the Emacs code browser." + :group 'ecb + :prefix "ecb-") + +(defgroup ecb-history nil + "Settings for the history-buffer in the Emacs code browser." + :group 'ecb + :prefix "ecb-") + +(defgroup ecb-version-control nil + "Settings for the version-control support in the ECB." + :group 'ecb + :prefix "ecb-") + +(defcustom ecb-source-path nil + "*Paths where to find code sources. +Each path can have an optional alias that is used as it's display name. If no +alias is set, the path is used as display name. + +Lisp-type of this option: The value must be a list L whereas each element of L +is either +- a simple string which has to be the full path of a directory \(this string + is displayed in the directory-browser of ECB) or +- a 2-element list whereas the first element is the full path of a directory + \(string) and the second element is an arbitrary alias \(string) for this + directory which is then displayed instead of the underlying directory." + :group 'ecb-directories + :group 'ecb-most-important + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (set symbol value) + (if (and (boundp 'ecb-minor-mode) + ecb-minor-mode + (functionp 'ecb-update-directories-buffer)) + (ecb-update-directories-buffer)))) + :type '(repeat (choice :tag "Display type" + :menu-tag "Display type" + (directory :tag "Path") + (list :tag "Path with alias" + (directory :tag "Path") + (string :tag "Alias"))))) + +(defcustom ecb-add-path-for-not-matching-files '(t . nil) + "*Add path of a file to `ecb-source-path' if not already contained. +This is done during the auto. windows synchronization which happens if a file +is opened not via the file/directory-browser of ECB. In such a situation ECB +adds the path of the new file auto. to `ecb-source-path' at least temporally +for the current Emacs session. This option defines two things: +1. Should only the root-part \(which means for Unix-like systems always '/' + and for windows-like systems the drive) of the new file be added as + source-path to `ecb-source-path' or the whole directory-part? For + remote-files \(e.g. tramp, ange-ftp- or efs-files) the root-part is the + complete host-part + the root-dir at that host \(example: + /berndl@ecb.sourceforge.net:/ would be the root-part of + /berndl@ecb.sourceforge.net:/tmp/test.txt). +2. Should this path be added for future sessions too? + +The value of this option is a cons-cell where the car is a boolean for 1. and +the cdr is a boolean for 2. + +A value of not nil for the car \(1.) is reasonably if a user often opens files +not via the ECB-browser which are not located in any of the paths of +`ecb-source-path' because then only one path for each drive \(windows) or the +root-path \(unix) is added to the directory buffer of ECB." + :group 'ecb-directories + :type '(cons (boolean :tag "Add only root path") + (boolean :tag "Ask for saving for future sessions"))) + + +(defvar ecb-source-path-functions nil + "List of functions to call for finding sources. +Each time the function `ecb-update-directories-buffer' is called, the +functions in this variable will be evaluated. Such a function must return +either nil or a list of strings where each string is a path.") + + +(defcustom ecb-display-default-dir-after-start t + "*Automatically display current default-directory after activating ECB. +If a file-buffer is displayed in the edit-window then ECB synchronizes its +tree-buffers to this file-buffer - at least if the option `ecb-basic-buffer-sync' it +not nil. So for this situation `ecb-display-default-dir-after-start' takes no +effect but this option is for the case if no file-buffer is displayed in the +edit-window after startup: + +If true then ECB selects autom. the current default-directory after activation +even if no file-buffer is displayed in the edit-window. This is useful if ECB +is autom. activated after startup of Emacs and Emacs is started without a +file-argument. So the directory from which the startup has performed is auto. +selected in the ECB-directories buffer and the ECB-sources buffer displays the +contents of this directory." + :group 'ecb-directories + :type 'boolean) + + +(defcustom ecb-show-sources-in-directories-buffer '("left7" "left13" + "left14" "left15") + "*Show source files in directories buffer. +The value is either 'always or 'never or a list of layout-names for which +layouts sources should be displayed in the directories window." + :group 'ecb-directories + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (set symbol value) + (if (and ecb-minor-mode + (functionp 'ecb-set-selected-directory) + ecb-path-selected-directory) + (ecb-set-selected-directory ecb-path-selected-directory t)))) + :type '(radio (const :tag "Always" :value always) + (const :tag "Never" :value never) + (repeat :tag "With these layouts" + (string :tag "Layout name")))) + + +(defcustom ecb-directories-show-node-info '(if-too-long . path) + "*When to display which node-info in the directories-buffer. +Define which node info should be displayed after moving the mouse +over a node \(or after a shift click onto the node) in the +directories-buffer. + +You can define \"when\" a node-info should be displayed: +- always: Node info is displayed by moving with the mouse over a node. +- if-too-long: Node info is only displayed by moving with the mouse over a + node does not fit into the window-width of the tree-buffer window. + In the ECB directories buffer this means also if a node is shortend or if + the node has an alias \(see `ecb-source-path'). +- shift-click: Node info is only displayed after a shift click with the + primary mouse button onto the node. +- never: Node info is never displayed. + +You can define \"which\" info should be displayed: +- name: Only the full node-name is displayed. +- path: The full-path of the node is displayed. + +Do NOT set this option directly via setq but use always customize!" + :group 'ecb-directories + :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 path" :value path)))) + +(defcustom ecb-directories-update-speedbar 'auto + "*Update an integrated speedbar after selecting a directory. +If not nil then an integrated speedbar will be updated after selecting a +directory in the ECB-directories-buffer so the speedbar displays the contents +of that directory. + +Of course this option makes only sense if the integrated speedbar is displayed +in addition to the ECB-directories-buffer. + +This option can have the following values: +- t: Always update speedbar. +- nil: Never update speedbar. +- auto: Update when senseful \(see scenarios below) +- : A user-defined function. The function is called after a + directory is selected, gets the selected directory as argument and has to + return nil if the the integrated speedbar should NOT be updated. + +Two example-scenarios where different values for this option can be senseful: + +If `ecb-show-sources-in-directories-buffer' is not nil or you have a layout +where an ECB-sources-buffer is visible then you probably want to use the +ECB-directories-buffer \(and/or the ECB-sources-buffer) for directory- and +file-browsing. If you have in addition an integrated speedbar running then you +probably want to use speedbar instead of the ECB-methods-buffer for +source-content-browsing. In this case you probably want the speedbar not be +updated because you do not need speedbar reflecting the current-directory +contents but only the contents of the currently selected source-file and the +integrated speedbar updates itself autom. for the latter one! + +If `ecb-show-sources-in-directories-buffer' is nil and there is also no +ECB-sources-buffer visible in the current layout then you probably want to use +an integrated speedbar for browsing directory-contents \(i.e. the files) and +file-contents \(instead of the ECB-methods-buffer for example). In this case +you probably want the speedbar updated because you need speedbar reflecting +the current-directory contents so you can select files. + +The value 'auto \(see above) takes exactly these two scenarios into account." + :group 'ecb-directories + :type '(radio (const :tag "Always" :value t) + (const :tag "Never" :value nil) + (const :tag "Automatic" :value auto) + (function :tag "Custom function"))) + + +(defun ecb-show-sources-in-directories-buffer-p () + "Return not nil if in current layout sources are shown in the +directories-buffer." + (case ecb-show-sources-in-directories-buffer + (never nil) + (always t) + (otherwise + (and (listp ecb-show-sources-in-directories-buffer) + (member ecb-layout-name + ecb-show-sources-in-directories-buffer))))) + +(defcustom ecb-cache-directory-contents '(("^/\\([^:/]*@\\)?\\([^@:/]*\\):.*" . 0) + (".*" . 50)) + "*Cache contents of certain directories. +This can be useful if `ecb-source-path' contains directories with many files +and subdirs, especially if these directories are mounted net-drives \(\"many\" +means here something > 1000, dependent of the speed of the net-connection and +the machine). Or if it contains remote-source-paths which means paths in the +sense of tramp, ange-ftp or efs. For these directories actualizing the +sources- and/or directories- buffer of ECB \(if displayed in current layout!) +can slow down dramatically so a caching increases speed a lot. + +The value of this option is a list where the each element is a cons-cell and +looks like: + \( . ) +: Regular expression a directory must match to be cached. +: Number of directory contents must exceed this number. + +A directory will only be cached if and only if the directory-name matches +one regexp of this option and its content-number exceeds the related +threshold AND the directory-name does not match and regexp of +`ecb-cache-directory-contents-not'! + +The cache entry for a certain directory will be refreshed and actualized only +by using the POWER-click \(see `ecb-primary-secondary-mouse-buttons') in the +directories-buffer of ECB. + +Default-value: ECB caches the contents of all remote directories regardless of +the size and all other directories if more than 50 entries are contained. + +Examples: + +An entry \(\"/usr/home/john_smith/bigdir*\" . 1000) means the contents of +every subdirectory of the home-directory of John Smith will be cached if the +directory contains more than 1000 entries and its name begins with \"bigdir\". + +An entry \(\".*\" . 1000) caches every directory which has more than 1000 +entries. + +An entry \(\"^/\\\\\(\[^:/]*@\\\\)?\\\\\(\[^@:/]*\\\\):.*\" . 0) caches every +remote \(in the sense of tramp, ange-ftp or efs) directory regardless of the +number of entries. + +Please note: If you want your home-dir being cached then you MUST NOT use +\"~\" because ECB tries always to match full path-names!" + :group 'ecb-directories + :group 'ecb-most-important + :type `(repeat (cons (regexp :tag "Directory-regexp") + (integer :tag "Filenumber threshold" :value 1000)))) + + +(defcustom ecb-cache-directory-contents-not nil + "*Do not cache the contents of certain directories. +The value of this option is a list where the each element is a regular +expression a directory must match if it should not being cached. + +If a directory-name matches at least one of the regexps of this option the +directory-contents will never being cached. See `ecb-cache-directory-contents' +to see when a directory will be cached. + +This option can be useful when normally all directories with a certain amount +of content \(files and subdirs) should be cached but some special directories +not. This can be achieved by: +- setting `ecb-cache-directory-contents' to \(\".*\" . 500): Caches all + directories with more then 500 entries +- setting `ecb-cache-directory-contents-not' to a value which matches these + directories which should not being cached \(e.g. \(\"/usr/home/john_smith\") + excludes the HOME-directory of John Smith from being cached). + +Please note: If you want your home-dir exclude from being cached then you MUST +NOT use \"~\" because ECB tries always to match full path-names!" + :group 'ecb-directories + :type `(repeat (regexp :tag "Directory-regexp"))) + +(defcustom ecb-ping-program "ping" + "Program to send network test packets to a host. +The set ping-program is used to test if a remote host of a remote +path \(e.g. a tramp-, ange-ftp- or efs-path) is accessible. See +also `ecb-ping-options'." + :group 'ecb-directories + :type 'string) + +(defcustom ecb-ping-options + (append (cond ((memq system-type (list 'linux 'gnu/linux 'irix)) + (list "-c" "2")) + ((eq system-type 'windows-nt) + (list "-n" "2"))) + (list "HOST")) + "List of options for the ping program. +These options have to ensure that the program set in `ecb-ping-program' only +emits as few as possible ICMP packets, ideally exactly 1. These options must +ensure the ping-program doesn't emit an endless sequence of packets! + +These sequence of options must fit the required argument- and options-list of +the specified ping-program \(see `ecb-ping-program'). Therefore at least on of +these options must be the string HOST \(uppercase) which will be replaced +internally by ECB with that host-name the accessibility of this host +has to be tested. So ensure that this 'HOST'-option is in the right place of +the options-sequence - check the manual of your ping-program! + +Default-value of this option is a list with just one element +HOST, which means the ping-program of `ecb-ping-program' will be +called with one argument which will be the host-name which should be +tested. + +See also `ecb-ping-program'." + :group 'ecb-directories + :type '(repeat string)) + +(defcustom ecb-host-accessible-check-valid-time nil + "Time in seconds a cached accessible-state of a remote host is valid. +This option is a list where each element specifies how long for a certain +remote host the cached ping-state \(i.e. if the host is accessible or not) +should be valid. During this time-intervall ECB pings such a remote host only +once, all other checks use the cached value of that real check. But it the +cached value is older than the value of this option ECB will ping again. + +Per default ECB discards after 1 minute the cached ping-state of each remote +host. But if you are sure that a certain remote host is always accessible +\(i.e. means in consequence that you are always online when working with ECB +and remote-paths) then add an entry to this option with a high valid-interval. + +Examples: An entry \(\".*sourceforge.*\" . 3600) ensures that all remote hosts +machting the string \"sourceforge\" will only once pinged during one hour. Or +\(\".*\" . 300) would ensure that every remote host would be pinged only once +during 5 minutes." + :group 'ecb-directories + :type '(repeat (cons (regexp :tag "Remote host regexp") + (integer :tag "Valid interval")))) + +(defcustom ecb-prescan-directories-for-emptyness 'unless-remote + "*Prescan directories for emptyness. +ECB does this so directories are displayed as empty in the directories-buffer +even without user-interaction \(i.e. in previous ECB-versions the emptyness of +a directory has been first checked when the user has clicked onto a +directory). ECB optimizes this check as best as possible but if a directory +contains a lot of subdirectories which contain in turn a lot of entries, then +expanding such a directory or selecting it would take of course more time as +without this check - at least at the first time \(all following selects of a +directory uses the cached information if its subdirectories are empty or not). +Therefore ECB performs this check stealthy \(see `ecb-stealthy-tasks-delay') +so normally there should no performance-decrease or additional waiting-time +for the user. There is one exception: For remote directories \(in the sense of +tramp, ange-ftp, or efs) this check can descrease performance even if +performed stealthy and interruptable. Therefore this option offers three +possible settings: + + t: Switch on this feature + + 'unless-remote: Switch on this feature but not for remote directories. The + term \"remote\" means here directories which are used via tramp, ange-ftp or + efs. So mounted directories are counted not as remote directories here even + if such a directory is maybe hosted on a remote machine. But normally only + directories in a LAN are mounted so there should be no performance-problems + with such mounted directories. + + nil: Switch off this feature completely. + +The option `ecb-prescan-directories-exclude-regexps' offers are more fine +granularity to exclude certain directories from this prescan." + :group 'ecb-directories + :group 'ecb-most-important + :type '(radio (const :tag "Switch on" :value t) + (const :tag "Switch off for remote directories" :value unless-remote) + (const :tag "Switch off completely" :value nil))) + +(defcustom ecb-prescan-directories-exclude-regexps nil + "*Which directories should be excluded from the empty-prescan. +If a directory matches any of the regexps of this option it will not be +prescanned for emptyness - This option takes only effect if +`ecb-prescan-directories-for-emptyness' is not nil." + :group 'ecb-directories + :type '(repeat (regexp :tag "Directory-regexp"))) + +(defsubst ecb-directory-should-prescanned-p (dir) + "Return not nil if DIR should be prescanned for emptyness. +The check is performed according to the settings in the options +`ecb-prescan-directories-for-emptyness' and +`ecb-prescan-directories-exclude-regexps'." + (and (or (equal t ecb-prescan-directories-for-emptyness) + (and (equal 'unless-remote ecb-prescan-directories-for-emptyness) + (not (ecb-remote-path dir)))) + (not (ecb-match-regexp-list dir ecb-prescan-directories-exclude-regexps)))) + +(defcustom ecb-grep-function (cond ((fboundp 'lgrep) + 'lgrep) + ((fboundp 'igrep) + 'igrep) + (t 'grep)) + "*Function used for performing a grep. +The popup-menu of the tree-buffers \"Directories\", \"Sources\" and +\"History\" offer to grep the \"current\" directory: +- Directory-buffer: The grep is performed in the current popup-directory after + clicking the right mouse-button onto a node. +- Sources-buffer: The grep is performed in the current selected directory. +- History-buffer: The grep is performed in the directory of the current + popup-source after clicking the right mouse-button onto a node. + +Conditions for such a function: +- The function is called interactively via `call-interactively' +- During the function-call the `default-directory' is temp. set to that + directory mentioned above with \"... is performed in ...\", i.e. the + function can use the value of `default-directory' to determine the directory + to grep. +- The function must read all it's arguments itself. +- The function is completely responsible for performing the grep itself and + displaying the results. + +Normally one of the standard-grepping functions like `lgrep', +`grep' or `igrep' \(or some wrappers around it) should be used!" + :group 'ecb-directories + :group 'ecb-sources + :type 'function) + +(defcustom ecb-grep-recursive-function (cond ((fboundp 'rgrep) + 'rgrep) + ((fboundp 'igrep-find) + 'igrep-find) + (t 'grep-find)) + "*Function used for performing a recursive grep. +For more Details see option `ecb-grep-function' and replace \"grep\" with +\"recursive grep\". + +Normally one of the standard-grepping functions like `rgrep', +`grep-find' or `igrep-find' \(or some wrappers around it) should +be used!" + :group 'ecb-directories + :group 'ecb-sources + :type 'function) + +(defcustom ecb-after-directory-change-hook nil + "*Hook which run directly after the selected directory has changed. +This means not onyl after a click onto a directory in the directory-window of +ECB but it means this hook runs always when the current directory changes +regardless of the trigger of this change. So for example it runs also when you +just switches from one buffer to another via `switch-to-buffer' or +`switch-to-buffer-other-window' and the directory of these filebuffers is +different but only when auto-synchronizing of the ECB-windows is on (see +`ecb-basic-buffer-sync'). It runs not when switching between buffers and the +associated files reside in the same directory. + +Each function added to this hook will be called with two arguments: The +directory which was current _before_ the directory-change-trigger and the +directory which was now the current \(i.e. after the trigger). + +Example: If you switch from a filebuffer \"~/.emacs\" to a filebuffer +\"/tmp/test.txt\" then the functions of this hook will be called with the +two arguments \"~\" and \"/tmp\"." + :group 'ecb-directories + :type 'hook) + +(defcustom ecb-sources-perform-read-only-check 'unless-remote + "*Check if source-items in the tree-buffers are read-only. +If a sourcefile is read-only then it will be displayed with that face set in +the option `ecb-source-read-only-face'. + +Because this check can be take some time if files are used via a mounted +net-drive ECB performs this check stealthy \(see `ecb-stealthy-tasks-delay') +so normally there should no performance-decrease or additional waiting-time +for the user. But to get sure this option offers three choices: t, +'unless-remote and nil. See `ecb-prescan-directories-for-emptyness' for an +explanation for these three choices. + +The option `ecb-read-only-check-exclude-regexps' offers are more fine +granularity to exclude the sources of certain directories from the read-only +state-check." + :group 'ecb-sources + :group 'ecb-directories + :group 'ecb-most-important + :type '(radio (const :tag "Switch on" :value t) + (const :tag "Switch off for remote directories" :value unless-remote) + (const :tag "Switch off completely" :value nil))) + +(defcustom ecb-read-only-check-exclude-regexps nil + "*Which directories should be excluded from the sources-read-only-check. +If a directory matches any of the regexps of this option their sources will +not be checked if they are writable - This option takes only effect if +`ecb-sources-perform-read-only-check' is not nil." + :group 'ecb-sources + :group 'ecb-directories + :type '(repeat (regexp :tag "Directory-regexp"))) + +(defsubst ecb-sources-read-only-check-p (dir) + "Return not nil if the sources of DIR should be checked for read-only-state. +The check is performed according to the settings in the options +`ecb-sources-perform-read-only-check' and +`ecb-read-only-check-exclude-regexps'." + (and (or (equal t ecb-sources-perform-read-only-check) + (and (equal 'unless-remote ecb-sources-perform-read-only-check) + (not (ecb-remote-path dir)))) + (not (ecb-match-regexp-list dir ecb-read-only-check-exclude-regexps)))) + +(defcustom ecb-directories-buffer-name " *ECB Directories*" + "*Name of the ECB directory buffer. +Because it is not a normal buffer for editing you should enclose the name with +stars, e.g. \"*ECB Directories*\". + +If it is necessary for you you can get emacs-lisp access to the buffer-object of +the ECB-directory-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-directories + :type 'string) + + +(defcustom ecb-excluded-directories-regexps '("^\\(CVS\\|\\.[^xX]*\\)$") + "*Directories that should not be included in the directories list. +The value of this variable should be a list of regular expressions." + :group 'ecb-directories + :type '(repeat (regexp :tag "Directory-regexp"))) + +(defsubst ecb-check-dir-exclude (dir) + (ecb-match-regexp-list dir ecb-excluded-directories-regexps)) + +(defcustom ecb-auto-expand-directory-tree 'best + "*Automatically expand the directory tree to the current source file. +There are three options: +- best: Expand the best-matching source-path +- first: Expand the first matching source-path +- nil: Do not automatically expand the directory tree." + :group 'ecb-directories + :type '(radio (const :tag "Best matching" + :value best) + (const :tag "First matching" + :value first) + (const :tag "No auto. expand" + :value nil))) + + +(defcustom ecb-sources-buffer-name " *ECB Sources*" + "*Name of the ECB sources buffer. +Because it is not a normal buffer for editing you should enclose the name with +stars, e.g. \"*ECB Sources*\". + +If it is necessary for you you can get emacs-lisp access to the buffer-object of +the ECB-sources-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-sources + :type 'string) + +(defcustom ecb-sources-show-node-info '(if-too-long . name) + "*When to display which node-info in the sources-buffer. +Define which node info should be displayed after moving the mouse +over a node \(or after a shift click onto the node) in the +sources-buffer. + +You can define \"when\" a node-info should be displayed: +See `ecb-directories-show-node-info' for the possible choices. + +You can define \"which\" info should be displayed: +- name: Only the full node-name is displayed. +- file-info: File infos for this file are displayed. +- file-info-full: Fill infos incl. full path for this file are displayed. + +Do NOT set this option directly via setq but use always customize!" + :group 'ecb-sources + :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 "File info" :value file-info) + (const :tag "File info \(full path)" + :value file-info-full)))) + +(defcustom ecb-sources-exclude-cvsignore nil + "*Specify if files contained in a .cvsignore should be excluded. +Value is a list of regular expressions or nil. If you want to exclude files +listed in a .cvsignore-file from being displayed in the ecb-sources-buffer +then specify a regexp for such a directory. + +If you want to exclude the contents of .cvsignore-files for every directory +then you should add one regexp \".*\" which matches every directory. + +If you never want to exclude the contents of .cvsignore-files then set this +option to nil. This is the default." + :group 'ecb-sources + :group 'ecb-directories + :type '(repeat (regexp :tag "Directory-regexp"))) + +(defcustom ecb-source-file-regexps + '((".*" . (("\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)") + ("^\\.\\(emacs\\|gnus\\)$")))) + "*Specifies which files are shown as source files. +This is done on directory-base, which means for each directory-regexp the +files to display can be specified. If more than one directory-regexp matches +the current selected directory then always the first one \(and its related +file-exclude/include-regexps) is used! If no directory-regexp matches then all +files are displayed for the currently selected directory. + +Important note: It is recommended that the *LAST* element of this list should +contain an always matching directory-regexp \(\".*\")! + +So the value of this option is a list of cons-cells where the car is a +directory regexp and the cdr is a 2 element list where the first element is a +list of exclude regexps and the second element is a list of include regexps. A +file is displayed in the sources-buffer of ECB iff: The file does not match +any of the exclude regexps OR the file matches at least one of the include +regexps. + +But regardless of the value of this option a file F is never displayed in the +sources-buffer if the directory matches `ecb-sources-exclude-cvsignore' +and the directory contains a file .cvsignore which contains F as an entry! + +There are three predefined and useful combinations of an exclude and include +regexp: +- All files +- All, but no backup, object, lib or ini-files \(except .emacs and .gnus). This + means all files except those starting with \".\", \"#\" or ending with + \"~\", \".elc\", \".obj\", \".o\", \".lib\", \".dll\", \".a\", \".so\". + (but including .emacs and .gnus) +- Common source file types (.c, .java etc.) +In addition to these predefined values a custom exclude and include +combination can be defined. Here each list must at least contain one regexp - +this can be a least the empty regexp \"\"! + +Tips for the directory- and file-regexps: \"$^\" matches no files/directories, +\".*\" matches all files/directories." + :group 'ecb-sources + :group 'ecb-most-important + :type '(repeat (cons :tag "Directory file-spec" + (regexp :tag "Directory regexp") + (choice :tag "Files to display" + :menu-tag "Files to display" + (const :tag "All files" + :value (("") (""))) + (const :tag "All, but no backups, objects, etc..." + :value (("\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)") ("^\\.\\(x?emacs\\|gnus\\)$"))) + (const :tag "Common source file types" + :value (("") ("\\(\\(M\\|m\\)akefile\\|.*\\.\\(java\\|el\\|c\\|cc\\|h\\|hh\\|txt\\|html\\|texi\\|info\\|bnf\\)\\)$"))) + (list :tag "Custom" + (repeat (regexp :tag "Exclude regexp" + :value "")) + (repeat (regexp :tag "Include regexp" + :value ""))))))) + + +(defcustom ecb-show-source-file-extension t + "*Show the file extension of source files." + :group 'ecb-sources + :type 'boolean) + +(defcustom ecb-sources-sort-method 'name + "*Defines how the source files are sorted. +- 'name: Sorting by name. +- 'extension: Sorting first by extension and then by name. +- nil: No sorting, means source files are displayed in the sequence returned by + `directory-files' \(called without sorting). +See also `ecb-sources-sort-ignore-case'." + :group 'ecb-sources + :type '(radio (const :tag "By name" + :value name) + (const :tag "By extension" + :value extension) + (const :tag "No sorting" + :value nil))) + +(defcustom ecb-sources-sort-ignore-case t + "*Ignore case for sorting the source-files of the Sources-buffer. +See also `ecb-sources-sort-method'." + :group 'ecb-sources + :type 'boolean) + +(defcustom ecb-history-buffer-name " *ECB History*" + "*Name of the ECB history buffer. +Because it is not a normal buffer for editing you should enclose the name with +stars, e.g. \"*ECB History*\". + +If it is necessary for you you can get emacs-lisp access to the buffer-object of +the ECB-history-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-history + :type 'string) + +(defcustom ecb-history-exclude-file-regexps '("TAGS$" "semantic\\.cache$") + "*List of regexps which exclude source-files from being historized. Be aware +that each always full filenames \(ie. incl. full path) are matched against +these regexps! Therefore be carefore with regexps beginning with ^!" + :group 'ecb-history + :type '(repeat (regexp :tag "Source-regexp"))) + +(defsubst ecb-check-filename-for-history-exclude (filename) + (ecb-match-regexp-list filename ecb-history-exclude-file-regexps)) + +(defcustom ecb-history-show-node-info '(always . name-path) + "*When to display which node-info in the history-buffer. +Define which node info should be displayed after moving the mouse +over a node \(or after a shift click onto the node) in the +history-buffer. + +You can define \"when\" a node-info should be displayed: +See `ecb-directories-show-node-info' for the possible choices. + +You can define \"which\" info should be displayed: +- name: Only the full node-name is displayed. +- path: The full-path of the node is displayed. +- name-path: The full node-name and the full-path is displayed. + +Do NOT set this option directly via setq but use always customize!" + :group 'ecb-history + :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 path" :value path) + (const :tag "Node-name \(Full path)" :value name-path)))) + +(defcustom ecb-history-make-buckets 'directory-with-source-path + "*Bucketize the entries of the history-buffer. + +There are several options how the bucketizing should be done: +- 'never: No bucketizing at all, ie. all entries of the history-buffer we be + displayed flat. +- 'directory: All entries with related filesources residing in the same + directory will be contained in a bucket named with that directory. +- 'directory-with-source-path: Same as 'directory but the best + matching source-path of the directory-window \(see + `ecb-source-path') substituts the matching part of the + directory with its alias \(if there is any set). For this a + special face is used \(see + `ecb-history-bucket-node-dir-soure-path-face'). +- 'mode: All entries with related buffers have the same + major-mode will be contained in a bucket named with that major-mode +- 'extension: All entries with related filesources having the + same extension will be contained in a bucket named with that extension + +If the value is a list of regular expressions then all entries where the +buffername matches the same regular expression will be contained in one +bucket. If the value is nil then this is interpreted as an empty list of +regular expressions! + +The default value is 'directory." + :group 'ecb-history + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (set symbol value) + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode) + (ecb-exec-in-window ecb-history-buffer-name + (ecb-add-buffers-to-history-new))))) + :type '(radio (const :tag "Never" :value never) + (const :tag "By directory" :value directory) + (const :tag "By directory with source-path" :value directory-with-source-path) + (const :tag "By major-mode" :value mode) + (const :tag "By file-extension" :value extension) + (repeat :tag "By regexps" + (regexp :tag "A bucket regexp")))) + +(defcustom ecb-history-stick-indirect-buffers-to-basebuffer t + "*Stick all indirect-buffers as subnodes to their base-buffer. + +If nil then indirect-buffers are treated as non-indirect-buffers +and sorted into the history-buffer-sequence according to the +setting of `ecb-history-sort-method'. + +If not nil then indirect-buffers are always sticked to their base-buffer, ie. +the base-buffer is displayed as expandable node with all its indirect-buffers +as children-nodes, so the history looks like: +\[-] + | + `- " + :group 'ecb-history + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (set symbol value) + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode) + (ecb-exec-in-window ecb-history-buffer-name + (ecb-add-buffers-to-history-new))))) + :type 'boolean) + +(defcustom ecb-history-sort-method 'name + "*Defines how the entries in the history-buffer are sorted. +- 'name: Sorting by name. +- 'extension: Sorting first by extension and then by name. +- nil: No sorting, means the most recently used buffers are on the top of the + history and the seldom used buffers at the bottom. +See also `ecb-history-sort-ignore-case'. + +If the history is bucketized \(see `ecb-history-make-buckets') then this +sorting applies to the sorting within each bucket." + :group 'ecb-history + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (set symbol value) + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode) + (ecb-exec-in-window ecb-history-buffer-name + (ecb-add-buffers-to-history-new))))) + :type '(radio (const :tag "By name" + :value name) + (const :tag "By extension" + :value extension) + (const :tag "No sorting" + :value nil))) + +(defcustom ecb-history-sort-ignore-case t + "*Ignore case for sorting the history-entries. +See also `ecb-history-sort-method'." + :group 'ecb-history + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (set symbol value) + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode) + (ecb-exec-in-window ecb-history-buffer-name + (ecb-add-buffers-to-history-new))))) + :type 'boolean) + +(defcustom ecb-kill-buffer-clears-history nil + "*Define if `kill-buffer' should also clear the history. +There are three options: +- auto: Removes automatically the corresponding history-entry after the buffer + has been killed. +- ask: Asks, if the history-entry should be removed after the kill. +- nil: `kill-buffer' does not affect the history \(this is the default)." + :group 'ecb-history + :type '(radio (const :tag "Remove history entry automatically" + :value auto) + (const :tag "Ask if history entry should be removed" + :value ask) + (const :tag "Do not clear the history" + :value nil))) + +(defcustom ecb-directories-menu-user-extension + '(("Version Control" + (ecb-dir-popup-cvs-status "CVS Status" ) + (ecb-dir-popup-cvs-examine "CVS Examine") + (ecb-dir-popup-cvs-update "CVS Update"))) + "*Static user extensions for the popup-menu of the directories buffer. +Value is a list of elements of the following type: Each element defines a new +menu-entry and is either: + +a) Menu-command: A list containing two sub-elements, whereas the first is the + function \(a function symbol) being called if the menu-entry is selected + and the second is the name of the menu-entry. +b) Separator: A one-element-list and the element is the string \"---\": Then a + non-selectable menu-separator is displayed. +c) Submenu: A list where the first element is the title of the submenu + displayed in the main-menu and all other elements are either menu-commands + \(see a) or separators \(see b) or another submenu \(see c). This allows + deep nested menu-submenu-structures. Currently a level of 4 is allowed but + in general there could be an infinite depth of nesting but it makes no + sense - if possible at all - to define infinite nested defcustom-types. So + there is a limit of 4 levels but tis is not a hard limit: Just increase the + value of the `ecb-max-submenu-depth' *BEFORE* first loading ECB! + +The function of a menu-command must follow the following guidelines: Such a +function must be defined with the macro `tree-buffer-defpopup-command! This +macro defines a new popup-command whereas the newly defined command gets one +argument NODE. See the docstring of `tree-buffer-defpopup-command' for further +details. + +Example for the definition of such a popupmenu-command: + +\(tree-buffer-defpopup-command ecb-my-special-dir-popup-function + \"Prints the name of the directory of the node under point.\" + \(let \(\(node-data=dir \(tree-node->data node))) + \(message \"Dir under node: %s\" node-data=dir))) + +Per default the static user-extensions are added at the beginning of the +built-in menu-entries of `ecb-directories-menu' but the whole menu can be +re-arranged with `ecb-directories-menu-sorter'. + +These menu-extensions are static. A dynamic menu-extension can be achieved via +`ecb-directories-menu-user-extension-function'." + :group 'ecb-directories + :type (ecb-create-menu-user-ext-type 1 ecb-max-submenu-depth)) + +(defcustom ecb-directories-menu-user-extension-function 'ignore + "*Dynamic user extensions for the popup-menu of the directories buffer. +A function which has to return a list in the same format like the option +`ecb-directories-menu-user-extension'. This function is called when the user +opens the popup-menu for the directories buffer. + +If no dynamically evaluated menu-extensions should be added to the +directories-buffer the function has to return nil. Therefore the default-value +of this option is `ignore'. + +Per default the dynamic user-extensions are added in front of the static +extensions of `ecb-directories-menu-user-extension' but the whole menu can be +re-arranged with `ecb-directories-menu-sorter'." + :group 'ecb-directories + :type 'function) + +(defcustom ecb-sources-menu-user-extension + '(("Version control" + (ecb-file-popup-ediff-revision "Ediff against revision") + ("---") + (ecb-file-popup-vc-next-action "Check In/Out") + (ecb-file-popup-vc-log "Revision history") + (ecb-file-popup-vc-annotate "Annotate") + (ecb-file-popup-vc-diff "Diff against last version") + ("---") + (ecb-file-popup-vc-refresh-file "Recompute state for file") + (ecb-file-popup-vc-refresh-dir "Recompute state for whole dir"))) + "*Static user extensions for the popup-menu of the sources buffer. +For further explanations see `ecb-directories-menu-user-extension'. + +The node-argument of a menu-function contains as data the source +for which the popup-menu has been opened. Use always +`ecb-source-get-*' to extract whatever you need from the +node-data. E.g. use `ecb-source-get-filename' to get the full +filename of the source of the node. + +Per default the static user-extensions are added at the beginning of the +built-in menu-entries of `ecb-sources-menu' but the whole menu can be +re-arranged with `ecb-sources-menu-sorter'." + :group 'ecb-sources + :type (ecb-create-menu-user-ext-type 1 ecb-max-submenu-depth)) + +(defcustom ecb-sources-menu-user-extension-function 'ignore + "*Dynamic user extensions for the popup-menu of the sources buffer. +A function which has to return a list in the same format like the option +`ecb-sources-menu-user-extension'. This function is called when the user +opens the popup-menu for the sources buffer. + +If no dynamically evaluated menu-extensions should be added to the +sources-buffer the function has to return nil. Therefore the default-value +of this option is `ignore'. + +Per default the dynamic user-extensions are added in front of the static +extensions of `ecb-sources-menu-user-extension' but the whole menu can be +re-arranged with `ecb-sources-menu-sorter'." + :group 'ecb-sources + :type 'function) + +(defcustom ecb-history-menu-user-extension + '(("Version control" + (ecb-file-popup-ediff-revision "Ediff against revision") + ("---") + (ecb-file-popup-vc-next-action "Check In/Out") + (ecb-file-popup-vc-log "Revision history") + (ecb-file-popup-vc-annotate "Annotate") + (ecb-file-popup-vc-diff "Diff against last version") + ("---") + (ecb-file-popup-vc-refresh-file "Recompute state for file") + (ecb-file-popup-vc-refresh-all-files "Recompute state for whole history"))) + "*Static user extensions for the popup-menu of the history buffer. +For further explanations see `ecb-directories-menu-user-extension'. + +The node-argument of a menu-function contains as data a cons: + +car is the filename of the source for which the popup-menu has +been opened. cdr is the related buffer-name; but be careful, +because the node can point to a dead buffer (see +`ecb-kill-buffer-clears-history'). Use always `ecb-source-get-*' +to extract whatever you need from the node-data. E.g. use +`ecb-source-get-filename' to get the full filename of the source +of the node and use `ecb-source-get-buffername' or `ecb-source-get-buffer' to +get the buffername rsp. the buffer-object. + +Per default the static user-extensions are added at the beginning of the +built-in menu-entries of `ecb-history-menu' but the whole menu can be +re-arranged with `ecb-history-menu-sorter'." + :group 'ecb-history + :type (ecb-create-menu-user-ext-type 1 ecb-max-submenu-depth)) + +(defcustom ecb-history-menu-user-extension-function 'ignore + "*Dynamic user extensions for the popup-menu of the history buffer. +A function which has to return a list in the same format like the option +`ecb-history-menu-user-extension'. This function is called when the user +opens the popup-menu for the history buffer. + +If no dynamically evaluated menu-extensions should be added to the +history-buffer the function has to return nil. Therefore the default-value +of this option is `ignore'. + +Per default the dynamic user-extensions are added in front of the static +extensions of `ecb-history-menu-user-extension' but the whole menu can be +re-arranged with `ecb-history-menu-sorter'." + :group 'ecb-history + :type 'function) + +(defcustom ecb-directories-menu-sorter nil + "*Function which re-sorts the menu-entries of the directories buffer. +If a function then this function is called to re-arrange the menu-entries of +the combined menu-entries of the user-menu-extensions of +`ecb-directories-menu-user-extension' and the built-in-menu +`ecb-directories-menu'. If nil then no special sorting will be done and the +user-extensions are placed in front of the built-in-entries. + +The function get one argument, a list of menu-entries. For the format of this +argument see `ecb-directories-menu-user-extension'. The function must return a +new list in the same format. Of course this function can not only re-arrange +the entries but also delete entries or add new entries." + :group 'ecb-directories + :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" + (const :tag "No special sorting" :value nil) + (function :tag "Sort-function" :value identity))) + + +(defcustom ecb-sources-menu-sorter nil + "*Function which re-sorts the menu-entries of the directories buffer. +If a function then this function is called to sort the menu-entries of the +combined menu-entries of the user-menu-extensions of +`ecb-sources-menu-user-extension' and the built-in-menu +`ecb-sources-menu'. If nil then no special sorting will be done and the +user-extensions are placed in front of the built-in-entries. + +For the guidelines for such a sorter-function see +`ecb-directories-menu-sorter'." + :group 'ecb-sources + :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" + (const :tag "No special sorting" :value nil) + (function :tag "Sort-function" :value identity))) + + +(defcustom ecb-history-menu-sorter nil + "*Function which re-sorts the menu-entries of the directories buffer. +If a function then this function is called to sort the menu-entries of the +combined menu-entries of the user-menu-extensions of +`ecb-history-menu-user-extension' and the built-in-menu +`ecb-history-menu'. If nil then no special sorting will be done and the +user-extensions are placed in front of the built-in-entries. + +For the guidelines for such a sorter-function see +`ecb-directories-menu-sorter'." + :group 'ecb-history + :type '(choice :tag "Menu-sorter" :menu-tag "Menu-sorter" + (const :tag "No special sorting" :value nil) + (function :tag "Sort-function" :value identity))) + + +(defcustom ecb-directories-buffer-after-create-hook nil + "*Local hook running after the creation of the directories-buffer. +Every function of this hook is called once without arguments direct after +creating the directories-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 directories-buffer of ECB. + +The following keys must not be rebind in the directories-buffer: +, and " + :group 'ecb-directories + :type 'hook) + + +(defcustom ecb-sources-buffer-after-create-hook nil + "*Local hook running after the creation of the sources-buffer. +Every function of this hook is called once without arguments direct after +creating the sources-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 sources-buffer of ECB." + :group 'ecb-sources + :type 'hook) + + +(defcustom ecb-history-buffer-after-create-hook nil + "*Local hook running after the creation of the history-buffer. +Every function of this hook is called once without arguments direct after +creating the history-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 history-buffer of ECB." + :group 'ecb-history + :type 'hook) + +(defvar ecb-vc-needed-vc-package-available-p + (if (locate-library "vc-svn") t nil) + "Not nil if that vc-package is installed needed by ECB to enable vc-support. +If this variable is nil all other vc related options of ECB have no effect!") + +(defcustom ecb-vc-enable-support (and ecb-vc-needed-vc-package-available-p + 'unless-remote) + "*Enable support for version-control \(VC) systems. +If on then in the directories-buffer \(if the value of the option +`ecb-show-sources-in-directories-buffer' is on for current layout), the +sources-buffer and the history-buffer all file-items are displayed with an +appropriate icon in front of the item-name to indicate the VC-state of this +item. If off then no version-control-state checking is done. + +Because this check can be take some time if files are managed by a not local +Version-control-server ECB performs this check stealthy \(see +`ecb-stealthy-tasks-delay') so normally there should no performance-decrease +or additional waiting-time for the user. But to get sure this option offers +three choices: t, 'unless-remote and nil. See the option +`ecb-prescan-directories-for-emptyness' for an explanation for these three +choices. + +The option `ecb-vc-directory-exclude-regexps' offers are more fine granularity +to exclude the sources of certain directories from the VC-state-check. + +See `ecb-vc-supported-backends' how to customize the VC-support itself." + :group 'ecb-version-control + :group 'ecb-sources + :group 'ecb-most-important + :type '(radio (const :tag "Switch on" :value t) + (const :tag "Switch off for remote directories" :value unless-remote) + (const :tag "Switch off completely" :value nil))) + +(defcustom ecb-vc-directory-exclude-regexps nil + "*Which directories should be excluded from VC-state-check. +If a directory matches any of the regexps of this option the VC-state of its +sources will not be checked - This option takes only effect if +`ecb-vc-enable-support' is not nil." + :group 'ecb-version-control + :group 'ecb-sources + :type '(repeat (regexp :tag "Directory-regexp"))) + +(defsubst ecb-vc-directory-should-be-checked-p (dir) + "Return not nil if the sources of DIR should be checked for VC-state. +The check is performed according to the settings in the options +`ecb-vc-enable-support' and `ecb-vc-directory-should-be-checked-p'." + (and dir + ecb-vc-needed-vc-package-available-p + (or (equal t ecb-vc-enable-support) + (and (equal 'unless-remote ecb-vc-enable-support) + (not (ecb-remote-path dir)))) + (not (ecb-match-regexp-list dir ecb-vc-directory-exclude-regexps)))) + +(defcustom ecb-vc-state-mapping '((up-to-date . up-to-date) + (edited . edited) + (locally-modified . edited) + (needs-patch . needs-patch) + (needs-checkout . needs-patch) + (needs-merge . needs-merge) + (unlocked-changes . unlocked-changes) + (added . added) + (locally-added . added) + (ignored . ignored) + (unknown . unknown)) + "*Mapping from VC-state-values of the backends to VC-state-values of ECB. +ECB understands the following state-values: + + 'up-to-date The working file is unmodified with respect to the + latest version on the current branch, and not locked. + + 'edited The working file has been locally edited by the user. If + locking is used for the file, this state means that + the current version is locked by the calling user. + + 'needs-patch The file has not been edited by the user, but there is + a more recent version on the current branch stored + in the master file. + + 'needs-merge The file has been edited by the user, and there is also + a more recent version on the current branch stored in + the master file. This state can only occur if locking + is not used for the file. + + 'unlocked-changes The current version of the working file is not locked, + but the working file has been changed with respect + to that version. This state can only occur for files + with locking\; it represents an erroneous condition that + should be resolved by the user. + + 'added The working file has already been added/registered to the + VC-system but not yet commited. + + 'ignored The version-control-system ignores this file \(e.g. + because included in a .cvsignore-file in case of CVS). + + 'unknown The state of the file can not be retrieved\; probably the + file is not under a version-control-system. + +All state-values a check-vc-state-function of `ecb-vc-supported-backends' can +return must have a mapping to one of the ECB-state-values listed above. If for +a certain backend-VC-state no mapping can be found then per default 'edited is +assumed! + +The default value of this option maps already the possible returned +state-values of `ecb-vc-state', `vc-state' and `vc-recompute-state' \(both GNU +Emacs) and `vc-cvs-status' \(Xemacs) to the ECB-VC-state-values." + :group 'ecb-version-control + :group 'ecb-sources + :initialize 'custom-initialize-default + :set (function (lambda (sym val) + (set sym val) + (ecb-vc-cache-clear))) + :type '(repeat (cons (choice :tag "Backend VC-state" + :menu-tag "Backend VC-state" + (const :tag "up-to-date" :value up-to-date) + (const :tag "edited" :value edited) + (const :tag "locally-modified" :value locally-modified) + (const :tag "needs-patch" :value needs-patch) + (const :tag "needs-checkout" :value needs-checkout) + (const :tag "needs-merge" :value needs-merge) + (const :tag "unlocked-changes" :value unlocked-changes) + (const :tag "added" :value added) + (const :tag "locally-added" :value locally-added) + (const :tag "ignored" :value ignored) + (const :tag "unknown" :value unknown) + (symbol :tag "Other...")) + (choice :tag "ECB VC-state" + :menu-tag "ECB VC-state" + (const :tag "up-to-date" :value up-to-date) + (const :tag "edited" :value edited) + (const :tag "needs-patch" :value needs-patch) + (const :tag "needs-merge" :value needs-merge) + (const :tag "unlocked-changes" :value unlocked-changes) + (const :tag "added" :value added) + (const :tag "ignored" :value ignored) + (const :tag "unknown" :value unknown))))) + +;; Remark why we need for ECB the information if a *directory* is managed by +;; a version-control system and why we can not use the file-based machanism +;; offered by vc*.el: +;; With only a file-based check we would need to check each file in each directory +;; when displaying the contents of a directory either in the sources-buffer or +;; in the directories buffer (when ecb-show-sources-in-directories-buffer is +;; not nil). With our directory-based machanism we check only if the directory +;; is in general managed by a version-control system and then we perform the +;; check for each file of a directory only in this case --> this is much +;; faster. +;; Therefore we can not use functions like `vc-backend' or `vc-registered'. + +(defcustom ecb-vc-supported-backends + '((ecb-vc-dir-managed-by-CVS . ecb-vc-state) + (ecb-vc-dir-managed-by-RCS . ecb-vc-state) + (ecb-vc-dir-managed-by-SCCS . ecb-vc-state) + (ecb-vc-dir-managed-by-SVN . ecb-vc-state) + (ecb-vc-dir-managed-by-GIT . ecb-vc-state) + (ecb-vc-dir-managed-by-BZR . ecb-vc-state) + (ecb-vc-dir-managed-by-MTN . ecb-vc-state) + (ecb-vc-dir-managed-by-HG . ecb-vc-state)) + "*Define how to to identify the VC-backend and how to check the state. +The value of this option is a list containing cons-cells where the car is a +function which is called to identify the VC-backend for a DIRECTORY and the +cdr is a function which is called to check the VC-state of the FILEs contained +in DIRECTORY. + +Identify-backend-function: It gets a full directory-name as argument - always +without ending slash \(rsp. backslash for native Windows-XEmacs) - and has to +return a unique symbol for the VC-backend which manages that directory \(e.g. +'CVS for the CVS-system or 'RCS for the RCS-system) or nil if the file is not +managed by a version-control-system. + +Check-vc-state-function: It gets a full filename \(ie. incl. the complete +directory-part) and has to return a symbol which indicates the VC-state of +that file. The possible returned values of such a check-vc-state-function have +to be mapped with `ecb-vc-state-mapping' to the allowed ECB-VC-state values. + +ECB runs for a certain DIRECTORY all identify-backend-functions in that order +they are listed in this option. For the first which returns a value unequal +nil the associated check-state-function is used to retrieve the VC-state of +all sourcefiles in that DIRECTORY. + +There is no need for the identify-backend-function or the +check-vc-state-function to cache any state because ECB automatically caches +internally all necessary informations for directories and files for best +possible performance. + +To prepend ECB from checking the VC-state for any file set +`ecb-vc-enable-support' to nil. + +Default value: Support for CVS, RCS, SCCS, Subversion, Git, +Bazaar, Monotone and Mercurial. To identify the VC-backend the +functions `ecb-vc-dir-managed-by-CVS', +`ecb-vc-dir-managed-by-RCS' rsp. `ecb-vc-dir-managed-by-SCCS' +rsp. `ecb-vc-dir-managed-by-SVN' rsp. +`ecb-vc--dir-managed-by-GIT' rsp. `ecb-vc-dir-managed-by-BZR' +rsp. `ecb-vc-dir-managed-by-MTN' rsp. `ecb-vc-dir-managed-by-HG' +are used. + +For all eight backends the function `ecb-vc-state' of the +VC-package is used by default \(which uses a heuristic and +therefore faster but less accurate approach), but there is also +`ecb-vc-recompute-state' available which is an alias for +`vc-recompute-state' \(which returns accurate state-values by calling the +backend which can be slow especialy for remote root-repositories!) + +Example: If `ecb-vc-recompute-state' \(to get real state-values not +only heuristic ones) should be used to check the state for CVS-managed files +and `ecb-vc-state' for all other backends then an element +\(ecb-vc-dir-managed-by-CVS . ecb-vc-recompute-state) should be added at the +beginning of this option." + :group 'ecb-version-control + :group 'ecb-sources + :initialize 'custom-initialize-default + :set (function (lambda (sym val) + (set sym val) + (ecb-vc-cache-clear))) + :type '(repeat (cons :tag "Backend-identifier and state-checker" + (choice :tag "Identify-backend-function" + :menu-tag "Identify-backend-function" + (const :tag "ecb-vc-dir-managed-by-CVS" + :value ecb-vc-dir-managed-by-CVS) + (const :tag "ecb-vc-dir-managed-by-RCS" + :value ecb-vc-dir-managed-by-RCS) + (const :tag "ecb-vc-dir-managed-by-SCCS" + :value ecb-vc-dir-managed-by-SCCS) + (const :tag "ecb-vc-dir-managed-by-SVN" + :value ecb-vc-dir-managed-by-SVN) + (const :tag "ecb-vc-dir-managed-by-GIT" + :value ecb-vc-dir-managed-by-GIT) + (const :tag "ecb-vc-dir-managed-by-BZR" + :value ecb-vc-dir-managed-by-BZR) + (const :tag "ecb-vc-dir-managed-by-MTN" + :value ecb-vc-dir-managed-by-MTN) + (const :tag "ecb-vc-dir-managed-by-HG" + :value ecb-vc-dir-managed-by-HG) + (function :tag "Any function")) + (choice :tag "Check-state-function" + :menu-tag "Check-state-function" + (const :tag "ecb-vc-state (heuristic)" + :value ecb-vc-state) + (const :tag "ecb-vc-recompute-state (accurate)" + :value ecb-vc-recompute-state) + (function :tag "Any function"))))) + + + +;;==================================================== +;; Internals +;;==================================================== + + +;; constants for the node-types - they should be all different! +(defconst ecb-directories-nodetype-directory 100) +(defconst ecb-directories-nodetype-sourcefile 200) +(defconst ecb-directories-nodetype-sourcepath 300) +(defconst ecb-sources-nodetype-sourcefile 400) +(defconst ecb-history-nodetype-bucket 500) +(defconst ecb-history-nodetype-filebuffer 600) +(defconst ecb-history-nodetype-indirect-filebuffer 700) + + +;; accessors for the FILES-AND-SUBDIRS-cache + +(defun ecb-files-and-subdirs-cache-add (dir cached-value) + "Add the files and subdirs of DIR to the cache." + (ecb-multicache-put-value 'ecb-filename-cache dir 'FILES-AND-SUBDIRS + cached-value)) + +(defun ecb-files-and-subdirs-cache-get (dir) + "Get the files and subdirs of DIR from the cache. Nil if not cached." + (ecb-multicache-get-value 'ecb-filename-cache dir 'FILES-AND-SUBDIRS)) + +(defun ecb-files-and-subdirs-cache-remove (dir) + "Remove DIR from the cache." + (ecb-multicache-clear-value 'ecb-filename-cache dir 'FILES-AND-SUBDIRS)) + +(defun ecb-files-and-subdirs-cache-clear () + "Clear the whole FILES-AND-SUBDIRS-cache." + (ecb-multicache-clear-subcache 'ecb-filename-cache 'FILES-AND-SUBDIRS)) + +(defun ecb-files-and-subdirs-cache-dump (&optional no-nil-value) + "Dump the whole FILES-AND-SUBDIRS-cache in another window. If NO-NIL-VALUE +is not nil then these cache-entries are not dumped. This command is not +intended for end-users of ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache + 'FILES-AND-SUBDIRS + no-nil-value)) + +;; accessors for the EMPTY-DIR-P-cache + +(defun ecb-directory-empty-cache-add (dir cached-value) + "Add information if DIR is empty or not to the cache." + (ecb-multicache-put-value 'ecb-filename-cache dir 'EMPTY-DIR-P + cached-value)) + +(defun ecb-directory-empty-cache-get (dir) + "get information if DIR is empty or not from the cache." + (ecb-multicache-get-value 'ecb-filename-cache dir 'EMPTY-DIR-P)) + +(defun ecb-directory-empty-cache-remove (dir) + "Remove DIR from the EMPTY-DIR-P-cache." + (ecb-multicache-clear-value 'ecb-filename-cache dir 'EMPTY-DIR-P)) + +(defun ecb-directory-empty-cache-remove-all (dir) + "Remove DIR and all its suddirs from the EMPTY-DIR-P-cache." + (ecb-directory-empty-cache-remove dir) + ;; now we remove the subdirs + (save-match-data + (ecb-multicache-mapsubcache + 'ecb-filename-cache 'EMPTY-DIR-P + (function (lambda (key old-value) + (if (string-match (concat "^" + (regexp-quote dir) + ".+") + key) + ;; the directory-key matches DIR so its a cache + ;; subdirectory of DIR so we return nil ==> in fact we + ;; remove this subdir from the empty-dir-p-cache + nil + ;; the directory-key doesn't match DIR so we just return + ;; the old-value, which means in fact that nothing changes + old-value)))))) + +(defun ecb-directory-empty-cache-clear () + "Clear the whole EMPTY-DIR-P-cache." + (ecb-multicache-clear-subcache 'ecb-filename-cache 'EMPTY-DIR-P)) + +(defun ecb-directory-empty-cache-dump (&optional no-nil-value) + "Dump the whole EMPTY-DIR-P-cache. If NO-NIL-VALUE is not nil then these +cache-entries are not dumped. This command is not intended for end-users of +ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache + 'EMPTY-DIR-P no-nil-value)) + + +;; accessors for the SOURCES-cache + +(defun ecb-sources-cache-remove (dir) + "Remove the cache-entry for DIR from the cache." + (ecb-multicache-clear-value 'ecb-filename-cache dir 'SOURCES)) + +(defun ecb-sources-cache-add-full (dir cache-elem-full) + "Add the full sources-cache CACHE-ELEM-FULL for DIR to the cache. If there +is already a full cache-entry then replace it. CACHE-ELEM-FULL has to be a +list as returned by `ecb-sources-cache-get-full'." + (ecb-multicache-apply-to-value + 'ecb-filename-cache dir 'SOURCES + (function (lambda (old-cached-value) + (if (consp old-cached-value) + (progn + (setcar old-cached-value cache-elem-full) + old-cached-value) + (cons cache-elem-full nil)))))) + +(defun ecb-sources-cache-add-filtered (dir cache-elem-filtered) + "Add the filtered sources-cache CACHE-ELEM-FILTERED for DIR to the cache. If +there is already a filtered cache-entry then replace it. CACHE-ELEM-FILTERED +has to be a list as returned by `ecb-sources-cache-get-filtered'." + (ecb-multicache-apply-to-value + 'ecb-filename-cache dir 'SOURCES + (function (lambda (old-cached-value) + (if (consp old-cached-value) + (progn + (setcdr old-cached-value cache-elem-filtered) + old-cached-value) + (cons nil cache-elem-filtered)))))) + +(defun ecb-sources-cache-get-full (dir) + "Return the full value of a cached-directory DIR, means the 3-element-list +\(tree-buffer-root, tree-buffer-displayed-nodes, sources-buffer-string). If no +cache-entry for DIR is available then nil is returned." + (car (ecb-multicache-get-value 'ecb-filename-cache dir 'SOURCES))) + +(defun ecb-sources-cache-get-filtered (dir) + "Return the filtered value of a cached-directory DIR, means the +4-element-list \(tree-buffer-root, tree-buffer-displayed-nodes, +sources-buffer-string, filter-regexp). If no cache-entry for DIR is available +then nil is returned." + (cdr (ecb-multicache-get-value 'ecb-filename-cache dir 'SOURCES))) + +(defun ecb-sources-cache-clear () + "Clear the whole SOURCES-cache." + (ecb-multicache-clear-subcache 'ecb-filename-cache 'SOURCES)) + +(defun ecb-sources-cache-dump (&optional no-nil-value) + "Dump the whole SOURCES-cache. If NO-NIL-VALUE is not nil then these +cache-entries are not dumped. This command is not intended for end-users of +ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache 'SOURCES no-nil-value)) + +;; accessors for the VC-cache + +(defun ecb-vc-cache-add-file (file state checked-buffer-names) + (ecb-multicache-put-value 'ecb-filename-cache file 'VC + (list state + (ecb-subseq (current-time) 0 2) + checked-buffer-names)) + state) + +(defun ecb-vc-cache-add-dir (dir backend) + (ecb-multicache-put-value 'ecb-filename-cache dir 'VC backend) + backend) + +(defun ecb-vc-cache-get (file) + (ecb-multicache-get-value 'ecb-filename-cache file 'VC)) + +(defun ecb-vc-cache-remove (file) + "Remove FILE from the VC-cache." + (ecb-multicache-clear-value 'ecb-filename-cache file 'VC)) + +(defun ecb-vc-cache-remove-files-of-dir (dir) + "Remove all files contained in DIR from the VC-cache." + (let* ((dir-sep-string (ecb-directory-sep-string dir)) + (regexp (concat "^" + (regexp-quote dir) + (regexp-quote dir-sep-string) + "[^" + dir-sep-string + "]+$"))) + (save-match-data + (ecb-multicache-mapsubcache + 'ecb-filename-cache 'VC + (function (lambda (key old-value) + (if (and old-value + (string-match regexp key)) + ;; the filename-key has a VC-cache value and matches the + ;; regexp above so its a cached file of DIR so we return + ;; nil ==> in fact we remove this file from the VC-cache + nil + ;; the filename-key doesn't match the regexp above so we + ;; just return the old-value, which means in fact that + ;; nothing changes + old-value))))))) + + +(defun ecb-vc-cache-clear () + "Clear the whole VC-cache." + (ecb-multicache-clear-subcache 'ecb-filename-cache 'VC)) + +(defun ecb-vc-cache-dump (&optional no-nil-value) + "Dump the whole VC-cache. If NO-NIL-VALUE is not nil then these +cache-entries are not dumped. This command is not intended for end-users of +ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache 'VC no-nil-value)) + +;; accessors for the REMOTE-PATH cache + +(defun ecb-remote-path-cache-add (path remote-path) + "Add the value of REMOTE-PATH for PATH to the REMOTE-PATH-cache." + (ecb-multicache-put-value 'ecb-filename-cache path 'REMOTE-PATH + remote-path)) + +(defun ecb-remote-path-cache-get (path) + "Return the cached value for PATH from the REMOTE-PATH-cache." + (ecb-multicache-get-value 'ecb-filename-cache path 'REMOTE-PATH)) + +(defun ecb-remote-path-cache-dump (&optional no-nil-value) + "Dump the whole REMOTE-PATH-cache. If NO-NIL-VALUE is not nil then these +cache-entries are not dumped. This command is not intended for end-users of +ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache 'REMOTE-PATH no-nil-value)) + +;; accessors for the HOST-ACCESSIBLE cache + +(defun ecb-host-accessible-cache-add (host accessible-p) + "Add the value of ACCESSIBLE-P to the HOST-ACCESSIBLE-cache with key HOST." + (ecb-multicache-put-value 'ecb-filename-cache host 'HOST-ACCESSIBLE + (cons (current-time) accessible-p))) + +(defun ecb-host-accessible-cache-get (host valid-time) + "Get the accessible-p value from the HOST-ACCESSIBLE-cache. If the cache +entry is older then VALID-TIME \(in seconds) then it is discarded." + (let ((value (ecb-multicache-get-value 'ecb-filename-cache host + 'HOST-ACCESSIBLE))) + (if (or (null value) + (> (ecb-time-diff (current-time) (car value) t) valid-time)) + ;; either not yet cached or outdated + nil + ;; return the valid cache-value + (cdr value)))) + +(defun ecb-host-accessible-cache-dump (&optional no-nil-value) + "Dump the whole HOST-ACCESSIBLE-cache. If NO-NIL-VALUE is not nil then these +cache-entries are not dumped. This command is not intended for end-users of +ECB." + (interactive "P") + (ecb-multicache-print-subcache 'ecb-filename-cache 'HOST-ACCESSIBLE no-nil-value)) + + +;; ---- end of filename-cache implementation ----------------------- + +(defun ecb-file-browser-initialize-caches () + "Initialize the caches of the file-browser of ECB." + (ecb-reset-history-filter) + (ecb-filename-cache-init)) + +(defun ecb-file-browser-initialize (&optional no-caches) + "Initialize the file-browser of ECB. If optional arg NO-CACHES is not nil +then the caches used by the file-browser will not be initialized." + (setq ecb-path-selected-directory nil + ecb-path-selected-source nil) + (unless no-caches + (ecb-file-browser-initialize-caches))) + +(defun ecb-goto-window-directories () + "Make the ECB-directories window the current window. +If `ecb-use-speedbar-instead-native-tree-buffer' is 'dir then goto to the +speedbar-window." + (interactive) + (or (ecb-goto-ecb-window ecb-directories-buffer-name) + (and (equal ecb-use-speedbar-instead-native-tree-buffer 'dir) + (ecb-goto-window-speedbar)))) + +(defun ecb-goto-window-sources () + "Make the ECB-sources window the current window. +If `ecb-use-speedbar-instead-native-tree-buffer' is 'source then goto to the +speedbar-window." + (interactive) + (or (ecb-goto-ecb-window ecb-sources-buffer-name) + (and (equal ecb-use-speedbar-instead-native-tree-buffer 'source) + (ecb-goto-window-speedbar)))) + +(defun ecb-goto-window-history () + "Make the ECB-history window the current window." + (interactive) + (ecb-goto-ecb-window ecb-history-buffer-name)) + +(defun ecb-maximize-window-directories () + "Maximize the ECB-directories-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-directories-window is not visible in current layout." + (interactive) + (if (equal ecb-use-speedbar-instead-native-tree-buffer 'dir) + (ecb-maximize-window-speedbar) + (ecb-maximize-ecb-buffer ecb-directories-buffer-name t))) + +(defun ecb-maximize-window-sources () + "Maximize the ECB-sources-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-sources-window is not visible in current layout." + (interactive) + (if (equal ecb-use-speedbar-instead-native-tree-buffer 'source) + (ecb-maximize-window-speedbar) + (ecb-maximize-ecb-buffer ecb-sources-buffer-name t))) + +(defun ecb-maximize-window-history () + "Maximize the ECB-history-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-history-window is not visible in current layout." + (interactive) + (ecb-maximize-ecb-buffer ecb-history-buffer-name t)) + +(defecb-window-dedicator-to-ecb-buffer ecb-set-directories-buffer + ecb-directories-buffer-name t + "Display the Directories-buffer in current window and make window dedicated." + (let ((set-directories-buffer + (not (equal ecb-use-speedbar-instead-native-tree-buffer 'dir)))) + ;; first we act depending on the value of + ;; ecb-use-speedbar-instead-native-tree-buffer + (when (not set-directories-buffer) + (condition-case error-data + (ecb-set-speedbar-buffer) + ;; setting the speedbar buffer has failed so we set + ;; set-directories-buffer to t ==> standard-directories-buffer is set! + (error (message "%s" error-data) + (setq set-directories-buffer t)))) + ;; maybe we need to set the standard directories buffer: + ;; - if ecb-use-speedbar-instead-native-tree-buffer is not 'dir or + ;; - if setting the speedbar buffer has failed. + (when set-directories-buffer + (if (null ecb-use-speedbar-instead-native-tree-buffer) + (ignore-errors (ecb-speedbar-deactivate))) + (switch-to-buffer ecb-directories-buffer-name)))) + +(defecb-window-dedicator-to-ecb-buffer ecb-set-sources-buffer + ecb-sources-buffer-name t + "Display the Sources-buffer in current window and make window dedicated." + (let ((set-sources-buffer + (not (equal ecb-use-speedbar-instead-native-tree-buffer 'source)))) + ;; first we act depending on the value of + ;; ecb-use-speedbar-instead-native-tree-buffer + (when (not set-sources-buffer) + (condition-case error-data + (ecb-set-speedbar-buffer) + ;; setting the speedbar buffer has failed so we set + ;; set-sources-buffer to t ==> standard-sources-buffer is set! + (error (message "%s" error-data) + (setq set-sources-buffer t)))) + ;; maybe we need to set the standard sources buffer: + ;; - if ecb-use-speedbar-instead-native-tree-buffer is not 'source or + ;; - if setting the speedbar buffer has failed. + (when set-sources-buffer + (if (null ecb-use-speedbar-instead-native-tree-buffer) + (ignore-errors (ecb-speedbar-deactivate))) + (switch-to-buffer ecb-sources-buffer-name)))) + +(defecb-window-dedicator-to-ecb-buffer ecb-set-history-buffer ecb-history-buffer-name t + "Display the History-buffer in current window and make window dedicated." + (switch-to-buffer ecb-history-buffer-name)) + +(defecb-autocontrol/sync-function ecb-basic-buffer-sync nil ecb-basic-buffer-sync nil + "Synchronizing the basic tree-buffers of ECB. + +The basic ecb-buffers are the tree-buffers for drirectories, sources, history +and methods. + +Under the following additional conditions some tasks are performed: + +- Current buffer is a file-buffer and either FORCE is not nil or the buffer + is different from the source-file currently displayed in the + ECB-tree-buffers: + + Synchronizing all basic tree-buffers \(directories, sources, history, + methods) with the current buffer + +- Current buffer is a dired-buffer: + + Synchronizing the directory- and sources-tree-buffer if visible + +At the end the hooks in `ecb-basic-buffer-sync-hook' run." + (when (and ecb-minor-mode + (not (ecb-windows-all-hidden)) + (ecb-point-in-edit-window-number)) + (let* ((filename (ecb-buffer-file-name (current-buffer)))) + (cond ( ;; synchronizing for real filesource-buffers and indirect + ;; buffers which have a filesource-buffer as base-buffer + (and filename + (ecb-buffer-or-file-readable-p filename) + (or force + (not (equal (ecb-source-make filename (buffer-name)) + (ecb-path-selected-source))))) + + ;; * KB: Problem: seems this little sleep is necessary because + ;; otherwise jumping to certain markers in new opened files (e.g. + ;; with next-error etc. ) doesn´t work correct. Can´t debug down + ;; this mysterious thing! Regardless of the size of the file to + ;; load, this 0.1 fraction of a sec is enough! + ;; * KB: With current ECB implementation this sit-for seems not + ;; longer necessary, it works with every Emacs version correct. + ;; Therefore i comment out the sit-for until this error occurs + ;; again. + ;; (sit-for 0.1) + + ;; if the file is not located in any of the paths in + ;; `ecb-source-path' or in the paths returned from + ;; `ecb-source-path-functions' we must at least add the new + ;; source path temporally to our paths. But the user has also + ;; the choice to save it for future sessions too. + (if (null (ecb-matching-source-paths filename)) + (let* ((norm-filename (ecb-fix-filename filename)) + (remote-path (ecb-remote-path norm-filename)) + (source-path (if (car ecb-add-path-for-not-matching-files) + ;; we always add the only the root + ;; as source-path + (if remote-path + ;; for a remote-path we add the + ;; host+ the root of the host + (concat (car remote-path) "/") + ;; filename is a local-path + (if (= (aref norm-filename 0) ?/) + ;; for Unix-style-path we add the + ;; root-dir + (substring norm-filename 0 1) + ;; for win32-style-path we add + ;; the drive; because + ;; `ecb-fix-filename' also + ;; converts cygwin-path-style + ;; to win32-path-style here + ;; also the drive is added. + (substring norm-filename 0 2))) + ;; add the full directory as source-path + (ecb-file-name-directory norm-filename)))) + (ecb-add-source-path source-path (ecb-fix-filename source-path) + (not (cdr ecb-add-path-for-not-matching-files))))) + + ;; now we can be sure that a matching source-path exists + + ;; Klaus: The explicit update of the directories buffer is not + ;; necessary because the sync with the current source is done by + ;; `ecb-select-source'! + ;; (ecb-update-directories-buffer) + (ecb-path-selected-source-set filename (buffer-name)) + (ecb-select-source force) + (ecb-update-methods-buffer--internal 'scroll-to-begin) + (setq ecb-major-mode-selected-source major-mode) + + ;; Klaus Berndl : is now be done at the + ;; end of `ecb-rebuild-methods-buffer-with-tagcache' which is + ;; called by `ecb-update-methods-buffer--internal'! + + ;; selected source has changed, therefore we must initialize + ;; ecb-selected-tag again. + (ecb-tag-sync 'force) + ) + + ( ;; synchronizing for dired-mode + (eq major-mode 'dired-mode) + (ecb-set-selected-directory + (or (and (stringp dired-directory) + (ecb-file-exists-p dired-directory) + dired-directory) + (and (listp dired-directory) + (car dired-directory))))) + (t nil))) + (run-hooks 'ecb-basic-buffer-sync-hook) + )) + + +(defun ecb-expand-directory-tree (path node) + "Expands the directory part so the node representing PATH is visible. +Start with the childrens of NODE. Return not nil when an expansion has been +done \(so normally the tree-buffer must be rebuild). Return nil if the +expansion-state of the tree can show without any further expansion the node +representing PATH." + (catch 'exit + (dolist (child (tree-node->children node)) + (let ((data (tree-node->data child))) + (when (and (>= (length path) (length data)) + (ecb-string= (substring path 0 (length data)) data) + (or (= (length path) (length data)) + (eq (elt path (length data)) + (ecb-directory-sep-char path)))) + (let ((was-expanded (or (not (tree-node->expandable child)) + (tree-node->expanded child)))) + (setf (tree-node->expanded child) t) + (ecb-update-directory-node child) + (throw 'exit + (or (when (> (length path) (length data)) + (ecb-expand-directory-tree path child)) + (not was-expanded))))))))) + + +(defun ecb-check-directory-for-caching (dir number-of-contents) + "Return not nil if DIR matches not any regexp of the option +`ecb-cache-directory-contents-not' but matches at least one regexp in +`ecb-cache-directory-contents' and NUMBER-OF-CONTENTS is greater then the +related threshold." + (and (not (catch 'exit + (dolist (elem ecb-cache-directory-contents-not) + (let ((case-fold-search t)) + (save-match-data + (if (string-match (car elem) dir) + (throw 'exit (car elem)))) + nil)))) + (catch 'exit + (dolist (elem ecb-cache-directory-contents) + (let ((case-fold-search t)) + (save-match-data + (if (and (string-match (car elem) dir) + (> number-of-contents (cdr elem))) + (throw 'exit (car elem)))) + nil))))) + + +(defun ecb-check-directory-for-source-regexps (dir) + "Return the related source-exclude-include-regexps of +`ecb-source-file-regexps' if DIR matches any directory-regexp in +`ecb-source-file-regexps'." + (ecb-match-regexp-list dir ecb-source-file-regexps 'car 'cdr)) + + +(defun ecb-files-from-cvsignore (dir) + "Return an expanded list of filenames which are excluded by the .cvsignore +file in current directory." + (let ((cvsignore-content (ecb-file-content-as-string + (ecb-expand-file-name ".cvsignore" dir))) + (files nil)) + (when cvsignore-content + (dolist (f (split-string cvsignore-content)) + (setq files (append (ecb-directory-files dir nil + (wildcard-to-regexp f) t) + files))) + files))) + + +(defun ecb-check-directory-for-cvsignore-exclude (dir) + "Return not nil if DIR matches a regexp in `ecb-sources-exclude-cvsignore'." + (ecb-match-regexp-list dir ecb-sources-exclude-cvsignore)) + +(defun ecb-get-sources-sort-function (sort-method &optional ignore-case) + "According to SORT-METHOD \(which can either be 'name, 'extension or nil) +and IGNORE-CASE return a function which can be used as argument for `sort'." + (case sort-method + (name + (function (lambda (a b) + (ecb-string< a b ecb-sources-sort-ignore-case)))) + (extension + (function + (lambda(a b) + (let ((ext-a (ecb-file-name-extension a t)) + (ext-b (ecb-file-name-extension b t))) + (if (ecb-string= ext-a ext-b ecb-sources-sort-ignore-case) + (ecb-string< a b ecb-sources-sort-ignore-case) + (ecb-string< ext-a ext-b ecb-sources-sort-ignore-case)))))) + (otherwise + (function (lambda (a b) + nil))))) + + +(defun ecb-get-files-and-subdirs (dir) + "Return a cons cell where car is a list of all files to display in DIR and +cdr is a list of all subdirs to display in DIR. Both lists are sorted +according to `ecb-sources-sort-method'." + (or (ecb-files-and-subdirs-cache-get dir) + ;; dir is not cached + (let ((files (ecb-directory-files dir nil nil t)) + (source-regexps (or (ecb-check-directory-for-source-regexps + (ecb-fix-filename dir)) + '(("") ("")))) + (cvsignore-files (if (ecb-check-directory-for-cvsignore-exclude dir) + (ecb-files-from-cvsignore dir))) + sorted-files source-files subdirs cached-value) + ;; if necessary sort FILES + (setq sorted-files + (if ecb-sources-sort-method + (sort files (ecb-get-sources-sort-function + ecb-sources-sort-method)) + files)) + ;; divide real files and subdirs. For really large directories (~ >= + ;; 2000 entries) this is the performance-bottleneck in the + ;; file-browser of ECB. + (dolist (file sorted-files) + (if (ecb-file-directory-p (ecb-fix-filename dir file)) + (when (not (ecb-check-dir-exclude file)) +;; (when (not (ecb-file-accessible-directory-p file)) +;; (ecb-merge-face-into-text file +;; ecb-directory-not-accessible-face)) + (setq subdirs (append subdirs (list file)))) + (when (and (not (member file cvsignore-files)) + (or (ecb-match-regexp-list file (cadr source-regexps)) + (not (ecb-match-regexp-list file (car source-regexps))))) + (setq source-files (append source-files (list file)))))) + + (setq cached-value (cons source-files subdirs)) + ;; check if this directory must be cached + (if (ecb-check-directory-for-caching dir (length sorted-files)) + (ecb-files-and-subdirs-cache-add dir cached-value)) + ;; return the result + cached-value))) + + +(defun ecb-update-sources-buffer (dir-before-update) + "Updates the sources-buffer with all sources contained in +`ecb-path-selected-directory' - the contents are either newly computed or come +from the `ecb-sources-cache'. DIR-BEFORE-UPDATE is the directory which was +selected before this update." + + ;; Here we add a cache-mechanism which caches for each path the node-tree + ;; and the whole buffer-string of the sources-buffer. A cache-elem would be + ;; removed from the cache if a directory is POWER-clicked in the directories + ;; buffer because this is the only way to synchronize the sources-buffer + ;; with the disk-contents of the clicked directory. This works because the + ;; tree of the sources-buffer contains only not expandable nodes (see the + ;; comment in `ecb-rebuild-methods-buffer-with-tagcache'). If we would + ;; make the nodes in the Sources-buffer "expandable" this caching would not + ;; work! + + (ecb-exec-in-window ecb-sources-buffer-name + ;; if we have a filtered cache we must display it - otherwise we use the + ;; full cache if there is any + (let ((cache-elem (or (ecb-sources-cache-get-filtered ecb-path-selected-directory) + (ecb-sources-cache-get-full ecb-path-selected-directory)))) + (if cache-elem + (progn + (tree-buffer-set-root (nth 0 cache-elem)) + (tree-buffer-update nil (cons (nth 2 cache-elem) + (nth 1 cache-elem)))) + (let ((new-tree (tree-node-new-root)) + (old-children (tree-node->children (tree-buffer-get-root))) + (new-cache-elem nil)) + ;; building up the new files-tree + (ecb-tree-node-add-files + new-tree + ecb-path-selected-directory + (car (ecb-get-files-and-subdirs ecb-path-selected-directory)) + ecb-sources-nodetype-sourcefile + ecb-show-source-file-extension old-children t) + + ;; updating the buffer itself + (tree-buffer-set-root new-tree) + (tree-buffer-update) + + ;; check if the sources buffer for this directory must be + ;; cached: If yes update the cache + (when (ecb-check-directory-for-caching + ecb-path-selected-directory + (tree-buffer-number-of-displayed-nodes)) + (setq new-cache-elem (list (tree-buffer-get-root) + (tree-buffer-displayed-nodes-copy) + (ecb-buffer-substring (point-min) + (point-max)))) + (ecb-sources-cache-add-full ecb-path-selected-directory + new-cache-elem)))) + + (when (not (ecb-string= dir-before-update ecb-path-selected-directory)) + (ecb-scroll-window (point-min) (point-min)))))) + +(defun ecb-sources-filter-by-ext (ext-str) + "Filter the sources by extension EXT-STR." + (if (= (length ext-str) 0) + (ecb-apply-filter-to-sources-buffer + "^[^.]+$" ;; matches only filenames with no extension + "No ext.") + (ecb-apply-filter-to-sources-buffer + (format "\\.%s\\'" ext-str) + (format "*.%s" ext-str)))) + +(tree-buffer-defpopup-command ecb-popup-sources-filter-by-ext + "Filter the sources by extension by popup." + (ecb-sources-filter-by-ext + (read-string "Insert the filter-extension without leading dot: " + (and node + (ecb-file-name-extension (tree-node->data node)))))) + +(defun ecb-sources-filter-by-regexp (&optional regexp filter-display) + "Filter history entries by REGEXP. If the first optional argument REGEXP is +nil then it asks for a regexp. If second argument FILTER-DISPLAY is not nil +then it is displayed in the modeline of the history-buffer for current +regexp-filter. Otherwise the regexp itself." + (let ((regexp-str (or regexp (read-string "Insert the filter-regexp: ")))) + (if (> (length regexp-str) 0) + (ecb-apply-filter-to-sources-buffer regexp-str filter-display)))) + +(tree-buffer-defpopup-command ecb-popup-sources-filter-by-regexp + "Filter the sources by regexp by popup." + (ecb-sources-filter-by-regexp)) + +(tree-buffer-defpopup-command ecb-popup-sources-filter-none + "Remove any filter from the sources by popup." + (ecb-apply-filter-to-sources-buffer nil)) + + +(defun ecb-sources-filter () + "Apply a filter to the sources-buffer to reduce the number of entries. +So you get a better overlooking. There are three choices: +- Filter by extension: Just insert the extension you want the Sources-buffer + being filtered. Insert the extension without leading dot! +- Filter by regexp: Insert the filter as regular expression. +- No filter: This means to display an entry for every file in the current + selected directory \(all except these filter already filtered out by + `ecb-source-file-regexps' and `ecb-sources-exclude-cvsignore'). +Such a filter is only applied to the current selected directory, i.e. each +directory has its own filtered sources-buffer." + (interactive) + (let ((choice (ecb-query-string "Filter sources by:" + '("extension" "regexp" "nothing")))) + (cond ((ecb-string= choice "extension") + (ecb-sources-filter-by-ext + (read-string "Insert the filter-extension without leading dot: "))) + ((ecb-string= choice "regexp") + (ecb-sources-filter-by-regexp)) + (t (ecb-apply-filter-to-sources-buffer nil))))) + +(defun ecb-sources-filter-modeline-prefix (buffer-name sel-dir sel-source) + "Compute a mode-line prefix for the Sources-buffer so the current filter +applied to the sources is displayed. This function is only for using by +the option `ecb-mode-line-prefixes'." + (let ((filtered-cache-elem (ecb-sources-cache-get-filtered sel-dir))) + (if (null filtered-cache-elem) + nil ;; no prefix if no filter + (format "[Filter: %s]" (cdr (nth 3 filtered-cache-elem)))))) + +(defun ecb-apply-filter-to-sources-buffer (filter-regexp &optional filter-display) + "Apply the regular expression FILTER-REGEXP to the files of +`ecb-path-selected-directory' and display only the filtered files in the +Sources-buffer. If FILTER-REGEXP is nil then any applied filter is removed and +all files are displayed. Returns t if the filter has been applied otherwise +nil. Returns 'window-not-visible if the ECB-sources-buffer is not visible." + (prog1 + (ecb-exec-in-window ecb-sources-buffer-name + (if (or (null filter-regexp) (= (length filter-regexp) 0)) + ;; no filtering + (progn + ;; remove the filtered cache by setting it to nil + (ecb-sources-cache-add-filtered ecb-path-selected-directory nil) + ;; update the sources buffer - because the filtered cache is nil + ;; the full sources are displayed. + (ecb-update-sources-buffer ecb-path-selected-directory) + (tree-buffer-highlight-node-by-data/name (ecb-path-selected-source 'file)) + nil) + ;; apply the filter-regexp + (let ((new-tree (tree-node-new-root)) + (old-children (tree-node->children (tree-buffer-get-root))) + (all-files (car (ecb-get-files-and-subdirs ecb-path-selected-directory))) + (filtered-files nil)) + (save-match-data + (dolist (file all-files) + (if (string-match filter-regexp file) + (setq filtered-files + (cons file filtered-files))))) + (if (null filtered-files) + (progn + (ecb-apply-filter-to-sources-buffer nil) + (message "ECB has not applied this filter because it would filter out all files!") + nil) + ;; building up the new files-tree + (ecb-tree-node-add-files + new-tree + ecb-path-selected-directory + (nreverse filtered-files) + ecb-sources-nodetype-sourcefile + ecb-show-source-file-extension old-children t) + + ;; updating the buffer itself + (tree-buffer-set-root new-tree) + (tree-buffer-update) + (ecb-scroll-window (point-min) (point-min)) + (tree-buffer-highlight-node-by-data/name (ecb-path-selected-source 'file)) + + ;; add the new filter to the cache, so the next call to + ;; `ecb-update-sources-buffer' displays the filtered sources. + (ecb-sources-cache-add-filtered ecb-path-selected-directory + (list (tree-buffer-get-root) + (tree-buffer-displayed-nodes-copy) + (ecb-buffer-substring (point-min) + (point-max)) + (cons filter-regexp + (or filter-display + filter-regexp)))) + t)))) + ;; now we update the mode-lines so the current filter (can be no filter) is + ;; displayed in the mode-line. See `ecb-sources-filter-modeline-prefix'. + (ecb-mode-line-format))) + + +;; Klaus Berndl : the duplicates MUST be eliminated only +;; on path-basis and not of cons (path . alias)-basis, because +;; ecb-source-path-functions only return paths without alias +;; (setq ecb-source-path-functions +;; (list (lambda () +;; '("c:/Programme/emacs-23.1/site-lisp/package-development/ecb" +;; "c:/Programme/emacs-22.3" +;; "c:/Programme/emacs-23.1/site-lisp/package-development")))) + +;; TODO: Klaus Berndl : should we add an option for +;; ignore-case for the duplicate-removing?! +(defun ecb-normed-source-paths (&optional no-duplicates) + "Return a normalized list of all source-paths. + +This is a list created from all elements of `ecb-source-path' and all +source-paths created by `ecb-source-path-functions'. + +Each element is a cons whereas car is the normed and expanded pathname \(done by +`ecb-fix-filename') and cdr is either the alias defined for this path \(see +`ecb-source-path') or - if there is no alias defined - the path itself \(in +this case car and cdr are equal). + +If NO-DUPLICATES is not nil then all duplicates in the paths-list are removed. +An element is a duplicate if the car \(i.e. the normed and expaneded path) +matches exactly the car of another element." + (let ((res (mapcar (function (lambda (elem) + (let* ((path (ecb-fix-filename (if (listp elem) (nth 0 elem) elem))) + (alias (if (listp elem) (nth 1 elem) path))) + (cons path alias)))) + (append ecb-source-path + (ecb-get-source-paths-from-functions) + )))) + (if no-duplicates + (ecb-delete-duplicates + res + (function (lambda (l r) + (ecb-string= (if (consp l) (car l) l) + (if (consp r) (car r) r)) + )) + nil nil t t) + res))) + +(defun ecb-matching-source-paths (path-to-match &optional sorted) + "Return all source-paths of `ecb-source-path' which match PATH-TO-MATCH. If +SORTED is not nil then the paths are sorted by descending length, means the +longest path \(which is the best matching) is the first elem and the shortest +path the last elem. Otherwise the matching paths are returned in that sequence +they occur in `ecb-source-path'. +Each matching path is a cons in the sense of `ecb-normed-source-paths'." + (let* ((p-t-m (ecb-fix-filename path-to-match)) + (normed-current-source-paths (ecb-normed-source-paths)) + (matching-paths + (delq nil + (mapcar (lambda (elem) + (save-match-data + (if (string-match (concat "^" (regexp-quote (car elem))) + p-t-m) + elem))) + normed-current-source-paths)))) + (if (not sorted) + matching-paths + (sort matching-paths + (function (lambda (lhs rhs) + (> (length (car lhs)) (length (car rhs))))))))) + +(defun ecb-get-best-matching-source-path (path) + "Return the best-matching source-path for PATH. +It's either nil if no source-path matches or a cons in the sense of +`ecb-normed-source-paths'." + (car (ecb-matching-source-paths path t))) + +(defun ecb-set-selected-directory (path &optional force) + "Set the contents of the ECB-directories and -sources buffer correct for the +value of PATH. If PATH is equal to the value of `ecb-path-selected-directory' +then nothing is done unless first optional argument FORCE is not nil." + (let ((last-dir ecb-path-selected-directory)) + (setq ecb-path-selected-directory (ecb-fix-filename path)) + ;; if ecb-path-selected-directory has not changed then there is no need + ;; to do anything here because neither the content of directory buffer + ;; nor the content of the sources buffer can have been changed! + (when (or force (not (ecb-string= last-dir ecb-path-selected-directory))) + (when (or (not (ecb-show-sources-in-directories-buffer-p)) + ecb-auto-expand-directory-tree) + (ecb-exec-in-window ecb-directories-buffer-name + (let (start was-expanded) + (when ecb-auto-expand-directory-tree + ;; Expand tree to show selected directory + (setq start + (if (equal ecb-auto-expand-directory-tree 'best) + ;; If none of the source-paths in the buffer + ;; `ecb-directories-buffer-name' matches then nil + ;; otherwise the node of the best matching + ;; source-path + (let ((best-source-path + (car (ecb-get-best-matching-source-path + ecb-path-selected-directory)))) + (if best-source-path + (tree-buffer-search-displayed-node-list + (function + (lambda (node) + (if (and (tree-buffer-node-data-equal-p + (tree-node->data node) + (ecb-fix-filename best-source-path)) + ;; only nodes of level 0 (ie. with + ;; parent == root) can be source-paths + (eq (tree-buffer-get-root) + (tree-node->parent node))) + node)))))) + ;; we start at the root node + (tree-buffer-get-root))) + (when (and (equal ecb-auto-expand-directory-tree 'best) + start) + (setq was-expanded (or (not (tree-node->expandable start)) + (tree-node->expanded start))) + ;; expand the best-match node itself + (setf (tree-node->expanded start) t) + ;; This function ensures a correct expandable-state of + ;; start-node + (ecb-update-directory-node start)) + ;; start recursive expanding of either the best-matching node or + ;; the root-node itself. + (if (or (ecb-expand-directory-tree ecb-path-selected-directory + (or start + (tree-buffer-get-root))) + (not was-expanded)) + (tree-buffer-update) + (tree-buffer-recenter start (selected-window)) + ;; sometimes we do not need a full tree-buffer-update, even + ;; when FORCE is not nil. But we have to restart the + ;; directories-buffer stealthy-state. + (and force (ecb-stealth-tasks-after-directories-update)))) + ;; (ecb-expand-directory-tree ecb-path-selected-directory + ;; (or start + ;; (tree-buffer-get-root))) + ;; (tree-buffer-update)) + (when (not (ecb-show-sources-in-directories-buffer-p)) + (tree-buffer-highlight-node-by-data/name ecb-path-selected-directory + nil start))))) + ;; now we update the sources buffer for `ecb-path-selected-directory' + (ecb-update-sources-buffer last-dir) + ;; now we run the hooks + (run-hook-with-args 'ecb-after-directory-change-hook + last-dir ecb-path-selected-directory) + )) + + ;; set the default-directory of each tree-buffer to current selected + ;; directory so we can open files via find-file from each tree-buffer. + ;; is this necessary if neither dir.- nor sources-buffer-contents have been + ;; changed? I think not but anyway, doesn't matter, costs are very low. + (save-excursion + (dolist (buf (ecb-ecb-buffer-registry-buffer-list)) + (set-buffer buf) + (setq default-directory + (concat ecb-path-selected-directory + (and (not (= (aref ecb-path-selected-directory + (1- (length ecb-path-selected-directory))) + (ecb-directory-sep-char ecb-path-selected-directory))) + (ecb-directory-sep-string ecb-path-selected-directory)))))) + ;; set the modelines of all visible tree-buffers new + (ecb-mode-line-format)) + + +(defun ecb-get-source-name (filename) + "Returns the source name of a file." + (let ((f (ecb-file-name-nondirectory filename))) + (if ecb-show-source-file-extension + f + (ecb-file-name-sans-extension f)))) + +(defun ecb-select-source (&optional force) + "Updates the directories, sources and history buffers to match the filename +given. If FORCE is not nil then the update of the directories buffer is done +even if current directory is equal to `ecb-path-selected-directory'." + (ecb-set-selected-directory (ecb-file-name-directory + (ecb-path-selected-source 'file)) force) + + ;; Update directory buffer + (when (ecb-show-sources-in-directories-buffer-p) + (ecb-exec-in-window ecb-directories-buffer-name + (tree-buffer-highlight-node-by-data/name (ecb-path-selected-source 'file)))) + + ;; Update source buffer + (ecb-exec-in-window ecb-sources-buffer-name + (tree-buffer-highlight-node-by-data/name (ecb-path-selected-source 'file))) + + (ecb-add-buffers-to-history-new)) + + +(defvar ecb-history-filter nil + "A cons-cell where car is the filter-function and the cdr is a string how +the current active filter should be displayed in the modeline of +the History-buffer. The filter-function gets as arguments the +buffername and the filename of an existing file-buffer and has to +return not nil if for these data a history-entry should be +added.") + +(defun ecb-reset-history-filter () + "Reset the `ecb-history-filter' so all file-buffers are displayed." + (setq ecb-history-filter (cons (function + (lambda (buf file) + t)) + nil))) + +(defun ecb-history-filter-reset-p () + (null (cdr ecb-history-filter))) + +(ecb-reset-history-filter) + +(defun ecb-indirect-buffers-of-buffer (&optional buffer-or-name) + (let ((buffer (if (null buffer-or-name) + (current-buffer) + (if (and (bufferp buffer-or-name) + (buffer-live-p buffer-or-name)) + buffer-or-name + (if (stringp buffer-or-name) + (get-buffer buffer-or-name)))))) + (delq nil (mapcar (function + (lambda (buf) + (if (equal buffer (buffer-base-buffer buf)) + buf))) + (buffer-list))))) + +;; When a base-buffer of indirect-buffers is killed then automatically all +;; indirect-buffers are killed too by Emacs - for all these ind. buffers +;; kill-buffer-hook is called and therefore also this function ==> we must not +;; perform any special logic because the indirect-buffers nodes are always +;; removed. +(defun ecb-history-kill-buffer-clear (curr-buf) + "Does all necessary clearence when CURR-BUF is killed." + (let* ((buffer-file (ecb-fix-filename (ecb-buffer-file-name curr-buf))) + (node (if buffer-file + (ecb-exec-in-window ecb-history-buffer-name + (tree-buffer-find-displayed-node-by-data/name + (ecb-source-make buffer-file curr-buf))))) + (buffer-name-to-ignore-list-for-rebuild nil)) + (when (tree-node-p node) + (when (or (buffer-base-buffer curr-buf) ; indirect-buffers always! + (equal ecb-kill-buffer-clears-history 'auto) + (and (equal ecb-kill-buffer-clears-history 'ask) + (y-or-n-p "Remove history entry for this buffer?"))) + ;; we must do this even when the history is not visible!! + ;; the history should be always up-to-date + (with-current-buffer ecb-history-buffer-name + (tree-buffer-remove-node node)) + ;; if we have removed a node then we must ignore the related buffer + ;; when rebuilding the history - otherwise the node would be added + ;; again. This is because the history is rebuild before + ;; kill-buffer-hook has been finished and therefore the killed buffer + ;; is still in (buffer-list) which is used by + ;; `ecb-add-buffers-to-history-new'! + (setq buffer-name-to-ignore-list-for-rebuild (list (buffer-name curr-buf)))) + (ecb-add-buffers-to-history-new nil buffer-name-to-ignore-list-for-rebuild)))) + +(defun ecb-add-all-buffers-to-history () + "Add all current file-buffers to the history-buffer of ECB. +Dependend on the values of `ecb-history-make-buckets' and +`ecb-history-sort-method' afterwards the history is bucketized or +not and sorted either by name or by extension \(if bucketized +then the sorting is only within each bucket). If +`ecb-history-sort-method' is nil the most recently used buffers +are on the top of the history and the seldom used buffers at the +bottom \(again: when bucketized then this holds only within each +bucket)." + (interactive) + (ecb-reset-history-filter) + (ecb-add-buffers-to-history-new 'no-dead-buffers)) + +(defalias 'ecb-clear-history 'ecb-add-all-buffers-to-history) + +(defun ecb-history-content-all-dead-buffers-alist () + "Return alist with items \( . ) for dead buffers +entries of the history-buffer." + (with-current-buffer ecb-history-buffer-name + (delq nil (tree-node-map-subtree + (tree-buffer-get-root) + (function + (lambda (node) + (let ((data (tree-node->data node))) + (unless (or (= (tree-node->type node) ecb-history-nodetype-bucket) + (get-buffer (ecb-source-get-buffername data))) + (cons (ecb-source-get-buffername data) + (ecb-source-get-filename data)))))))))) + +(defun ecb-add-buffers-to-history-new (&optional no-dead-buffers ignore-buffername-list) + "Update contents of the history-buffer. +This means a history-item is added to the history-buffer if an existing buffer: +- is a file-buffer or is based on a file-buffer \(e.g. indirect-file-buffers) +- is not excluded by `ecb-check-filename-for-history-exclude' +- is not filtered out by the current history-filter +In addition dead-buffer items of the history-content before are added again +unless optional argument NO-DEAD-BUFFERS is not nil. + +If second optional argument IGNORE-BUFFERNAME-LIST is not nil, then it must be a +list of buffer-names which should be ignored for the history-rebuild. + +It takes into account the values of the options `ecb-history-make-buckets' and +`ecb-history-stick-indirect-buffers-to-basebuffer'. + +It calls at the end `ecb-mode-line-format'. + +If the current history-filter leads to an empty history-buffer it will not be +applied but an unfiltered history will be build. + +Returns t if the current history filter has been applied otherwise nil." + (let* ((never-bucket-string "No_hist_bucketizing") + (aggr-sort-fcn (function + (lambda (l r) + ;; l and r are conses like: + ;; ( . ( . )) + (if (ecb-string= (car l) (car r) ecb-history-sort-ignore-case) + (case ecb-history-sort-method + (extension + (let ((ext-l (file-name-extension (cdr (cdr l)) t)) + (ext-r (file-name-extension (cdr (cdr r)) t))) + (if (ecb-string= ext-l ext-r ecb-history-sort-ignore-case) + (ecb-string< (car (cdr l)) (car (cdr r)) + ecb-history-sort-ignore-case) + (ecb-string< ext-l ext-r ecb-history-sort-ignore-case)))) + (name + (ecb-string< (car (cdr l)) (car (cdr r)) + ecb-history-sort-ignore-case)) + (otherwise nil)) + (ecb-string< (car l) (car r) ecb-history-sort-ignore-case))))) + (aggr-same-fcn (function + (lambda (l r) + ;; l and r are strings (= the car of an item of base-alist) + (ecb-string= l r ecb-history-sort-ignore-case)))) + (indirect-buffer-base nil) + ;; lets build an alist where each item is a cons like + ;; ( . ) and only items are contained which are: + ;; - based on file-buffers (indirect-file-buffers too) + ;; - not excluded by `ecb-check-filename-for-history-exclude' + ;; - not filtered out by the current history-filter + ;; if indirect-buffers should be sticked to the base-buffer then we + ;; are sorting out them here and add them all to indirect-buffer-base + (buf-file-alist + (delq nil + (mapcar (function + (lambda (buf) + (let ((file-name (ecb-fix-filename + (ecb-buffer-file-name buf))) + (base-buf (buffer-base-buffer buf))) + (if (and file-name + ;; needed for revision-files temporally + ;; checked out (e.g. by ediff-revision) + ;; these not longer existing files + ;; would pollute the history - we do not + ;; want entries which could not loaded + ;; into a buffer + (ecb-buffer-or-file-readable-p file-name) + (not (member (buffer-name buf) + ignore-buffername-list)) + (not (ecb-check-filename-for-history-exclude file-name)) + (funcall (car ecb-history-filter) + (buffer-name buf) + file-name)) + (if (and ecb-history-stick-indirect-buffers-to-basebuffer + base-buf) + ;; if indirect-buffers should be sticked + ;; to the base-buffer then we are sorting + ;; out them here and add them all to + ;; indirect-buffer-base + (progn + (push (cons (buffer-name base-buf) + (cons (buffer-name buf) file-name)) + indirect-buffer-base) + nil) + (cons (buffer-name buf) file-name)))))) + ;; we call reverse to get the most recently used + ;; buffers first; usefull when no sorting takes place + (reverse (buffer-list))))) + (additonal-dead-history-buffer-alist + (if no-dead-buffers + nil + ;; we need these entries of the history-buffer which are marked as + ;; dead. If all is working fine the set-difference would not be + ;; necessary because dead-items are dead because no buffer exists + ;; for them - so both lists should be disjunct - but who knows, to + ;; get sure we make the difference so we have no duplicates. + (ecb-set-difference (ecb-history-content-all-dead-buffers-alist) + buf-file-alist + 'member))) + (base-alist (mapcar (function + (lambda (elem) + ;; an elem is a cons ( . ) + (cons (case ecb-history-make-buckets + (never never-bucket-string) + ((directory directory-with-source-path) + (ecb-substring-no-properties + (ecb-fix-filename + (ecb-file-name-directory + (cdr elem))) + (if ecb-running-xemacs 0))) + (mode (symbol-name + (if (ecb-buffer-obj (car elem)) + (with-current-buffer (ecb-buffer-obj (car elem)) + major-mode) + ;; for dead buffers of the + ;; history we use auto-mode-alist + (or (ecb-match-regexp-list (car elem) + auto-mode-alist + 'car 'cdr) + 'no-major-mode-avail)))) + (extension (file-name-extension (cdr elem) t)) + (otherwise (or (ecb-match-regexp-list + (car elem) + ecb-history-make-buckets) + "No matchings"))) + elem))) + (append buf-file-alist + additonal-dead-history-buffer-alist))) + (aggregated-alist-with-buckets (ecb-aggregate-alist base-alist + aggr-same-fcn + aggr-sort-fcn)) + (aggregated-indirect-buffers-alist (ecb-aggregate-alist indirect-buffer-base + 'string= + (function + (lambda (l r) + (string< (car l) + (car r)))))) + ;; an alist with items like ( . ) for each + ;; toplevel bucket of the history-buffer. This is the state before + ;; rebuilding the history! + (curr-bucket-expand-status-alist + (with-current-buffer ecb-history-buffer-name + (delq nil (mapcar (function + (lambda (node) + (when (= (tree-node->type node) + ecb-history-nodetype-bucket) + (cons (tree-node->name node) + (and (tree-node->expandable node) + (tree-node->expanded node)))))) + (tree-node->children (tree-buffer-get-root)))))) + ) +;; just for debugging: +;; (list buf-file-alist +;; aggregated-alist-with-buckets +;; additonal-dead-history-buffer-alist +;; indirect-buffer-base +;; aggregated-indirect-buffers-alist) + (with-current-buffer ecb-history-buffer-name + (tree-buffer-clear-tree) + (dolist (bucket-elem aggregated-alist-with-buckets) + (let* ((best-matching-sp (if (eq ecb-history-make-buckets 'directory-with-source-path) + (ecb-get-best-matching-source-path (car bucket-elem)))) + ;; we use concat to get a new string to avoid side-effect in + ;; facing source-paths in the directory-buffer + (best-matching-path (concat (car best-matching-sp))) + (best-matching-alias (concat (cdr best-matching-sp))) + (bucket-name-formated nil) + (bucket-name-formated-shrink-start-pos (length (nth 0 ecb-bucket-node-display))) + (bucket-node nil)) + (if (or (null best-matching-sp) + ;; if the alias is not smaller then the path + ;; itself we use the path + ;; with this condition we adress also the case that the alias + ;; isn't an alias but only the duplicated path... + (>= (length best-matching-alias) + (length best-matching-path))) + (setq bucket-name-formated + (ecb-format-bucket-name + ;; we use concat only to get a new string-object + (ecb-merge-face-into-text (concat (car bucket-elem)) + ecb-history-bucket-node-face) + nil 'only-name)) + (setq bucket-name-formated + (ecb-format-bucket-name + (concat (ecb-merge-face-into-text + (ecb-merge-face-into-text + best-matching-alias ecb-history-bucket-node-face) + ecb-history-bucket-node-dir-soure-path-face) + (unless (string= best-matching-path + (car bucket-elem)) + (ecb-merge-face-into-text + (ecb-substring-no-properties + (car bucket-elem) + (length best-matching-path)) + ecb-history-bucket-node-face))) + nil 'only-name)) + ;; now we add the length of the source-path-alias as start-position + ;; for name shrinking + (setq bucket-name-formated-shrink-start-pos + (+ bucket-name-formated-shrink-start-pos + (length best-matching-alias))) + ) + (setq bucket-node (if (string= never-bucket-string (car bucket-elem)) + (tree-buffer-get-root) + (tree-node-new bucket-name-formated + ecb-history-nodetype-bucket + (car bucket-elem) + nil + (tree-buffer-get-root) + 'beginning + (list bucket-name-formated-shrink-start-pos + nil + 5)))) + (unless (string= never-bucket-string (car bucket-elem)) + ;; TODO: Klaus Berndl : maybe we can make + ;; this even smarter...depending if now a bucket contains more + ;; items than before - for this we have to store not onlxy the + ;; expand-state but also the number of children of a bucket + (setf (tree-node->expanded bucket-node) + (if (assoc bucket-name-formated + curr-bucket-expand-status-alist) + (cdr (assoc bucket-name-formated + curr-bucket-expand-status-alist)) + t))) + (dolist (elem (cdr bucket-elem)) + (let* ((buf-name (car elem)) + ;; can only be not nil if the option + ;; `ecb-history-stick-indirect-buffers-to-basebuffer' is not + ;; nil --> see above the mechanism how indirect-buffer-base + ;; is build + (indirect-buffer-p (buffer-base-buffer (ecb-buffer-obj buf-name))) + ;; Note: indirect-buffer elems can not be dead-buffer + ;; elems, because indirect-buffer-items are *always* + ;; removed immediately from the history-buffer when such a + ;; buffer is killed! + (buf-name-formatted (cond (indirect-buffer-p + (ecb-merge-face-into-text + buf-name + ecb-history-indirect-buffer-face)) + ((member elem + additonal-dead-history-buffer-alist) + (ecb-merge-face-into-text + buf-name + ecb-history-dead-buffer-face)) + (t buf-name))) + (file-name (cdr elem)) + (dir (ecb-file-name-directory file-name)) + (vc-p (and (ecb-vc-directory-should-be-checked-p dir) + (ecb-vc-managed-dir-p dir))) + (node-name (if vc-p + (ecb-vc-generate-node-name buf-name-formatted + (nth 0 (ecb-vc-cache-get file-name))) + (ecb-generate-node-name buf-name-formatted -1 "leaf" + ;; here ecb-sources-buffer-name is + ;; also correct for history + ;; because we want the same + ;; icon-stuff as in the sources buffer + ecb-sources-buffer-name))) + (node (tree-node-new + node-name + (if indirect-buffer-p + ecb-history-nodetype-indirect-filebuffer + ecb-history-nodetype-filebuffer) + (ecb-source-make file-name buf-name) + t + bucket-node))) + ;; if `ecb-history-stick-indirect-buffers-to-basebuffer' is nil + ;; then this dolist does nothing because then the list is always + ;; nil, because aggregated-indirect-buffers-alist is nil in this + ;; case + (dolist (indirect-elem (ecb-find-assoc-value buf-name + aggregated-indirect-buffers-alist)) + (let* ((ind-buf-name (car indirect-elem)) + ;; here we have no need to deal with dead-buffers + ;; because indirect-buffers can not dead-buffer-items - + ;; s.a. + (ind-buf-name-formatted (ecb-merge-face-into-text + ind-buf-name + ecb-history-indirect-buffer-face)) + (ind-node-name (if vc-p + (ecb-vc-generate-node-name ind-buf-name-formatted + (nth 0 (ecb-vc-cache-get file-name))) + (ecb-generate-node-name ind-buf-name-formatted -1 "leaf" + ;; here ecb-sources-buffer-name is + ;; also correct for history + ;; because we want the same + ;; icon-stuff as in the sources buffer + ecb-sources-buffer-name)))) + (setf (tree-node->expandable node) t) + (setf (tree-node->expanded node) t) + (tree-node-new + ;; indirect buffers have the same vc-state as the file + ;; associated with the base-buffer ==> we use the same + ind-node-name + ecb-history-nodetype-indirect-filebuffer + (ecb-source-make file-name ind-buf-name) + t + node))) + ))))) + (ecb-exec-in-window ecb-history-buffer-name + (tree-buffer-update) + (tree-buffer-highlight-node-by-data/name (ecb-path-selected-source))) + (prog1 + (if (and (with-current-buffer ecb-history-buffer-name + (tree-buffer-empty-p)) + (not (ecb-history-filter-reset-p))) + (progn + (ecb-add-all-buffers-to-history) + (message "ECB has not applied this filter because it would filter out all entries!") + nil) + t) + ;; now the modeline has to display the current filter + (ecb-mode-line-format)) + )) + +;;(insert (pp (ecb-klaus-add-buffers-to-history))) + +;;(ecb-add-buffers-to-history-new) + +(defun ecb-history-filter-modeline-prefix (buffer-name sel-dir sel-source) + "Compute a mode-line prefix for the History-buffer so the current filter +applied to the history-entries is displayed. This function is only for using +by the option `ecb-mode-line-prefixes'." + (and (cdr ecb-history-filter) + (format "[Filter: %s]" (cdr ecb-history-filter)))) + + +(defun ecb-set-selected-source (source other-edit-window + no-edit-buffer-selection) + "Updates all the ECB buffers and loads the SOURCE. The source is also +displayed unless NO-EDIT-BUFFER-SELECTION is set to non nil. In such case the +source is only loaded invisible in the background, all semantic-parsing and +ECB-Buffer-updating is done but the content of the main-edit window is not +changed. For the allowed values of OTHER-EDIT-WINDOW see +`ecb-combine-ecb-button/edit-win-nr'. + +SOURCE is either a string, then it is a filename or a cons, then the car is +the filename and the cdr is the buffer-name, whereas the latter one can be an +indirect-buffer." + (if no-edit-buffer-selection + ;; load the selected source in an invisible buffer, do all the + ;; updating and parsing stuff with this buffer in the background and + ;; display the methods in the METHOD-buffer. We can not go back to + ;; the edit-window because then the METHODS buffer would be + ;; immediately updated with the methods of the edit-window. + (with-current-buffer (ecb-source-get-buffer source) + (ecb-path-selected-source-set (ecb-source-get-filename source) + (buffer-name)) + (ecb-update-methods-buffer--internal 'scroll-to-begin nil t t)) + ;; open the selected source in the correct edit-window and do all the + ;; update and parsing stuff with this buffer + (ecb-display-source source other-edit-window) + (ecb-path-selected-source-set (ecb-source-get-filename source) + (buffer-name)) + (ecb-update-methods-buffer--internal 'scroll-to-begin) + (setq ecb-major-mode-selected-source major-mode) + (ecb-tag-sync 'force)) + (ecb-select-source t)) + + +(defun ecb-update-directory-node (node) + "Updates the directory node NODE and add all subnodes if any." + (let ((old-children (tree-node->children node)) + (path (tree-node->data node))) + (setf (tree-node->children node) nil) + (if (ecb-file-accessible-directory-p path) + (let ((files-and-dirs (ecb-get-files-and-subdirs path))) + (ecb-tree-node-add-files node path (cdr files-and-dirs) + ecb-directories-nodetype-directory + t old-children) + (if (ecb-show-sources-in-directories-buffer-p) + (ecb-tree-node-add-files node path (car files-and-dirs) + ecb-directories-nodetype-sourcefile + ecb-show-source-file-extension + old-children t)) + (setf (tree-node->expandable node) + (or (tree-node->children node))) + ;; if node is not expandable we set its expanded state to nil + (setf (tree-node->expanded node) + (if (not (tree-node->expandable node)) + nil + (tree-node->expanded node))))))) + +(defecb-tree-buffer-callback ecb-directory-expand ecb-directories-buffer-name expand nil + "Expand the clickes directory and add all subnodes if any. +Subnodes can be directories or sources." + (ecb-update-directory-node node)) + +(defun ecb-get-source-paths-from-functions () + "Return a list of paths found by querying `ecb-source-path-functions'." + (let ((func ecb-source-path-functions) + (paths nil) + (rpaths nil)) + (while func + (setq paths (append paths (funcall (car func))) + func (cdr func))) + (while paths + (setq rpaths (cons (ecb-fix-filename (car paths)) rpaths) + paths (cdr paths))) + rpaths)) + + +(defun ecb-update-directories-buffer () + "Updates the ECB directories buffer." + (interactive) + (unless (or (not ecb-minor-mode) + (not (equal (selected-frame) ecb-frame))) + (ecb-exec-in-window ecb-directories-buffer-name + (let* ((node (tree-buffer-get-root)) + (old-children (tree-node->children node)) + (normed-paths (ecb-normed-source-paths))) + (setf (tree-node->children node) nil) + (dolist (path normed-paths) + (let* ((dir (car path)) + (name (cdr path)) + (remote-dir (ecb-remote-path dir)) + (not-accessible nil)) + (if (or (not remote-dir) + (ecb-host-accessible-p (nth 1 remote-dir))) + (if (ecb-file-accessible-directory-p dir) + (tree-node-add-children + node + (ecb-new-child old-children name + ecb-directories-nodetype-sourcepath + dir + nil + (if ecb-truncate-long-names + 'beginning))) + (setq not-accessible t)) + (setq not-accessible t)) + (when not-accessible + (ecb-warning "Source-path element %s is not accessible - ignored!" path)))) + (tree-buffer-update))) + )) + + +;; remote-path stuff +;; (ecb-host-accessible-valid-time "ecb.sourceforge.net") +;; (ecb-host-accessible-cache-get "ecb.sourceforge.net" 60) +(defsubst ecb-host-accessible-valid-time (host) + "Get the valid-cache-time of a remote HOST concering its ping-state. If host +doesn't match any regexp of `ecb-host-accessible-check-valid-time' then return +60 seconds." + (or (ecb-match-regexp-list host ecb-host-accessible-check-valid-time + 'car 'cdr) + 60)) + +;; (ecb-host-accessible-valid-time "ecb.sourceforge.net") +;; (ecb-host-accessible-cache-get "ecb.sourceforge.net" 60) +(defun ecb-host-accessible-p (host) + "Return not nil if HOST is accessible." + (let ((value (ecb-host-accessible-cache-get + host (ecb-host-accessible-valid-time host)))) + (case value + (NOT-ACCESSIBLE nil) + ((nil) ;; not cached or outdated + (let* ((options (ecb-replace-all-occurences (ecb-copy-list ecb-ping-options) + "HOST" host)) + (result (equal 0 (apply 'call-process + ecb-ping-program + nil nil nil + options)))) + (ecb-host-accessible-cache-add host (or result 'NOT-ACCESSIBLE)) + result)) + (otherwise value)))) + + +;; (ecb-host-accessible-p "ecb.cvs.sourceforge.net") + +(silentcomp-defun ange-ftp-ftp-name) +(silentcomp-defun efs-ftp-path) +(silentcomp-defun tramp-tramp-file-p) +(silentcomp-defun tramp-file-name-path) +(silentcomp-defun tramp-file-name-localname) +(silentcomp-defun tramp-file-name-host) +(silentcomp-defun tramp-dissect-file-name) +(defun ecb-remote-path (path) + "Test if PATH is a remote path and dissect it into components if yes. +Returns a list (FULL-HOST-USER-PART HOST REAL-PATH), or nil if PATH is not a +remote path. FULL-HOST-USER-PART is that component from beginning of PATH to +the :-separator which separates user- and host-parts from the real path, i.e. +it always ends with a colon! HOST is the remote HOST and REAL-PATH is that +component after that :-separator. Supports tramp, ange-ftp and efs." + (let ((value (ecb-remote-path-cache-get path))) + (case value + (NOT-REMOTE nil) + ((nil) + (let* ((dissection (or (and (featurep 'tramp) ;; tramp-support + (tramp-tramp-file-p path) + (tramp-dissect-file-name path)) + (and (featurep 'ange-ftp) ;; ange-ftp-support + (ange-ftp-ftp-name path)) + (and (featurep 'efs) ;; efs support + (efs-ftp-path path)))) + (host/real-path + (if dissection + (or (and (featurep 'tramp) ;; tramp-support + (cons (tramp-file-name-host dissection) + (if (fboundp 'tramp-file-name-localname) + (tramp-file-name-localname dissection) + (tramp-file-name-path dissection)))) + (and (featurep 'ange-ftp) ;; ange-ftp-support + (cons (nth 0 dissection) + (nth 2 dissection))) + (and (featurep 'efs) ;; efs support + (cons (nth 0 dissection) + (nth 2 dissection)))) + (cons nil path))) + (full-host-user-part + (substring path 0 (- (length path) + (length (cdr host/real-path))))) + (result nil)) + (setq result + (and dissection + (list full-host-user-part + (car host/real-path) + (cdr host/real-path)))) + (ecb-remote-path-cache-add path (or result 'NOT-REMOTE)) + result)) + (otherwise value)))) + +;;(ecb-remote-path "/berndl@ecb.sourceforge.net:~") +;;(directory-files "/berndl@ecb.sourceforge.net:~/beate") +;; (ecb-remote-path "~") + +;; empty dirs + +(defun ecb-check-emptyness-of-dir (dir) + "Checks if DIR is an empty directory. If empty return not nil otherwise nil." + (let ((cache-value (ecb-directory-empty-cache-get dir)) + (show-sources (ecb-show-sources-in-directories-buffer-p))) + (if (and cache-value + (equal (cdr cache-value) show-sources)) + (car cache-value) + (ecb-directory-empty-cache-remove dir) + (let ((entries (and (ecb-file-accessible-directory-p dir) + (ecb-directory-files dir nil nil t))) + (just-files-means-empty (not show-sources)) + (full-file-name nil) + (empty-p nil)) + (setq empty-p + (catch 'found + (dolist (e entries) + (when (not (member e '("." ".." "CVS"))) + (setq full-file-name (ecb-fix-filename dir e)) + (if (ecb-file-directory-p full-file-name) + (throw 'found 'nil) + (if (not just-files-means-empty) + (throw 'found 'nil))))) + t)) + ;; now we add this value to the cache + (ecb-directory-empty-cache-add (ecb-fix-filename dir) + (cons empty-p show-sources)) + empty-p)))) + + +(defecb-stealthy ecb-stealthy-empty-dir-check + "Check for each current visible nodes in the directories buffer if the +underlying directory is empty or not and update the node if the current node +state and display is different from the empty-state of the associated +directory. This function is only for use by `ecb-stealthy-updates'!" + (when (equal 'window-not-visible + (ecb-exec-in-window ecb-directories-buffer-name + (if (equal state 'restart) + (setq state 1)) + ;; Here the state is an integer because a stealthy functions runs only + ;; when state != 'done + (let ((lines-of-buffer (count-lines (point-min) (point-max))) + (curr-node nil) + (dir-empty-p nil)) + (ecb-exit-on-input 'empty-dir-check-stealthy + (save-excursion + (while (<= state lines-of-buffer) + (ecb-throw-on-input 'lines-of-buffer-loop) + (ecb-goto-line state) + (setq curr-node (tree-buffer-get-node-at-point)) + (when (and ;;(not (= ecb-directories-nodetype-sourcefile + ;; (tree-node->type curr-node))) + (ecb-directory-should-prescanned-p + (tree-node->data curr-node)) + (ecb-file-exists-p + (tree-node->data curr-node))) + (setq dir-empty-p + (ecb-check-emptyness-of-dir (tree-node->data curr-node))) + ;; we update the node only if we have an empty dir and the node is + ;; still expandable + (when (or (and dir-empty-p + (tree-node->expandable curr-node)) + (and (not dir-empty-p) + (not (tree-node->expandable curr-node)))) + (tree-buffer-update-node nil + 'use-old-value + 'use-old-value + 'use-old-value + 'use-old-value + (not dir-empty-p) + t))) + (setq state (1+ state))))) + (if (> state lines-of-buffer) + (setq state 'done))))) + (setq state 'done))) + +;; read-only-files? + +(defun ecb-stealthy-read-only-check--internal (state) + "Check for all sourcefile-nodes either in the directories- or the +sources-buffer if the associated file is writable or not. This function does +the real job and is is only for use by a stealthy function defined with +`defecb-stealthy'! STATE is the initial state-value the stealthy-function has +when called. Return the new state-value." + (if (or (not ecb-sources-perform-read-only-check) + (not (or (string= (buffer-name (current-buffer)) + ecb-sources-buffer-name) + (and (string= (buffer-name (current-buffer)) + ecb-directories-buffer-name) + (ecb-show-sources-in-directories-buffer-p))))) + 'done + ;; Now we are either in the sources-buffer or in the directories-buffer + ;; when sources are displayed in the directories-buffer + (if (equal state 'restart) + (setq state 1)) + ;; Here the state is an integer because a stealthy functions runs only + ;; when state != 'done + (let ((lines-of-buffer (count-lines (point-min) (point-max))) + (curr-node nil) + (new-name nil) + (read-only-p nil) + (node-types-to-check (list ecb-sources-nodetype-sourcefile + ecb-directories-nodetype-sourcefile))) + (ecb-exit-on-input 'read-only-stealthy + (save-excursion + (while (<= state lines-of-buffer) + (ecb-throw-on-input 'lines-of-buffer-loop) + (ecb-goto-line state) + (setq curr-node (tree-buffer-get-node-at-point)) + (when (and (member (tree-node->type curr-node) node-types-to-check) + (ecb-sources-read-only-check-p + (ecb-file-name-directory (tree-node->data curr-node)))) + (setq new-name (tree-node->name curr-node)) + (setq read-only-p + (not (ecb-file-writable-p (tree-node->data curr-node)))) + (if read-only-p + (ecb-merge-face-into-text new-name + ecb-source-read-only-face)) + ;; we update the node only if we have an empty dir and the node is + ;; still expandable + (when read-only-p + (tree-buffer-update-node + nil + new-name + 'use-old-value + 'use-old-value + 'use-old-value + 'use-old-value + t))) + (setq state (1+ state))))) + (if (> state lines-of-buffer) + (setq state 'done))) + state)) + +(defecb-stealthy ecb-stealthy-ro-check-in-directories-buf + "Check for all sourcefile-nodes in the directories-buffer if the associated +file is writable or not." + (if (ecb-show-sources-in-directories-buffer-p) + (when (equal 'window-not-visible + (ecb-exec-in-window ecb-directories-buffer-name + (setq state + (ecb-stealthy-read-only-check--internal state)))) + (setq state 'done)) + (setq state 'done))) + + +;; Test, if our new interrupt mechanism works... +;; (defecb-stealthy ecb-stealthy-klaus-test +;; "test" +;; (setq state +;; (if (equal (ecb-exit-on-input 'testing +;; (let ((inhibit-quit nil) +;; (message-log-max nil)) +;; (while t +;; (message "Looping ...") +;; (ecb-throw-on-input 'user-input) +;; ))) +;; 'user-input) +;; 'done +;; 'Klaus))) + + +(defecb-stealthy ecb-stealthy-ro-check-in-sources-buf + "Check for all sourcefile-nodes in the sources-buffer if the associated file +is writable or not." + (when (equal 'window-not-visible + (ecb-exec-in-window ecb-sources-buffer-name + (setq state + (ecb-stealthy-read-only-check--internal state)))) + (setq state 'done))) + +;; version control support + +(defecb-advice-set ecb-vc-advices + "All advices needed for the builtin VC-support of ECB.") + +;; We use a cache which stores for +;; + a directory: either the function used to check the VC-state of its files +;; (if the directory is managed by a VC-backend) or the symbol 'NO-VC (if +;; the dir is not managed by a VC-backend). +;; + a file: the most recent VC-state plus the check-timestamp for this state. +;; +;; So we have to call only once the identify-backend-function (see above) for +;; a directory. The check-state-function must only be called if the file has +;; been modified since the stored check-state-timestamp. With this caching +;; even using real-VC-checks (as vc-recompute-state) which never uses +;; heuristics is possible without loosing to much informations (only if a file +;; is modified by another user can not be detected with this cache - but for +;; this we have the power-click which always throws away any cache-state) + +(defconst ecb-vc-state-icon-alist '((up-to-date . ("vc-up-to-date" "(u)")) + (edited . ("vc-edited" "(e)")) + (added . ("vc-added" "(a)")) + (needs-patch . ("vc-needs-patch" "(p)")) + (needs-merge . ("vc-needs-merge" "(m)")) + (ignored . ("vc-ignored" "(x)")) + (unknown . ("vc-unknown" "(?)")) + (nil . ("vc-unknown" "(?)"))) + "Associate an image-name and a textual icon to the allowed VC-states - see +`ecb-vc-supported-backends'. Each element is a cons-cell where the car is the +symbol of a supported VC-state and the cdr a 2-element list where the first +element is the name of the needed image-icon and the second element the +ascii-string which should be dislayed if Emacs doesn't support image-display.") + +(defsubst ecb-vc-get-image-name-for-vc-state (state) + "Return the associated image-name for the vc-state STATE." + (or (nth 0 (cdr (assq state ecb-vc-state-icon-alist))) + "vc-unknown")) + +(defsubst ecb-vc-get-ascii-icon-for-vc-state (state) + "Return the associated texual icon for the vc-state STATE." + (or (nth 1 (cdr (assq state ecb-vc-state-icon-alist))) + "(?)")) + + +(defconst ecb-vc-incr-searchpattern-node-prefix + '("\\(\\(([uempx?])\\)? \\)?" . 2) + "Prefix-pattern which ignores all not interesting vc-icon-stuff of a +node-name at incr. search. This ignores the \"()\" whereas + is one of u, e, m, p or ?. +Format: cons with car is the pattern and cdr is the number of subexpr in this +pattern.") + + +(defun ecb-vc-check-state (file tree-buffer-name vc-state-fcn) + "Check if the VC-state for FILE must be rechecked, i.e. if it is out of +date. If it is still valid and also already checked for TREE-BUFFER-NAME then +return the symbol 'unchanged \(if still valid but only not checked for +TREE-BUFFER-NAME then return the state and store the fact that it has been +check now also for this buffer). Otherwise check the new state for FILE with +VC-STATE-FCN, store it in the cache only for TREE-BUFFER-NAME and return the +new state." + (let* ((cached-state (ecb-vc-cache-get file)) + (last-state (nth 0 cached-state)) + (last-check-time (nth 1 cached-state)) + (checked-tree-buffer-names (nth 2 cached-state)) + (no-need-for-state-check-p + (and last-check-time + (or (null last-state) ;; FILE has been checked but is not in VC + (not (ecb-time-less-p last-check-time + (ecb-subseq (nth 5 (ecb-file-attributes file)) + 0 2)))))) + (result nil)) + (if no-need-for-state-check-p + ;; FILE was not modified since our last vc-state-check + (if (member tree-buffer-name checked-tree-buffer-names) + ;; TREE-BUFFER-NAMES is in the list of buffer-names for which the + ;; state of FILE has already been cached ==> there is no need to + ;; update the cache we can just return 'unchanged to signalize + ;; that nothing has to be updated + (setq result 'unchanged) + ;; now we add TREE-BUFFER-NAME to that list - this new list will be + ;; added to the cache below. As result we will return the last-state + ;; because the state itself is still valid - the only thing we now + ;; have to store in the cache is that the last-state is now valid + ;; for TREE-BUFFER-NAME too! + (setq result last-state) + (setq checked-tree-buffer-names + (cons tree-buffer-name checked-tree-buffer-names))) + + ;; FILE was modified since our last vc-state-check, so we have to check + ;; the state again + + ;; set the list of the buffer-names for which the check will be performed + ;; and then cached to TREE-BUFFER-NAME ==> Only for this buffer-name the + ;; cache is valid. + (setq checked-tree-buffer-names (list tree-buffer-name)) + ;; get the new vc-state + (setq result (and vc-state-fcn + (fboundp vc-state-fcn) + ;; TODO: Klaus Berndl : + ;; vc-cvs-state seems to change the window-config + ;; (opens a new small window) if it fails...so maybe + ;; we have to save the window-config before this call + ;; and restore it when the call fails - hmm, prio 3, + ;; therefore later... ;-) + + ;; we must ignore errors here because it could be that + ;; a user has a certain VC-system not installed onto + ;; his machine but opens directories which have a + ;; CVS-subdir for example - then for such a directory + ;; ECB would eventually call this backend - but this + ;; would fail because the needed program is not + ;; installed - so we ignore this and handle this as + ;; unknown-state. + (ignore-errors (funcall vc-state-fcn file)))) + ;; now we map the backend-state to one of the ECB-VC-state-values + (setq result (or (cdr (assoc result ecb-vc-state-mapping)) 'unknown))) + (if (not (equal result 'unchanged)) + ;; add the new state to the cache because either the list of checked + ;; buffers and/or the state has been modified. + (ecb-vc-cache-add-file file + result + checked-tree-buffer-names)) + ;; return the result - either 'unchanged or the new VC-state + result)) + +(defun ecb-vc-update-sources-cache (dir) + "Update the SOURCES cache for DIR with the current-content of the +sources-buffer if DIR has currently either a filtered or full cache entry in +the SOURCES-cache." + (let* ((full-sources-cache (ecb-sources-cache-get-full dir)) + (filtered-sources-cache (and full-sources-cache + (ecb-sources-cache-get-filtered dir)))) + (if filtered-sources-cache + ;; we have currently a filtered sources-buffer so we must update the + ;; filtered sources-cache. + (ecb-sources-cache-add-filtered dir + (list (tree-buffer-get-root) + (tree-buffer-displayed-nodes-copy) + (ecb-buffer-substring (point-min) + (point-max)) + ;; add the old-filter-spec + ;; because it must be the same + (nth 3 filtered-sources-cache))) + (if full-sources-cache + ;; we have currently a cached sources-buffer without an applied + ;; filter so we must update the full sources-cache. + (ecb-sources-cache-add-full dir + (list (tree-buffer-get-root) + (tree-buffer-displayed-nodes-copy) + (ecb-buffer-substring (point-min) + (point-max)))))))) + +;; Not needed anymore - but we leave it here, who knows... +;; (defun ecb-vc-cvs-root-remote-p (root) +;; "Return not nil if ROOT is a remote CVS-repository." +;; (save-match-data +;; (if (string-match "^:local:" root) +;; nil +;; (and (string-match "^\\(:ext:\\|:server:\\)?\\([^@]+@\\)?\\([^:]+\\):" +;; root) +;; (match-string 3 root))))) + +;; some tests: +;; The following must all return cvs.sourceforge.net! +;; (ecb-vc-cvs-root-remote-p ":ext:berndl@cvs.sourceforge.net:/usr/local/root") +;; (ecb-vc-cvs-root-remote-p "berndl@cvs.sourceforge.net:/usr/local/root") +;; (ecb-vc-cvs-root-remote-p ":ext:cvs.sourceforge.net:/usr/local/root") +;; (ecb-vc-cvs-root-remote-p "cvs.sourceforge.net:/usr/local/root") +;; (ecb-vc-cvs-root-remote-p ":ext:berndl@cvs.sourceforge.net:C:/local/root") +;; (ecb-vc-cvs-root-remote-p "berndl@cvs.sourceforge.net:C:/local/root") +;; (ecb-vc-cvs-root-remote-p ":ext:cvs.sourceforge.net:C:/local/root") +;; (ecb-vc-cvs-root-remote-p "cvs.sourceforge.net:C:/local/root") +;; The following has to return nil! +;; (ecb-vc-cvs-root-remote-p "/local/root") +;; (ecb-vc-cvs-root-remote-p ":local:C:/local/root") +;; The following is allowed to return "C" because CVS forbids to use +;; windows-path as root without keyword :local:! +;; (ecb-vc-cvs-root-remote-p "C:/local/root") + +(defun ecb-vc-dir-managed-by-CVS (directory) + "Return 'CVS if DIRECTORY is managed by CVS. nil if not." + (and (locate-library "vc-cvs") + (ecb-file-exists-p (concat directory "/CVS/")) + (require 'vc) + (require 'vc-cvs) + 'CVS)) + +(defun ecb-vc-dir-managed-by-RCS (directory) + "Return 'RCS if DIRECTORY is managed by RCS. nil if not." + (and (locate-library "vc-rcs") + (ecb-file-exists-p (concat directory "/RCS/")) + (require 'vc) + (require 'vc-rcs) + 'RCS)) + +(defun ecb-vc-dir-managed-by-SVN (directory) + "Return 'SVN if DIRECTORY is managed by SVN. nil if not." + (and (locate-library "vc-svn") + (let ((admin-dir (cond ((and (memq system-type '(cygwin windows-nt ms-dos)) + (getenv "SVN_ASP_DOT_NET_HACK")) + "_svn") + (t ".svn")))) + (ecb-file-exists-p (concat directory "/" admin-dir "/"))) + (require 'vc) + (require 'vc-svn) + 'SVN)) + +(defun ecb-vc-dir-managed-by-SCCS (directory) + "Return 'SCCS if DIRECTORY is managed by SCCS. nil if not." + (and (locate-library "vc-sccs") + (or (ecb-file-exists-p (concat directory "/SCCS/")) + ;; Remote SCCS project + (let ((proj-dir (getenv "PROJECTDIR"))) + (if proj-dir + (ecb-file-exists-p (concat proj-dir "/SCCS"))))) + (require 'vc) + (require 'vc-sccs) + 'SCCS)) + +;; Bazaar support + +(defun ecb-vc-dir-managed-by-BZR (directory) + "Return 'BZR if DIRECTORY is managed by Bazaar. nil if not." + (and (locate-library "vc-bzr") + (ecb-file-exists-p (concat directory "/" ".bzr")) + (require 'vc) + (require 'vc-bzr) + 'BZR)) + +;; Mercurial support +;; TODO: Klaus Berndl : if this works we should add it to +;; `ecb-vc-supported-backends'. + +(defun ecb-vc-dir-managed-by-HG (directory) + "Return 'HG if DIRECTORY is managed by Mercurial. nil if not. +Because with Mercurial only the top-most directory of a source-tree has a subdir +.hg this function tries recursively upwards if there is a .hg-subdir." + ;; With XEmacs we must first load the vc-hooks which contain the function + ;; `vc-find-root' + (when ecb-running-xemacs + (ignore-errors (vc-load-vc-hooks))) + (and (locate-library "vc-hg") + (fboundp 'vc-find-root) + (vc-find-root directory ".hg") + (require 'vc) + (require 'vc-hg) + 'HG)) + +;; Git support + +(defun ecb-vc-dir-managed-by-GIT (directory) + "Return 'GIT if DIRECTORY is managed by Git. nil if not. +Because with Git only the top-most directory of a source-tree has a subdir +.git this function tries recursively upwards if there is a .git-subdir." + ;; With XEmacs we must first load the vc-hooks which contain the function + ;; `vc-find-root' + (when ecb-running-xemacs + (ignore-errors (vc-load-vc-hooks))) + (and (locate-library "vc-git") + (fboundp 'vc-find-root) + (vc-find-root directory ".git") + (require 'vc) + (require 'vc-git) + 'GIT)) + +;; an own implementation for Git... +;; (defun ecb-vc-dir-managed-by-GIT (directory) +;; (let* ((sourcedir (ecb-fix-filename (file-truename directory))) +;; (gitdir (concat sourcedir "/.git/"))) +;; (if (and (ecb-file-exists-p gitdir) +;; (locate-library "vc-git")) +;; 'GIT +;; (if (equal sourcedir (ecb-fix-filename "/")) +;; nil +;; (ecb-vc-dir-managed-by-GIT (concat sourcedir "/../")))))) + +;;(ecb-vc-dir-managed-by-GIT default-directory) + +;; Monotone support + +(defun ecb-vc-dir-managed-by-MTN (directory) + "Return 'MTN if DIRECTORY is managed by Monotone. nil if not." + ;; With XEmacs we must first load the vc-hooks which contain the function + ;; `vc-find-root' + (when ecb-running-xemacs + (ignore-errors (vc-load-vc-hooks))) + (and (locate-library "vc-mtn") + (fboundp 'vc-find-root) + (vc-find-root directory "_MTN/format") + (require 'vc) + (require 'vc-mtn) + 'MTN)) + +;; clearcase support + +;; To enable Cleacase-support just add the combination +;; ecb-vc-dir-managed-by-CC and ecb-vc-check-CC-state to +;; `ecb-vc-supported-backends' + +;; Problem: is this OK to assume, that the clearcase-specific stuff is already +;; loaded? may be we need more checks here. +(silentcomp-defun clearcase-file-is-in-view-p) +(defun ecb-vc-dir-managed-by-CC (directory) + "Return 'CC if DIRECTORY is managed by ClearCase. nil if not." + (and (fboundp 'clearcase-file-is-in-view-p) + (if (clearcase-file-is-in-view-p directory) + 'CC))) + +(silentcomp-defun clearcase-compute-next-action) +(defun ecb-vc-check-CC-state (file) + "Checks the VC-state of FILE when under Control of Clearcase. +Returns the following different state-values: 'unknown, 'up-to-date, 'edited +and 'unlocked-changes." + (let ((action (and (fboundp 'clearcase-compute-next-action) + (clearcase-compute-next-action file)))) + (cond + ((eq action 'mkelem) + 'unknown) + ((eq action 'checkout) + 'up-to-date) + ((eq action 'uncheckout) + 'edited) + ((eq action 'illegal-checkin) + ;; ??? Is OK ??? + 'unlocked-changes) + ((eq action 'checkin) + 'edited)))) + +(defecb-advice clearcase-sync-from-disk after ecb-vc-advices + "Ensures that the ECB-cache is reset and the entry for the currently +checked-in/out or added file is cleared. Does nothing if the function +`ecb-vc-dir-managed-by-CC' is not contained in `ecb-vc-supported-backends'!" + (when (assoc 'ecb-vc-dir-managed-by-CC ecb-vc-supported-backends) + (ecb-vc-cache-remove (ecb-fix-filename (ad-get-arg 0))) + (ecb-vc-reset-vc-stealthy-checks))) + + + +;; This function should work for all backends supported by vc +(defun ecb-vc-state (file) + "Same as `vc-state' but it clears the internal caches of the VC-package for +FILE before calling `vc-state'. Finally calls `vc-state' and returns that +value. This function should work for all backends supported by vc. + +Note: `vc-state' probably uses the heuristic-state function of the backend +which is much faster but can be sometimes inaccurate. If always the accurate +state is needed `vc-recompute-state' has to be used - see +`ecb-vc-recompute-state'." + (and (fboundp 'vc-file-clearprops) (vc-file-clearprops file)) + (vc-state file)) + +(defalias 'ecb-vc-recompute-state 'vc-recompute-state) + +(defun ecb-vc-get-state-fcn-for-dir (directory) + "Get that function which should be used for checking the VC-state for files +contained in DIRECTORY. Get it either from the VC-cache or call the car of +each element of `ecb-vc-supported-backends' and return the cdr of the first +elem where the car returns not nil. If Directory is not managed by a +version-control system then return nil. Store the result in the VC-cache for +speeding up things next time. Ange-ftp- or efs-directories will never be +checked for VC-states!" + (let* ((norm-dir (ecb-fix-filename directory)) + (cache-val (ecb-vc-cache-get norm-dir))) + (case cache-val + (NO-VC nil) + ((nil) ;; not cached or outdated + (let ((vc-backend-fcn + (catch 'found + (dolist (elem ecb-vc-supported-backends) + (when (and (fboundp (car elem)) + (funcall (car elem) norm-dir)) + (throw 'found (cdr elem)))) + nil))) + ;; Add it to the vc-cache: Either NO-VC if nil otherwise the + ;; check-state-function + (ecb-vc-cache-add-dir norm-dir (or vc-backend-fcn 'NO-VC)) + vc-backend-fcn)) + (otherwise cache-val)))) + +(defalias 'ecb-vc-managed-dir-p 'ecb-vc-get-state-fcn-for-dir) + +(defun ecb-vc-generate-node-name (name state) + "Generate a node-name with an appropriate icon in the front of NAME +depending on STATE. If Emacs supports image-display then an image-icon wll be +used otherwise an ascii-icon. The text-property 'ecb-vc-ascii-icon-length is +added to the full length of the returned node-name. It contains as value the +length of the ascii-icon \(incl. one trailing space) which is added in front +of NAME." + (let* ((ascii-icon (ecb-vc-get-ascii-icon-for-vc-state state)) + (node-name (concat ascii-icon " " + (save-match-data + (if (string-match "^(.) \\(.+\\)$" name) + (match-string 1 name) + name))))) + (put-text-property 0 (length node-name) + 'ecb-vc-ascii-icon-length (1+ (length ascii-icon)) + node-name) + (ecb-generate-node-name node-name (1+ (length ascii-icon)) + (ecb-vc-get-image-name-for-vc-state state) + ;; even in the history- or the directories-buffers + ;; we use the icons of the sources-buffer because + ;; they are the same! + ecb-sources-buffer-name))) + +;; (insert (ecb-vc-generate-node-name "test-name" 'needs-merge)) + +(defun ecb-get-sourcename-of-nodename (nodename) + "Extract the name of the source from the node-name NODENAME. +This is for nodenames generated by `ecb-vc-generate-node-name' or +`ecb-generate-node-name' and it return exactly this part of NODENAME without +all the preceding stuff added by one of these functions." + (let* ((vc-ascii-icon-length (get-text-property + 0 + 'ecb-vc-ascii-icon-length + nodename)) + (prefix-length (or vc-ascii-icon-length + (or (get-text-property + 0 + 'tree-buffer-image-length + nodename) + 0)))) + (substring nodename prefix-length))) + +(defun ecb-stealthy-vc-check--dir/history (state) + "Check for all sourcefile-nodes either in the directories- or the +history-buffer the VC-state. This function does the real job and is is only +for use by a stealthy function defined with `defecb-stealthy'! STATE is the +initial state-value the stealthy-function has when called. Return the new +state-value." + (if (or (not ecb-vc-needed-vc-package-available-p) + (not ecb-vc-enable-support)) + 'done + (if (not (or (string= (buffer-name (current-buffer)) + ecb-history-buffer-name) + (and (string= (buffer-name (current-buffer)) + ecb-directories-buffer-name) + (ecb-show-sources-in-directories-buffer-p)))) + 'done + ;; Now we are either in the history-buffer or in the directories-buffer + ;; when sources are displayed in the directories-buffer + (if (equal state 'restart) + (setq state 1)) + ;; Here the state is an integer because a stealthy functions runs only + ;; when state != 'done + (let ((lines-of-buffer (count-lines (point-min) (point-max))) + (curr-node nil) + (curr-dir nil) + (new-name nil) + (vc-state-fcn nil) + (new-state nil) + (node-types-to-check (list ecb-history-nodetype-filebuffer + ecb-history-nodetype-indirect-filebuffer + ecb-directories-nodetype-sourcefile))) + (ecb-exit-on-input 'vc-check-dir-hist-stealthy + (save-excursion + (while (<= state lines-of-buffer) + (ecb-throw-on-input 'lines-of-buffer-loop) + (ecb-goto-line state) + (setq curr-node (tree-buffer-get-node-at-point)) + (when (member (tree-node->type curr-node) node-types-to-check) + (setq curr-dir (ecb-file-name-directory + (ecb-source-get-filename (tree-node->data curr-node)))) + (when (and (ecb-vc-directory-should-be-checked-p curr-dir) + (ecb-file-exists-p (ecb-source-get-filename + (tree-node->data curr-node)))) + (setq vc-state-fcn (ecb-vc-get-state-fcn-for-dir curr-dir)) + (when vc-state-fcn ;; file is under VC-control + (setq new-name (tree-node->name curr-node)) + (setq new-state + (ecb-vc-check-state (ecb-source-get-filename + (tree-node->data curr-node)) + (buffer-name (current-buffer)) + vc-state-fcn)) + ;; we update the node only if the state has changed + (when (not (equal 'unchanged new-state)) + (setq new-name (ecb-vc-generate-node-name new-name new-state)) + (tree-buffer-update-node + nil new-name + 'use-old-value 'use-old-value 'use-old-value 'use-old-value t))))) + (setq state (1+ state))))) + (if (> state lines-of-buffer) + (setq state 'done))) + state))) + +(defun ecb-stealthy-vc-check--sources (state) + "Check for all sourcefile-nodes in sources-buffer the VC-state. This +function does the real job and is is only for use by a stealthy function +defined with `defecb-stealthy'! STATE is the initial state-value the +stealthy-function has when called. Return the new state-value." + (if (or (not ecb-vc-needed-vc-package-available-p) + (not (ecb-vc-directory-should-be-checked-p ecb-path-selected-directory))) + 'done + (let ((vc-state-fcn (ecb-vc-get-state-fcn-for-dir ecb-path-selected-directory))) + (if (null vc-state-fcn) + ;; the sources-files are not under VC-control + 'done + ;; Now we are either in the sources-, or history-buffer or in the + ;; directories-buffer when sources are displayed in the + ;; directories-buffer + (if (equal state 'restart) + (setq state 1)) + ;; Here the state is an integer because a stealthy functions runs only + ;; when state != 'done + (let ((lines-of-buffer (count-lines (point-min) (point-max))) + (curr-node nil) + (new-name nil) + (new-state nil) + (update-performed-for-dir nil)) + (ecb-exit-on-input 'vc-check-sources-stealthy + (save-excursion + (while (<= state lines-of-buffer) + (ecb-throw-on-input 'lines-of-buffer-loop) + (ecb-goto-line state) + (setq curr-node (tree-buffer-get-node-at-point)) + (if (ecb-file-exists-p (tree-node->data curr-node)) + (progn + (setq new-name (tree-node->name curr-node)) + (setq new-state + (ecb-vc-check-state (tree-node->data curr-node) + (buffer-name (current-buffer)) + vc-state-fcn)) + ;; we update the node only if the state has changed + (when (not (equal 'unchanged new-state)) + (setq new-name (ecb-vc-generate-node-name new-name new-state)) + (or update-performed-for-dir + (setq update-performed-for-dir ecb-path-selected-directory)) + (tree-buffer-update-node + curr-node new-name + 'use-old-value 'use-old-value 'use-old-value + 'use-old-value t)) + (setq state (1+ state))) + + ;; file does no longer exist + + ;; reduce the number of lines/files + (setq lines-of-buffer (1- lines-of-buffer)) + ;; remove the node from the tree and the tree-display + (tree-buffer-remove-node curr-node t) + ;; remove the current dir from the files-and-sub-dir-cache + (ecb-files-and-subdirs-cache-remove ecb-path-selected-directory) + ;; if there is currently only one line in the tree-buffer the + ;; directory will be probably empty now (we knowingly ignore + ;; here the possibility that some files can exists in the dir + ;; but they are not displayed in the tree-buffer cause of some + ;; filters for example), so it's a heuristic approach + (if (= lines-of-buffer 1) + (ecb-directory-empty-cache-remove ecb-path-selected-directory)) + ;; we must trigger that the sources-cache will be updated below + (setq update-performed-for-dir ecb-path-selected-directory) + )))) + ;; if we have performed at least one update then we must update the + ;; SOURCES-cache. + (when update-performed-for-dir + (ecb-vc-update-sources-cache update-performed-for-dir)) + (if (> state lines-of-buffer) + (setq state 'done))) + state)))) + +(defecb-stealthy ecb-stealthy-vc-check-in-history-buf + "Check for all entries in the history-buffer their VC-state and +display an appropriate icon in front of the item." + (when (equal 'window-not-visible + (ecb-exec-in-window ecb-history-buffer-name + (setq state + (ecb-stealthy-vc-check--dir/history state)))) + (setq state 'done))) + + +(defecb-stealthy ecb-stealthy-vc-check-in-sources-buf + "Check for all sourcefile-nodes in the sources-buffer their VC-state and +display an appropriate icon in front of the file." + (when (equal 'window-not-visible + (ecb-exec-in-window ecb-sources-buffer-name + (setq state + (ecb-stealthy-vc-check--sources state)))) + (setq state 'done))) + +(defecb-stealthy ecb-stealthy-vc-check-in-directories-buf + "Check for all sourcefile-nodes in the directories-buffer their VC-state and +display an appropriate icon in front of the file." + (if (ecb-show-sources-in-directories-buffer-p) + (when (equal 'window-not-visible + (ecb-exec-in-window ecb-directories-buffer-name + (setq state + (ecb-stealthy-vc-check--dir/history state)))) + (setq state 'done)) + (setq state 'done))) + +(defun ecb-vc-reset-vc-stealthy-checks () + "Resets all stealthy VC-checks." + ;; we can call savely all these initialization because if one of the + ;; following tree-windows is not visible nothing will be done (and the + ;; directories-check will only run when sources are displayed in the + ;; directories buffer!). If visible the vc-check will be performed for all + ;; current visible file-nodes again in all visible tree-buffers of the + ;; file-browser but because we have only removed the cache-entry for + ;; exactly one file, the check will be very fast for all file-nodes + ;; besides this file! + + ;; I think the read-only check must be performed too - because for + ;; backends like Clearcase a changed VC-state can also result in a changed + ;; read-only-state! + (ecb-stealthy-function-state-init 'ecb-stealthy-ro-check-in-directories-buf) + (ecb-stealthy-function-state-init 'ecb-stealthy-ro-check-in-sources-buf) + (ecb-stealthy-function-state-init 'ecb-stealthy-vc-check-in-sources-buf) + (ecb-stealthy-function-state-init 'ecb-stealthy-vc-check-in-directories-buf) + (ecb-stealthy-function-state-init 'ecb-stealthy-vc-check-in-history-buf) + ;; This function is also used in write-file-hooks so we have to return nil + ;; because otherwise a file will never be written - see documentation of + ;; `write-file-hooks'! + nil) + +;; we have to add a smart piece of code to `vc-checkin-hook' which is able to +;; clear the cache entry for exactly that file checked-in with vc-checkin! +;; Problems to solve: +;; - unfortunatelly this hook is not called with the checked-in filename as +;; argument but it is a normal hook runned with `run-hooks' :-( But we can +;; not reset the stuff in the advice itself because this doesn't ensure that +;; the after-advice-stuff is called *after* the checkin - seems that the +;; after-advice runs already during the user inserts/edits the +;; checkin-comment. But the vc-checkin-hook is really called after the +;; checkin! ==> We use a combination of an after-advice and vc-checkin-hook! +;; - If a user uses PCL-CVS for CVS-operations this advice of vc-checkin will +;; not run because pcl-cvs doesn't delegate the checkin-task to +;; `vc-checkin'. Therefore also the `vc-checkin-hook' is not runned via +;; pcl-cvs. +;; - What about other backends not supported by VC, e.g. clearcase.el? Well, +;; with a good documentation what a user has to do.... ;-) + + +(defvar ecb-checkedin-file nil + "Stored the filename of the most recent checked-in file. Is only set by the +after-advice of `vc-checkin' and `ecb-vc-checkin-hook' \(resets it to nil). +Evaluated only by `ecb-vc-checkin-hook'. + +This is the communication-channel between `vc-checkin' and +`ecb-vc-checkin-hook' so this hook-function gets the filename of the +checked-in file.") + +(defecb-advice vc-checkin after ecb-vc-advices + "Simply stores the filename of the checked-in file in `ecb-checkedin-file' +so it is available in the `vc-checkin-hook'." + (ignore-errors + (setq ecb-checkedin-file (ecb-fix-filename (ad-get-arg 0))))) + +(defun ecb-vc-checkin-hook () + "Ensures that the ECB-cache is reset and the entry for the most recent +checkedin file is cleared. Uses `ecb-checkedin-file' as last checked-in file." + (when ecb-checkedin-file + (ecb-vc-cache-remove ecb-checkedin-file) + (ecb-vc-reset-vc-stealthy-checks) + (setq ecb-checkedin-file nil))) + +(defun ecb-vc-after-revert-hook () + "Ensures that the ECB-cache is reset and the entry for the currently +reverted file-buffer is cleared." + (let ((file (ignore-errors (ecb-fix-filename (ecb-buffer-file-name))))) + (when (and file (ecb-file-exists-p file)) + (ecb-vc-cache-remove file) + (ecb-vc-reset-vc-stealthy-checks)))) + +(defun ecb-vc-enable-internals (arg) + "Enable or disable \(if ARG < 0) all settings needed by the VC-support." + (if (< arg 0) + (progn + (remove-hook 'after-revert-hook 'ecb-vc-after-revert-hook) + (remove-hook 'write-file-hooks 'ecb-vc-reset-vc-stealthy-checks) + (remove-hook 'vc-checkin-hook 'ecb-vc-checkin-hook) + (ecb-disable-advices 'ecb-vc-advices)) + (add-hook 'after-revert-hook 'ecb-vc-after-revert-hook) + (add-hook 'write-file-hooks 'ecb-vc-reset-vc-stealthy-checks) + (add-hook 'vc-checkin-hook 'ecb-vc-checkin-hook) + (ecb-enable-advices 'ecb-vc-advices))) + +;; -- end of vc-support --------------- + +;; TODO: Klaus Berndl : Maybe we should run directly +;; `ecb-stealthy-updates' from within this after-update-hooks?! + +(defun ecb-stealth-tasks-after-directories-update () + "After update hook for the directories-buffer. Runs directly after +performing a `tree-buffer-update' for this buffer." + (ecb-stealthy-function-state-init 'ecb-stealthy-empty-dir-check) + (ecb-stealthy-function-state-init 'ecb-stealthy-ro-check-in-directories-buf) + (ecb-stealthy-function-state-init 'ecb-stealthy-vc-check-in-directories-buf) + ) + +(defun ecb-stealth-tasks-after-sources-update () + "After update hook for the sources-buffer. Runs directly after +performing a `tree-buffer-update' for this buffer." + (ecb-stealthy-function-state-init 'ecb-stealthy-ro-check-in-sources-buf) + (ecb-stealthy-function-state-init 'ecb-stealthy-vc-check-in-sources-buf) + ) + +(defun ecb-stealth-tasks-after-history-update () + "After update hook for the history-buffer. Runs directly after +performing a `tree-buffer-update' for this buffer." + (ecb-stealthy-function-state-init 'ecb-stealthy-vc-check-in-history-buf) + ) + +;; -- adding files --------------------- + +(defun ecb-tree-node-add-files + (node path files type include-extension old-children &optional not-expandable) + "For every file in FILES add a child-node to NODE." + (let* ((no-vc-state-display + ;; no vc-state-display when the type of FILES means subdirs in + ;; the directories-buffer + (and (equal (buffer-name) ecb-directories-buffer-name) + (= type ecb-directories-nodetype-directory))) + (dir-managed-by-vc (if (or no-vc-state-display + (not (ecb-vc-directory-should-be-checked-p path))) + nil + (ecb-vc-managed-dir-p path)))) + (dolist (file files) + (let* ((filename (ecb-fix-filename path file)) + (file-1 (if include-extension + file + (ecb-file-name-sans-extension file)))) + (tree-node-add-children + node + (ecb-new-child + old-children + (if no-vc-state-display + file-1 + (if dir-managed-by-vc + (ecb-vc-generate-node-name file-1 + (nth 0 (ecb-vc-cache-get filename))) + (ecb-generate-node-name file-1 -1 "leaf" + ecb-sources-buffer-name))) + type filename + (or not-expandable + (= type ecb-directories-nodetype-sourcefile) + ;; The empty-dir-check is performed stealthy + nil ;;(ecb-check-emptyness-of-dir filename) + ) + (if ecb-truncate-long-names 'end))))))) + +(defun ecb-new-child (old-children name type data + &optional not-expandable shrink-name) + "Return a node with type = TYPE, data = DATA and name = NAME. Tries to find +a node with matching TYPE and DATA in OLD-CHILDREN. If found no new node is +created but only the fields of this node will be updated. Otherwise a new node +is created." + (catch 'exit + (dolist (child old-children) + (when (and (equal (tree-node->data child) data) + (= (tree-node->type child) type)) + (setf (tree-node->name child) name) + (if not-expandable + (setf (tree-node->expandable child) nil)) + (throw 'exit child))) + (tree-node-new name type data not-expandable nil shrink-name))) + +(defun ecb-add-source-path (&optional dir alias no-prompt-for-future-session) + "Add a directory to the `ecb-source-path'." + (interactive) + ;; we must manually cut a filename because we must not add filenames to + ;; `ecb-source-path'! + (let* ((use-dialog-box nil) + (my-dir (ecb-fix-filename + (or dir + (ecb-file-name-directory (read-file-name "Add source path: "))) + nil t)) + (my-alias (or alias + (read-string (format "Alias for \"%s\" (empty = no alias): " + my-dir))))) + (setq ecb-source-path (append ecb-source-path + (list (if (> (length my-alias) 0) + (list my-dir my-alias) my-dir)))) + (ecb-update-directories-buffer) + (if (and (not no-prompt-for-future-session) + (y-or-n-p "Add the new source-path also for future-sessions? ")) + (ecb-customize-save-variable 'ecb-source-path ecb-source-path) + (customize-set-variable 'ecb-source-path ecb-source-path)))) + +(tree-buffer-defpopup-command ecb-add-source-path-node + "Runs `ecb-add-source-path' from popup." + (call-interactively 'ecb-add-source-path)) + + +(tree-buffer-defpopup-command ecb-node-to-source-path + "Add this node to the source-path." + (ecb-add-source-path (tree-node->data node))) + + +(defun ecb-delete-s (child children sources) + (when children + (if (eq child (car children)) + (cdr sources) + (cons (car sources) (ecb-delete-s child (cdr children) (cdr sources)))))) + + +(tree-buffer-defpopup-command ecb-delete-source-path + "Delete this source-path via popup." + (let ((path (tree-node->data node))) + (when (ecb-confirm (concat "Really delete source-path " path "?")) + (setq ecb-source-path (ecb-delete-s + node (tree-node->children (tree-node->parent node)) + ecb-source-path)) + (ecb-update-directories-buffer) + (if (y-or-n-p "Delete source-path also for future-sessions? ") + (ecb-customize-save-variable 'ecb-source-path ecb-source-path) + (customize-set-variable 'ecb-source-path ecb-source-path))))) + + +(defun ecb-remove-dir-from-caches (dir) + "Remove DIR from the caches SUBDIR, EMPTY-DIR and SOURCES." + (ecb-files-and-subdirs-cache-remove dir) + (ecb-directory-empty-cache-remove dir) + (ecb-sources-cache-remove dir)) + +(defun ecb-directory-update-speedbar (dir) + "Update the integrated speedbar if necessary." + (and (ecb-speedbar-active-p) + ;; depending on the value of `ecb-directory-update-speedbar' we have to + ;; check if it is senseful to update the speedbar. + (or (equal ecb-directories-update-speedbar t) + (and (equal ecb-directories-update-speedbar 'auto) + (not (or (get-buffer-window ecb-sources-buffer-name ecb-frame) + (member ecb-layout-name + ecb-show-sources-in-directories-buffer)))) + (and (not (equal ecb-directories-update-speedbar 'auto)) + (functionp ecb-directories-update-speedbar) + (funcall ecb-directories-update-speedbar dir))) + (ecb-speedbar-update-contents))) + +(defecb-tree-buffer-callback ecb-directory-or-source-clicked ecb-directories-buffer-name select nil + "Does all necessary when a user clicks onto a node in the directories-buffer. +Directory- and sources nodes are handled appropriately." + (if (= 3 (tree-node->type node)) + (funcall (tree-node->data node)) + (ecb-update-directory-node node) + (if shift-mode + (ecb-mouse-over-directory-node node nil nil 'force)) + (if (or (= ecb-directories-nodetype-directory + (tree-node->type node)) + (= ecb-directories-nodetype-sourcepath + (tree-node->type node))) + (progn + ;; prevent from automatically hiding the ecb-windows when meta-mode + ;; is not nil + (setq no-meta-hiding t) + (if (= 2 ecb-button) + (when (tree-node->expandable node) + (tree-node-toggle-expanded node) + (ecb-exec-in-window ecb-directories-buffer-name + ;; Update the tree-buffer with optimized display of NODE + (tree-buffer-update node))) + + ;; Removing the element from the sources-cache, the + ;; files-and-subdirs-cache and the empty-dirs-cache (incl. all + ;; subdirs) + (when shift-mode + (ecb-remove-dir-from-caches (tree-node->data node)) + (ecb-directory-empty-cache-remove-all (tree-node->data node)) + ;; a powerclick should remove all vc-caches of contained files + (ecb-vc-cache-remove-files-of-dir (tree-node->data node)) + ) + + ;; if we are in a maximized directories-window and if no sources + ;; are shown in the directories-buffer but a sources-buffer is + ;; contained in current layout then we have to redraw the full + ;; layout first so the contents of the clicked directory can be + ;; displayed in the sources-buffer. + + ;; TODO: Klaus Berndl : we should also check + ;; if the source-buffer is not visible because in left-right + ;; layouts we can maximize 2 buffers or in general: a maximized + ;; buffer does not mean that there are no other ecb-buffers visible!!! + + (when (and (ecb-buffer-is-maximized-p ecb-directories-buffer-name) + (not (ecb-show-sources-in-directories-buffer-p)) + (ecb-buffer-is-ecb-buffer-of-current-layout-p + ecb-sources-buffer-name)) + (if (ecb-member-of-symbol/value-list + ecb-directories-buffer-name + ecb-maximize-next-after-maximized-select) + (progn + (ecb-maximize-ecb-buffer ecb-sources-buffer-name) + (ecb-window-select ecb-sources-buffer-name)) + (ecb-undo-maximize-ecb-buffer t))) + + (ecb-set-selected-directory (tree-node->data node) shift-mode) + ;; if we have running an integrated speedbar we must update the + ;; speedbar + (ecb-directory-update-speedbar (tree-node->data node)))) + + (ecb-source-item-clicked node ecb-button edit-window-nr shift-mode meta-mode) + ))) + +(defun ecb-source-item-clicked (node ecb-button edit-window-nr shift-mode meta-mode) + ;; if we are in a maximized sources-window and if a methods-buffer is + ;; contained in current layout then we have to redraw the full layout first + ;; so the contents of the clicked source-file can be displayed in the + ;; methods-buffer. + + ;; TODO: Klaus Berndl : see comment in + ;; ecb-directory-or-source-clicked + (when (and (ecb-buffer-is-maximized-p (buffer-name)) + (ecb-buffer-is-ecb-buffer-of-current-layout-p + ecb-methods-buffer-name)) + (if (ecb-member-of-symbol/value-list + (buffer-name) + ecb-maximize-next-after-maximized-select) + (progn + (ecb-maximize-ecb-buffer ecb-methods-buffer-name) + (ecb-window-select ecb-methods-buffer-name)) + (ecb-undo-maximize-ecb-buffer t))) + (ecb-set-selected-source (tree-node->data node) + (ecb-combine-ecb-button/edit-win-nr ecb-button edit-window-nr) + shift-mode) + ) + +(defecb-tree-buffer-callback ecb-source-clicked ecb-sources-buffer-name select nil + "Does all necessary when a user clicks onto a node in the sources-buffer." + (if shift-mode + (ecb-mouse-over-source-node node nil nil 'force)) + (ecb-source-item-clicked node ecb-button edit-window-nr shift-mode meta-mode)) + +(defecb-tree-buffer-callback ecb-history-clicked ecb-history-buffer-name select nil + "Does all necessary when a user clicks onto a node in the history-buffer." + (if shift-mode + (ecb-mouse-over-history-node node nil nil 'force)) + (if (= (tree-node->type node) ecb-history-nodetype-bucket) + ;; Just expand/collapse the node + (progn + (tree-node-toggle-expanded node) + ;; Update the tree-buffer with optimized display of NODE + (tree-buffer-update node)) + (ecb-source-item-clicked node ecb-button edit-window-nr shift-mode meta-mode))) + +(defun ecb-expand-directory-nodes (level) + "Set the expand level of the nodes in the ECB-directories-buffer. +For argument LEVEL see `ecb-expand-methods-nodes'. + +Be aware that for deep structured paths and a lot of source-paths this command +can last a long time - depending of machine- and disk-performance." + (interactive "nLevel: ") + (ecb-exec-in-window ecb-directories-buffer-name + (dolist (node (tree-node->children (tree-buffer-get-root))) + (tree-buffer-expand-node node level)) + (tree-buffer-update)) + (ecb-basic-buffer-sync 'force)) + + +(defun ecb-get-file-info-text (file) + "Return a file-info string for a file in the ECB sources buffer" + (let ((attrs (ecb-file-attributes file))) + (format "%s %8s %4d %10d %s %s" + (nth 8 attrs) + (user-login-name (nth 2 attrs)) + (nth 3 attrs) + (nth 7 attrs) + (format-time-string "%Y/%m/%d %H:%M" (nth 5 attrs)) + (if (equal (cdr ecb-sources-show-node-info) 'file-info-full) + file + (ecb-file-name-nondirectory file))) + )) + + +(defun ecb-mouse-over-directory-node (node &optional window no-message click-force) + "Displays help text if mouse moves over a node in the directory buffer or if +CLICK-FORCE is not nil and always with regards to the settings in +`ecb-directories-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." + (if (= (tree-node->type node) ecb-directories-nodetype-sourcefile) + (ecb-mouse-over-source-node node window no-message click-force) + (if (not (= (tree-node->type node) 3)) + (let ((str (when (or click-force + (ecb-show-minibuffer-info node window + (car ecb-directories-show-node-info)) + (and (not (equal (car ecb-directories-show-node-info) + 'never)) + (not (ecb-string= (tree-node->data node) + (tree-node->name node))) + (eq (tree-node->parent node) + (tree-buffer-get-root)))) + (if (equal (cdr ecb-directories-show-node-info) 'name) + (tree-node->name node) + (tree-node->data node))))) + (prog1 str + (unless no-message + (ecb-nolog-message str))))))) + + +(defun ecb-mouse-over-source-node (node &optional window no-message click-force) + "Displays help text if mouse moves over a node in the sources buffer or if +CLICK-FORCE is not nil and always with regards to the settings in +`ecb-sources-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 (ignore-errors ;; For buffers that hasn't been saved yet + (when (or click-force + (ecb-show-minibuffer-info node window + (car ecb-sources-show-node-info))) + (if (equal (cdr ecb-sources-show-node-info) 'name) + (tree-node->name node) + (ecb-get-file-info-text (tree-node->data node))))))) + (prog1 str + (unless no-message + (ecb-nolog-message str))))) + + +(defun ecb-mouse-over-history-node (node &optional window no-message click-force) + "Displays help text if mouse moves over a node in the history buffer or if +CLICK-FORCE is not nil and always with regards to the settings in +`ecb-history-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 (ignore-errors ;; For buffers that hasn't been saved yet + (when (or click-force + (ecb-show-minibuffer-info node window + (car ecb-history-show-node-info))) + (if (= (tree-node->type node) ecb-history-nodetype-bucket) + (tree-node->data node) + (case (cdr ecb-history-show-node-info) + (name (tree-node->name node)) + (path (ecb-source-get-filename (tree-node->data node))) + (name-path (format "%s (%s)" (tree-node->name node) + (ecb-source-get-filename (tree-node->data node)))))))))) + (prog1 str + (unless no-message + (ecb-nolog-message str))))) + +;; popups + +;; needs methods +(tree-buffer-defpopup-command ecb-create-source + "Creates a new sourcefile in current directory." + (let* ((use-dialog-box nil) + (dir (ecb-fix-filename + (funcall (if (ecb-file-directory-p (tree-node->data node)) + 'identity + 'ecb-file-name-directory) + (tree-node->data node)))) + (filename (ecb-file-name-nondirectory + (read-file-name "Source name: " (concat dir "/"))))) + (ecb-select-edit-window) + (if (save-match-data (string-match "\\.java$" filename)) + (ecb-jde-gen-class-buffer dir filename) + (find-file (concat dir "/" filename))) + (when (= (point-min) (point-max)) + (set-buffer-modified-p t) + (let ((ecb-auto-update-methods-after-save nil)) + (save-buffer)) + (ecb-rebuild-methods-buffer-with-tagcache nil nil t)) + (ecb-remove-dir-from-caches dir) + (ecb-set-selected-directory dir t) + (ecb-basic-buffer-sync))) + + +(defun ecb-grep-directory-internal (node find) + (ecb-select-edit-window) + (let* ((node-data-file (ecb-source-get-filename (tree-node->data node))) + (default-directory (concat (ecb-fix-filename + (if (ecb-file-directory-p node-data-file) + node-data-file + (ecb-file-name-directory node-data-file))) + (ecb-directory-sep-string node-data-file)))) + (call-interactively (if find + (or (and (fboundp ecb-grep-recursive-function) + ecb-grep-recursive-function) + 'grep-find) + (or (and (fboundp ecb-grep-function) + ecb-grep-function) + 'grep))))) + + +(tree-buffer-defpopup-command ecb-grep-find-directory + "Runs grep-find for current directory." + (ecb-grep-directory-internal node t)) + + +(tree-buffer-defpopup-command ecb-grep-directory + "Runs grep for current directory." + (ecb-grep-directory-internal node nil)) + + +(defun ecb-create-directory (parent-node) + (make-directory (concat (tree-node->data parent-node) "/" + (read-from-minibuffer "Directory name: "))) + (ecb-update-directory-node parent-node) + (tree-buffer-update)) + + +(tree-buffer-defpopup-command ecb-delete-directory + "Delete current directory." + (let ((dir (tree-node->data node))) + (when (ecb-confirm (concat "Really delete directory" dir "? ")) + (delete-directory (tree-node->data node)) + (ecb-update-directory-node (tree-node->parent node)) + (tree-buffer-update)))) + + +(defun ecb-dired-directory-internal (node &optional other) + (ecb-select-edit-window) + (let* ((node-data-file (ecb-source-get-filename (tree-node->data node))) + (dir (ecb-fix-filename + (funcall (if (ecb-file-directory-p node-data-file) + 'identity + 'ecb-file-name-directory) + node-data-file)))) + (funcall (if other + 'dired-other-window + 'dired) + dir))) + + +(tree-buffer-defpopup-command ecb-dired-directory + "Run dired for this directory." + (ecb-dired-directory-internal node)) + + +(tree-buffer-defpopup-command ecb-dired-directory-other-window + "Run dired for this directory in the other window." + (ecb-dired-directory-internal node 'other)) + + +(defun ecb-dir-run-cvs-op (node op op-arg-list) + (let ((dir (tree-node->data node))) + (funcall op dir op-arg-list))) + + +(tree-buffer-defpopup-command ecb-dir-popup-cvs-status + "Check status of directory \(and below) in pcl-cvs mode." + (ecb-dir-run-cvs-op node 'cvs-status '("-v"))) + + +(tree-buffer-defpopup-command ecb-dir-popup-cvs-examine + "Examine directory \(and below) in pcl-cvs mode." + (ecb-dir-run-cvs-op node 'cvs-examine '("-d" "-P"))) + + +(tree-buffer-defpopup-command ecb-dir-popup-cvs-update + "Update directory \(and below) in pcl-cvs mode." + (ecb-dir-run-cvs-op node 'cvs-update '("-d" "-P"))) + + +(defvar ecb-common-directories-menu nil) + + +(setq ecb-common-directories-menu + '(("Grep" + (ecb-grep-directory "Grep Directory") + (ecb-grep-find-directory "Grep Directory recursive")) + ;;("---") + ("Dired" + (ecb-dired-directory "Open in Dired") + (ecb-dired-directory-other-window "Open in Dired other window")) + ("---") + (ecb-create-source "Create Sourcefile") + (ecb-create-directory "Create Child Directory") + (ecb-delete-directory "Delete Directory") + ("---") + (ecb-add-source-path-node "Add Source Path"))) + + +(defvar ecb-directories-menu nil + "Built-in menu for the directories-buffer for directories which are not a +source-path of `ecb-source-path'.") +(setq ecb-directories-menu + (append + ecb-common-directories-menu + '((ecb-node-to-source-path "Make This a Source Path") + ("---") + (ecb-maximize-ecb-window-menu-wrapper "Maximize window")))) + + +(defvar ecb-directories-menu-title-creator + (function (lambda (node) + (let ((node-type (tree-node->type node)) + (node-name (tree-node->name node))) + (cond ((= node-type ecb-directories-nodetype-directory) + (format "%s (Directory)" node-name)) + ((= node-type ecb-directories-nodetype-sourcefile) + (format "%s (File)" node-name)) + ((= node-type ecb-directories-nodetype-sourcepath) + (format "%s (Source-path)" node-name)))))) + "The menu-title for the directories menu. Has to be either a string or a +function which is called with current node and has to return a string.") + +(tree-buffer-defpopup-command ecb-open-source-in-editwin1 + "Open current source-file the 1. edit-window." + ;; We can use `ecb-source-clicked' for history-buffer too because shift-mode + ;; is nil. + (ecb-source-clicked node 3 1 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin2 + "Open current source-file the 2. edit-window." + (ecb-source-clicked node 3 2 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin3 + "Open current source-file the 3. edit-window." + (ecb-source-clicked node 3 3 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin4 + "Open current source-file the 4. edit-window." + (ecb-source-clicked node 3 4 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin5 + "Open current source-file the 5. edit-window." + (ecb-source-clicked node 3 5 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin6 + "Open current source-file the 6. edit-window." + (ecb-source-clicked node 3 6 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin7 + "Open current source-file the 7. edit-window." + (ecb-source-clicked node 3 7 nil nil)) +(tree-buffer-defpopup-command ecb-open-source-in-editwin8 + "Open current source-file the 8. edit-window." + (ecb-source-clicked node 3 8 nil nil)) + +(defun ecb-dir/source/hist-menu-editwin-entries () + "Generate popup-menu-entries for each edit-window if there are at least 2 +edit-windows. Otherwise return nil." + (let ((edit-win-list (ecb-canonical-edit-windows-list)) + (result nil)) + (when (> (length edit-win-list) 1) + (dotimes (i (min 8 (length edit-win-list))) + (setq result + (append result + (list (list (intern (format "ecb-open-source-in-editwin%d" (1+ i))) + (format "edit-window %d" (1+ i))))))) + (append (list (list "---")) ;; we want a separator + (list (append (list "Open source-file in ...") + result)))))) + + +(defun ecb-directories-menu-creator (tree-buffer-name node) + "Creates the popup-menus for the directories-buffer." + (setq ecb-layout-prevent-handle-ecb-window-selection t) + (let ((dyn-user-extension + (and (functionp ecb-directories-menu-user-extension-function) + (funcall ecb-directories-menu-user-extension-function + tree-buffer-name node))) + (dyn-builtin-extension (ecb-dir/source/hist-menu-editwin-entries))) + (list (cons ecb-directories-nodetype-directory + (funcall (or ecb-directories-menu-sorter + 'identity) + (append dyn-user-extension + ecb-directories-menu-user-extension + ecb-directories-menu))) + (cons ecb-directories-nodetype-sourcefile + (funcall (or ecb-sources-menu-sorter + 'identity) + (append dyn-user-extension + ecb-sources-menu-user-extension + ecb-sources-menu + dyn-builtin-extension))) + (cons ecb-directories-nodetype-sourcepath + (funcall (or ecb-directories-menu-sorter + 'identity) + (append dyn-user-extension + ecb-directories-menu-user-extension + ecb-source-path-menu)))))) + +;; source-path tokens + +(defvar ecb-source-path-menu nil + "Built-in menu for the directories-buffer for directories which are elements of +`ecb-source-path'.") +(setq ecb-source-path-menu + (append + ecb-common-directories-menu + '((ecb-delete-source-path "Delete Source Path") + ("---") + (ecb-maximize-ecb-window-menu-wrapper "Maximize window")))) + + +(tree-buffer-defpopup-command ecb-delete-source + "Deletes current sourcefile." + (let* ((file (ecb-source-get-filename (tree-node->data node))) + (dir (ecb-fix-filename (ecb-file-name-directory file)))) + (when (ecb-confirm (concat "Really delete " (ecb-file-name-nondirectory file) "? ")) + (when (get-file-buffer file) + ;; if there is an open buffer for this source then we kill them - this + ;; ensures also that if there are indirect-buffers to this base-buffer + ;; these buffers will be killed too by Emacs and the called + ;; kill-buffer-hook is called for each indirect-buffer - so all + ;; history-nodes for these are removed. + (kill-buffer (get-file-buffer file))) + (ecb-delete-file file) + (ecb-remove-dir-from-caches dir) + (ecb-set-selected-directory dir t)))) + + +(tree-buffer-defpopup-command ecb-file-popup-ediff-revision + "Diff file against repository with ediff." + (let ((file (ecb-source-get-filename (tree-node->data node)))) + (ediff-revision file))) + + +(tree-buffer-defpopup-command ecb-file-popup-vc-next-action + "Checkin/out file." + (ecb-display-source (tree-node->data node) nil) + (call-interactively 'vc-next-action)) + + +(tree-buffer-defpopup-command ecb-file-popup-vc-log + "Print revision history of file." + (ecb-display-source (tree-node->data node) nil) + (call-interactively 'vc-print-log)) + + +(tree-buffer-defpopup-command ecb-file-popup-vc-annotate + "Annotate file" + (ecb-display-source (tree-node->data node) nil) + (call-interactively 'vc-annotate)) + +(tree-buffer-defpopup-command ecb-file-popup-vc-diff + "Diff file against last version in repository." + (ecb-display-source (tree-node->data node) nil) + (call-interactively 'vc-diff)) + +(tree-buffer-defpopup-command ecb-file-popup-vc-refresh-file + "Recompute the VC-state for this file." + (let ((file (ecb-source-get-filename (tree-node->data node)))) + (ecb-vc-cache-remove file) + (ecb-vc-reset-vc-stealthy-checks))) + +(tree-buffer-defpopup-command ecb-file-popup-vc-refresh-dir + "Recompute the VC-state-values for the whole directory." + (let ((dir (ecb-fix-filename + (ecb-file-name-directory + (ecb-source-get-filename (tree-node->data node)))))) + (ecb-vc-cache-remove-files-of-dir dir) + (ecb-vc-reset-vc-stealthy-checks))) + +(defvar ecb-sources-menu nil + "Built-in menu for the sources-buffer.") + +(setq ecb-sources-menu + '(("Grep" + (ecb-grep-directory "Grep Directory") + (ecb-grep-find-directory "Grep Directory recursive")) + ("Dired" + (ecb-dired-directory "Open Dir in Dired") + (ecb-dired-directory-other-window "Open Dir in Dired other window")) + ("Filter" + (ecb-popup-sources-filter-by-ext "Filter by extension") + (ecb-popup-sources-filter-by-regexp "Filter by a regexp") + (ecb-popup-sources-filter-none "No filter")) + ("---") + (ecb-create-source "Create Sourcefile") + (ecb-delete-source "Delete Sourcefile") + ("---") + (ecb-maximize-ecb-window-menu-wrapper "Maximize window"))) + + +(defvar ecb-sources-menu-title-creator + (function (lambda (node) + (ecb-file-name-nondirectory (tree-node->data node)))) + "The menu-title for the sources menu. See +`ecb-directories-menu-title-creator'.") + +(defun ecb-sources-menu-creator (tree-buffer-name node) + "Creates the popup-menus for the sources-buffer." + (setq ecb-layout-prevent-handle-ecb-window-selection t) + (let ((dyn-user-extension + (and (functionp ecb-sources-menu-user-extension-function) + (funcall ecb-sources-menu-user-extension-function + tree-buffer-name node))) + (dyn-builtin-extension (ecb-dir/source/hist-menu-editwin-entries))) + (list (cons ecb-sources-nodetype-sourcefile + (funcall (or ecb-sources-menu-sorter + 'identity) + (append dyn-user-extension + ecb-sources-menu-user-extension + ecb-sources-menu + dyn-builtin-extension)))))) + +;; history popups + +(tree-buffer-defpopup-command ecb-history-kill-buffer + "Kills the buffer for current entry." + (let* ((buf (ecb-source-get-buffer (tree-node->data node)))) + (when buf + ;; current buffer is always the history-buffer - we have to set + ;; the buffer representing data (buf) as current buffer - otherwise + ;; ecb-kill-buffer-hook would not run correctly + (with-current-buffer buf + (kill-buffer buf) + (ecb-add-buffers-to-history-new))))) + +(defun ecb-history-filter-by-ext (ext-str) + "Filter history entries by extension. Returns t if the filter has been +applied otherwise nil." + (if (= (length ext-str) 0) + (setq ecb-history-filter + (cons `(lambda (buffername filename) + ;; for extention-filter we only use the filename-arg + (save-match-data + (string-match "^[^.]+$" filename))) + "No ext.")) + (setq ecb-history-filter + (cons `(lambda (buffername filename) + ;; for extention-filter we only use the filename-arg + (save-match-data + (string-match ,(format "\\.%s\\'" ext-str) + filename))) + (format "*.%s" ext-str)))) + (ecb-add-buffers-to-history-new)) + +(tree-buffer-defpopup-command ecb-popup-history-filter-by-ext + "Filter history entries by extension." + (let ((ext-str (read-string "Insert the filter-extension without leading dot: " + (and node + (ecb-file-name-extension + (ecb-source-get-filename (tree-node->data node))))))) + (ecb-history-filter-by-ext ext-str))) + +(defun ecb-history-filter-by-regexp (&optional regexp filter-display) + "Filter history entries by REGEXP. If the first optional argument REGEXP is +nil then it asks for a regexp. If second argument FILTER-DISPLAY is not nil +then it is displayed in the modeline of the history-buffer for current +regexp-filter. Otherwise the regexp itself. Returns t if the filter has been +applied otherwise nil." + (let ((regexp-str (or regexp (read-string "Insert the filter-regexp: ")))) + (if (> (length regexp-str) 0) + (setq ecb-history-filter + (cons `(lambda (buffername filename) + ;; for regexp-filter we only use the buffername-arg + (save-match-data + (string-match ,regexp-str buffername))) + (or filter-display regexp-str))))) + (ecb-add-buffers-to-history-new)) + +(tree-buffer-defpopup-command ecb-popup-history-filter-by-regexp + "Filter history entries by regexp by popup." + (ecb-history-filter-by-regexp)) + +(tree-buffer-defpopup-command ecb-popup-history-filter-all-existing + "No history filter, i.e. add all existing file-buffers to the history." + (ecb-add-all-buffers-to-history)) + +(tree-buffer-defpopup-command ecb-file-popup-vc-refresh-all-files + "Recompute the VC-state for the whole history." + (when (equal (buffer-name) ecb-history-buffer-name) + (let ((files (mapcar (function (lambda (node) + (ecb-source-get-filename (tree-node->data node)))) + (tree-node->children (tree-buffer-get-root))))) + (dolist (file files) + (ecb-vc-cache-remove file)) + (ecb-vc-reset-vc-stealthy-checks)))) + +(tree-buffer-defpopup-command ecb-popup-history-bucketize-by-dir + "Bucketize the history by directory. + +It changes temporaly the option `ecb-history-make-buckets' to the value +'directory." + (customize-set-variable 'ecb-history-make-buckets 'directory)) + +(tree-buffer-defpopup-command ecb-popup-history-bucketize-by-dir-with-sp + "Bucketize the history by directory with source-path substitution. + +It changes temporaly the option `ecb-history-make-buckets' to the value +'directory-with-source-path." + (customize-set-variable 'ecb-history-make-buckets 'directory-with-source-path)) + +(tree-buffer-defpopup-command ecb-popup-history-bucketize-by-mode + "Bucketize the history by major-mode. + +It changes temporaly the option `ecb-history-make-buckets' to the value +'mode." + (customize-set-variable 'ecb-history-make-buckets 'mode)) + +(tree-buffer-defpopup-command ecb-popup-history-bucketize-by-ext + "Bucketize the history by file-extension. + +It changes temporaly the option `ecb-history-make-buckets' to the value +'extension." + (customize-set-variable 'ecb-history-make-buckets 'extension)) + +(tree-buffer-defpopup-command ecb-popup-history-bucketize-by-reg + "Bucketize the history by regular expressions. + +It opens the customize-buffer for the option `ecb-history-make-buckets' so the +regular expressions can be inserted." + (customize-option 'ecb-history-make-buckets)) + +(tree-buffer-defpopup-command ecb-popup-history-bucketize-never + "Remove all bucketizing in the history - display it \"flat\". + +It changes temporaly the option `ecb-history-make-buckets' to the value +'never." + (customize-set-variable 'ecb-history-make-buckets 'never)) + +(defun ecb-history-filter () + "Apply a filter to the history-buffer to reduce the number of entries. +So you get a better overlooking. There are three choices: +- Filter by extension: Just insert the extension you want the History-buffer + being filtered. Insert the extension without leading dot! +- Filter by regexp: Insert the filter as regular expression. +- No filter: This means to display an entry for all currently living + file-buffers." + (interactive) + (let ((choice (ecb-query-string "Filter history by:" + '("extension" "regexp" "no filter")))) + (cond ((ecb-string= choice "extension") + (ecb-history-filter-by-ext + (read-string "Insert the filter-extension without leading dot: "))) + ((ecb-string= choice "regexp") + (ecb-history-filter-by-regexp)) + (t (ecb-add-all-buffers-to-history))))) + +(defvar ecb-history-common-menu nil + "Common menu entries for history-nodes") +(setq ecb-history-common-menu + '((ecb-popup-history-filter-all-existing "Exactly all living file-buffers") + ("---") + ("Bucketize" + (ecb-popup-history-bucketize-never "No bucketizing") + (ecb-popup-history-bucketize-by-dir "by directory") + (ecb-popup-history-bucketize-by-dir-with-sp "by directory with source-path") + (ecb-popup-history-bucketize-by-mode "by major-mode") + (ecb-popup-history-bucketize-by-ext "by file-extension") + (ecb-popup-history-bucketize-by-reg "by reg. expr.")) + ("---") + (ecb-maximize-ecb-window-menu-wrapper "Maximize window"))) + + +(defvar ecb-history-menu nil + "Built-in menu for the history-buffer.") +(setq ecb-history-menu + (append + '(("Grep" + (ecb-grep-directory "Grep Directory") + (ecb-grep-find-directory "Grep Directory recursive")) + ;;("---") + ("Dired" + (ecb-dired-directory "Open Dir in Dired") + (ecb-dired-directory-other-window "Open Dir in Dired other window")) + ("Filter" + (ecb-popup-history-filter-by-ext "Filter by extension") + (ecb-popup-history-filter-by-regexp "Filter by regexp") + (ecb-popup-history-filter-all-existing "No filter")) + ("---") + (ecb-history-kill-buffer "Kill Buffer") + (ecb-delete-source "Delete Sourcefile")) + ecb-history-common-menu)) + +(defvar ecb-history-menu-title-creator + (function (lambda (node) + (tree-node->name node))) + "The menu-title for the history menu. See +`ecb-directories-menu-title-creator'.") + +(defun ecb-history-menu-creator (tree-buffer-name node) + "Creates the popup-menus for the history-buffer." + (setq ecb-layout-prevent-handle-ecb-window-selection t) + (let ((dyn-user-extension + (and (functionp ecb-history-menu-user-extension-function) + (funcall ecb-history-menu-user-extension-function + tree-buffer-name node))) + (dyn-builtin-extension (ecb-dir/source/hist-menu-editwin-entries))) + (list (cons ecb-history-nodetype-filebuffer + (funcall (or ecb-history-menu-sorter 'identity) + (append dyn-user-extension + ecb-history-menu-user-extension + ecb-history-menu + dyn-builtin-extension))) + (cons ecb-history-nodetype-bucket + (funcall (or ecb-history-menu-sorter 'identity) + (append dyn-user-extension + ecb-history-common-menu))) + (cons ecb-history-nodetype-indirect-filebuffer + (funcall (or ecb-history-menu-sorter 'identity) + (append dyn-user-extension + ecb-history-menu-user-extension + ecb-history-menu + dyn-builtin-extension)))))) + +;; create the tree-buffers + +(defecb-tree-buffer-creator ecb-create-directories-tree-buffer + ecb-directories-buffer-name + "Create the tree-buffer for directories" + (tree-buffer-create + ecb-directories-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-directory-node + :mouse-highlight-fn t ;; highlight each node when moving mouse over it + :node-data-equal-fn 'equal + :maybe-empty-node-types (list ecb-directories-nodetype-directory + ecb-directories-nodetype-sourcepath) + ;; Now no longer tree-buffer decides if a node is displayed as leave but + ;; now the file-browser does it in the function `ecb-tree-node-add-files' - + ;; Reason: We have now to deal with the VC-support + :leaf-node-types nil ;;(list ecb-directories-nodetype-sourcefile) + :menu-creator 'ecb-directories-menu-creator + :menu-titles (list (cons ecb-directories-nodetype-directory + ecb-directories-menu-title-creator) + (cons ecb-directories-nodetype-sourcefile + ecb-directories-menu-title-creator) + (cons ecb-directories-nodetype-sourcepath + ecb-directories-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-directories-buffer-name + ecb-tree-truncate-lines) + :read-only t + :tree-indent ecb-tree-indent + :incr-search-p ecb-tree-incremental-search + :incr-search-additional-pattern ecb-vc-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-directories-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 (list (cons ecb-directories-nodetype-sourcefile + ecb-source-in-directories-buffer-face)) + :expand-symbol-before-p ecb-tree-expand-symbol-before + :highlight-node-face ecb-directory-face + :general-face ecb-directories-general-face + ;; we add an after-create-hook to the tree-buffer + :after-create-hook (append + (list (function (lambda () + (local-set-key [f2] 'ecb-customize) + (local-set-key [f3] 'ecb-show-help) + (local-set-key [f4] 'ecb-add-source-path) + (ecb-common-after-tree-buffer-create-actions)))) + ecb-common-tree-buffer-after-create-hook + ecb-directories-buffer-after-create-hook) + :after-update-hook 'ecb-stealth-tasks-after-directories-update + )) + +(defecb-tree-buffer-creator ecb-create-sources-tree-buffer ecb-sources-buffer-name + "Create the tree-buffer for sources" + (tree-buffer-create + ecb-sources-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-source-node + :mouse-highlight-fn t ;; highlight each node when moving mouse over it + :node-data-equal-fn 'equal + :maybe-empty-node-types nil + ;; If we want to display the VC-state in the sources-icon then we should + ;; set this argument to nil because then we must compute the needed icon in + ;; the file-browser and not in the tree-buffer-library (analogue to the + ;; methods-icons computet in the methods-browser). + :leaf-node-types nil ;; (list ecb-sources-nodetype-sourcefile) + :menu-creator 'ecb-sources-menu-creator + :menu-titles (list (cons ecb-sources-nodetype-sourcefile + ecb-sources-menu-title-creator)) + :modeline-menu-creator 'ecb-common-tree-buffer-modeline-menu-creator + :sticky-parent-p nil + :sticky-parent-fn nil + :trunc-lines (ecb-member-of-symbol/value-list ecb-sources-buffer-name + ecb-tree-truncate-lines) + :read-only t + :tree-indent ecb-tree-indent + :incr-search-p ecb-tree-incremental-search + :incr-search-additional-pattern ecb-vc-incr-searchpattern-node-prefix + ;; TODO: Klaus Berndl : make an option for this + :reduce-tree-for-incr-search-fn + (lambda (search full-search-regexp) + (if (ecb-apply-filter-to-sources-buffer (and search + (> (length search) 0) + full-search-regexp) + search) + search + "")) + :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-sources-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-source-face + :general-face ecb-sources-general-face + :after-create-hook (append + (list (function (lambda () + (ecb-common-after-tree-buffer-create-actions)))) + ecb-common-tree-buffer-after-create-hook + ecb-sources-buffer-after-create-hook) + :after-update-hook 'ecb-stealth-tasks-after-sources-update)) + +(defecb-tree-buffer-creator ecb-create-history-tree-buffer ecb-history-buffer-name + "Create the tree-buffer for history" + (tree-buffer-create + ecb-history-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-history-node + :mouse-highlight-fn t ;; highlight each node when moving mouse over it + :node-data-equal-fn 'equal + :maybe-empty-node-types nil + :leaf-node-types nil + :menu-creator 'ecb-history-menu-creator + :menu-titles (list (cons ecb-history-nodetype-filebuffer + ecb-history-menu-title-creator) + (cons ecb-history-nodetype-indirect-filebuffer + ecb-history-menu-title-creator) + (cons ecb-history-nodetype-bucket + ecb-history-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-history-buffer-name + ecb-tree-truncate-lines) + :read-only t + :tree-indent ecb-tree-indent + :incr-search-p ecb-tree-incremental-search + :incr-search-additional-pattern ecb-vc-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-history-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-history-face + :general-face ecb-history-general-face + :after-create-hook (append + (list (function (lambda () + (ecb-common-after-tree-buffer-create-actions)))) + ecb-common-tree-buffer-after-create-hook + ecb-history-buffer-after-create-hook) + :after-update-hook 'ecb-stealth-tasks-after-history-update)) + +(silentcomp-provide 'ecb-file-browser) + +;;; ecb-file-browser.el ends here diff --git a/conf/emacs.d/ecb/ecb-help.el b/conf/emacs.d/ecb/ecb-help.el new file mode 100644 index 0000000..7999399 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-help.el @@ -0,0 +1,458 @@ +;;; 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 +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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 diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-close.xpm new file mode 100644 index 0000000..3121562 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-close.xpm @@ -0,0 +1,48 @@ +/* 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$ ", +" #$$$$$$$# ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-empty.xpm new file mode 100644 index 0000000..ccc8695 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-empty.xpm @@ -0,0 +1,41 @@ +/* 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", +" ", +" .. ", +" +@#. ", +" .$%&*. ", +"=-;>,'). ", +"=!~{']^. ", +" ./(_:. ", +" <[}. ", +" .. ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-end-guide.xpm new file mode 100644 index 0000000..f5b1199 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-end-guide.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * end_guide_xpm[] = { +"6 10 2 1", +" c None", +". c #ADA5C6", +" . ", +" . ", +" . ", +" . ", +" . ", +" ", +" ", +" ", +" ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-guide.xpm new file mode 100644 index 0000000..c9db0e7 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-guide.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * guide_xpm[] = { +"6 10 2 1", +" c None", +". c #ADA5C6", +" . ", +" . ", +" . ", +" . ", +" . ", +" . ", +" . ", +" . ", +" . ", +" . "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-handle.xpm new file mode 100644 index 0000000..d74113c --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-handle.xpm @@ -0,0 +1,16 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 10 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-leaf.xpm new file mode 100644 index 0000000..cef6024 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-leaf.xpm @@ -0,0 +1,34 @@ +/* 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", +" ", +" .+++ ", +" @#$%&* ", +" =#$%&-;* ", +">#$%,-;')+ ", +">$%,-;')!+ ", +" ~&-;'){* ", +" ];'){* ", +" ^+++ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-guide.xpm new file mode 100644 index 0000000..61b3e93 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-guide.xpm @@ -0,0 +1,14 @@ +/* XPM */ +static char * no_guide_xpm[] = { +"6 10 1 1", +" c None", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-handle.xpm new file mode 100644 index 0000000..237015c --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-no-handle.xpm @@ -0,0 +1,15 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 10 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-open.xpm new file mode 100644 index 0000000..8388517 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-10/ecb-open.xpm @@ -0,0 +1,50 @@ +/* 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$ ", +" #$$$$$$$# ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-close.xpm new file mode 100644 index 0000000..e535183 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-close.xpm @@ -0,0 +1,51 @@ +/* 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. ", +" ....... ", +" ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-empty.xpm new file mode 100644 index 0000000..88ea9d9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-empty.xpm @@ -0,0 +1,277 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-end-guide.xpm new file mode 100644 index 0000000..8d2759e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-end-guide.xpm @@ -0,0 +1,277 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-guide.xpm new file mode 100644 index 0000000..8b31487 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-guide.xpm @@ -0,0 +1,277 @@ +/* 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`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-handle.xpm new file mode 100644 index 0000000..1c38784 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-handle.xpm @@ -0,0 +1,19 @@ +/* XPM */ +static char * ecb_handle_xpm[] = { +"6 14 2 1", +" c None", +". c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"......", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-leaf.xpm new file mode 100644 index 0000000..a5fdb26 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-leaf.xpm @@ -0,0 +1,277 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-guide.xpm new file mode 100644 index 0000000..fe34f00 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-guide.xpm @@ -0,0 +1,277 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-handle.xpm new file mode 100644 index 0000000..f207331 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-no-handle.xpm @@ -0,0 +1,18 @@ +/* XPM */ +static char * ecb_no_handle_xpm[] = { +"6 14 1 1", +" c None", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-open.xpm new file mode 100644 index 0000000..a34bf9b --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-14/ecb-open.xpm @@ -0,0 +1,53 @@ +/* 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. ", +" ....... ", +" > ", +" > "}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-close.xpm new file mode 100644 index 0000000..880ca4d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-close.xpm @@ -0,0 +1,53 @@ +/* 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$ ", +" #$$$$$$$# ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-empty.xpm new file mode 100644 index 0000000..e8086be --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-empty.xpm @@ -0,0 +1,278 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-end-guide.xpm new file mode 100644 index 0000000..480e912 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-end-guide.xpm @@ -0,0 +1,278 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-guide.xpm new file mode 100644 index 0000000..d2a029d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-guide.xpm @@ -0,0 +1,278 @@ +/* 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`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-handle.xpm new file mode 100644 index 0000000..b66c6bf --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-handle.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 15 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-leaf.xpm new file mode 100644 index 0000000..32ac453 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-leaf.xpm @@ -0,0 +1,278 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-guide.xpm new file mode 100644 index 0000000..0832c0b --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-guide.xpm @@ -0,0 +1,278 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-handle.xpm new file mode 100644 index 0000000..d88265a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-no-handle.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 15 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-open.xpm new file mode 100644 index 0000000..4ed6d69 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-15/ecb-open.xpm @@ -0,0 +1,55 @@ +/* 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-close.xpm new file mode 100644 index 0000000..eaf3bd5 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-close.xpm @@ -0,0 +1,54 @@ +/* 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$ ", +" #$$$$$$$# ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-empty.xpm new file mode 100644 index 0000000..66b5173 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-empty.xpm @@ -0,0 +1,279 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-end-guide.xpm new file mode 100644 index 0000000..86ded17 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-end-guide.xpm @@ -0,0 +1,279 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-guide.xpm new file mode 100644 index 0000000..9ee05db --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-guide.xpm @@ -0,0 +1,279 @@ +/* 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`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-handle.xpm new file mode 100644 index 0000000..6ef3f32 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-handle.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 16 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-leaf.xpm new file mode 100644 index 0000000..45e361d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-leaf.xpm @@ -0,0 +1,279 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-guide.xpm new file mode 100644 index 0000000..d53a394 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-guide.xpm @@ -0,0 +1,279 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-handle.xpm new file mode 100644 index 0000000..1d2574b --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-no-handle.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 16 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-open.xpm new file mode 100644 index 0000000..da0d30c --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-16/ecb-open.xpm @@ -0,0 +1,56 @@ +/* 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-close.xpm new file mode 100644 index 0000000..5d3710e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-close.xpm @@ -0,0 +1,55 @@ +/* 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$ ", +" #$$$$$$$# ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-empty.xpm new file mode 100644 index 0000000..bd4c711 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-empty.xpm @@ -0,0 +1,280 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-end-guide.xpm new file mode 100644 index 0000000..4eaef16 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-end-guide.xpm @@ -0,0 +1,280 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-guide.xpm new file mode 100644 index 0000000..490b2a3 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-guide.xpm @@ -0,0 +1,280 @@ +/* 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`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-handle.xpm new file mode 100644 index 0000000..6927e96 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-handle.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 17 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-leaf.xpm new file mode 100644 index 0000000..86914df --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-leaf.xpm @@ -0,0 +1,280 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-guide.xpm new file mode 100644 index 0000000..cdd2655 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-guide.xpm @@ -0,0 +1,280 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-handle.xpm new file mode 100644 index 0000000..caf078a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-no-handle.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 17 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-open.xpm new file mode 100644 index 0000000..7440ff3 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-17/ecb-open.xpm @@ -0,0 +1,57 @@ +/* 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-close.xpm new file mode 100644 index 0000000..d51ced2 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-close.xpm @@ -0,0 +1,56 @@ +/* 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$ ", +" #$$$$$$$# ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-empty.xpm new file mode 100644 index 0000000..81c279a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-empty.xpm @@ -0,0 +1,281 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-end-guide.xpm new file mode 100644 index 0000000..d805eed --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-end-guide.xpm @@ -0,0 +1,281 @@ +/* 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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-guide.xpm new file mode 100644 index 0000000..cb95818 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-guide.xpm @@ -0,0 +1,281 @@ +/* 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`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-handle.xpm new file mode 100644 index 0000000..dbbd508 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-handle.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 18 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-leaf.xpm new file mode 100644 index 0000000..11da467 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-leaf.xpm @@ -0,0 +1,281 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 18 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`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" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-guide.xpm new file mode 100644 index 0000000..65ac162 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-guide.xpm @@ -0,0 +1,281 @@ +/* XPM */ +static char *no-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 18 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", +"`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-handle.xpm new file mode 100644 index 0000000..3cb8ede --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-no-handle.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 18 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-open.xpm new file mode 100644 index 0000000..7cfcd98 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-18/ecb-open.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char * ecbopen_xpm[] = { +"16 18 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-close.xpm new file mode 100644 index 0000000..0bdb691 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-close.xpm @@ -0,0 +1,57 @@ +/* XPM */ +static char * ecbclose_xpm[] = { +"16 19 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$ ", +" #$$$$$$$# ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-empty.xpm new file mode 100644 index 0000000..b5c14d9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-empty.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *empty[] = { +/* width height num_colors chars_per_pixel */ +" 16 19 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", +"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-end-guide.xpm new file mode 100644 index 0000000..c2efee9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-end-guide.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *end-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 19 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", +"`c`c`c`c`c`c" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-guide.xpm new file mode 100644 index 0000000..b8fd211 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-guide.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 19 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`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-handle.xpm new file mode 100644 index 0000000..83b915e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-handle.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 19 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-leaf.xpm new file mode 100644 index 0000000..2911f08 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-leaf.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 19 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`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", +"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-guide.xpm new file mode 100644 index 0000000..43a7eae --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-guide.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *no-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 19 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", +"`g`g`g`g`g`g", +"`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-handle.xpm new file mode 100644 index 0000000..48a9732 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-no-handle.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 19 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-open.xpm new file mode 100644 index 0000000..92c2c7a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-19/ecb-open.xpm @@ -0,0 +1,59 @@ +/* XPM */ +static char * ecbopen_xpm[] = { +"16 19 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-close.xpm new file mode 100644 index 0000000..e178e2a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-close.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char * ecbclose_xpm[] = { +"16 20 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$ ", +" #$$$$$$$# ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-empty.xpm new file mode 100644 index 0000000..1f26822 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-empty.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *empty[] = { +/* width height num_colors chars_per_pixel */ +" 16 20 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`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", +"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-end-guide.xpm new file mode 100644 index 0000000..1ac47f8 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-end-guide.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *end-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 20 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`c`c`c`c`c", +"`c`c`c`c`c`c" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-guide.xpm new file mode 100644 index 0000000..b75ac48 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-guide.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 20 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`c`c`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-handle.xpm new file mode 100644 index 0000000..5fb978a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-handle.xpm @@ -0,0 +1,26 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 20 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-leaf.xpm new file mode 100644 index 0000000..ab6bc04 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-leaf.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 20 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`f`f`f", +"`f`f`f`f`f`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", +"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-guide.xpm new file mode 100644 index 0000000..875ab96 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-guide.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *no-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 20 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", +"`g`g`g`g`g`g", +"`g`g`g`g`g`g", +"`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-handle.xpm new file mode 100644 index 0000000..6210d03 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-no-handle.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 20 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-open.xpm new file mode 100644 index 0000000..232213a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-20/ecb-open.xpm @@ -0,0 +1,60 @@ +/* XPM */ +static char * ecbopen_xpm[] = { +"16 20 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-close.xpm new file mode 100644 index 0000000..488a444 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-close.xpm @@ -0,0 +1,59 @@ +/* XPM */ +static char * ecbclose_xpm[] = { +"16 21 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$ ", +" #$$$$$$$# ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-empty.xpm new file mode 100644 index 0000000..6bb0a28 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-empty.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *empty[] = { +/* width height num_colors chars_per_pixel */ +" 16 21 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`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", +"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g", +"`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-end-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-end-guide.xpm new file mode 100644 index 0000000..8e5d727 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-end-guide.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *end-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 21 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`c`c`c`c`c", +"`c`c`c`c`c`c", +"`c`c`c`c`c`c" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-guide.xpm new file mode 100644 index 0000000..56006ee --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-guide.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 21 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`c`c`#", +"`c`c`c`c`c`#" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-handle.xpm new file mode 100644 index 0000000..13f1a3e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-handle.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecbhandle_xpm[] = { +"8 21 3 1", +" c None", +"! c black", +"# c #ADA5C6", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"########", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-leaf.xpm new file mode 100644 index 0000000..8b5db38 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-leaf.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 21 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`f`f`f", +"`f`f`f`f`f`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", +"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f", +"`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-guide.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-guide.xpm new file mode 100644 index 0000000..82729cf --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-guide.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *no-guide[] = { +/* width height num_colors chars_per_pixel */ +" 6 21 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", +"`g`g`g`g`g`g", +"`g`g`g`g`g`g", +"`g`g`g`g`g`g", +"`g`g`g`g`g`g" +}; diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-handle.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-handle.xpm new file mode 100644 index 0000000..d5ebd3f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-no-handle.xpm @@ -0,0 +1,26 @@ +/* XPM */ +static char * ecbnohandle_xpm[] = { +"8 21 2 1", +" c None", +"! c black", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-open.xpm new file mode 100644 index 0000000..abe9080 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/default/height-21/ecb-open.xpm @@ -0,0 +1,61 @@ +/* XPM */ +static char * ecbopen_xpm[] = { +"16 21 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$ ", +" #$$$$$$$# ", +" . ", +" . ", +" . ", +" . ", +" . ", +" . "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-close.xpm new file mode 100644 index 0000000..4fe0ee0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-close.xpm @@ -0,0 +1,62 @@ +/* XPM */ +static char * close_xpm[] = { +"16 10 49 1", +" c None", +". c #98981E", +"+ c #96961B", +"@ c #929216", +"# c #FFFDBC", +"$ c #B5B54B", +"% c #949418", +"& c #94941A", +"* c #97971D", +"= c #98981F", +"- c #999923", +"; c #8E8E0F", +"> c #878706", +", c #95951B", +"' c #98981D", +") c #9F9F26", +"! c #ADAD40", +"~ c #B0B045", +"{ c #B5B54A", +"] c #B6B651", +"^ c #BCBC59", +"/ c #919115", +"( c #8B8B0B", +"_ c #A4A430", +": c #A9A935", +"< c #AFAF44", +"[ c #B4B449", +"} c #B5B550", +"| c #BDBD5A", +"1 c #8C8C0C", +"2 c #AAAA36", +"3 c #BEBE5B", +"4 c #C3C361", +"5 c #939317", +"6 c #8D8D0E", +"7 c #ADAD3F", +"8 c #B6B650", +"9 c #BBBB58", +"0 c #C2C260", +"a c #C6C669", +"b c #939319", +"c c #8D8D0F", +"d c #C2C25F", +"e c #C9C96E", +"f c #868603", +"g c #8E8E11", +"h c #8F8F12", +"i c #919114", +"j c #878705", +" ", +" ..+ ", +"@##$%&*=-; ", +">,')!~{]^/ ", +"(_:!<[}^|/ ", +"12!<$]^345 ", +"67<{89|0ab ", +"c<[89|dae& ", +"f6;ghhi/@j ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-empty.xpm new file mode 100644 index 0000000..35697d5 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-empty.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char * empty_xpm[] = { +"16 10 25 1", +" c None", +". c #454545", +"+ c #A5A5A5", +"@ c #A3A3A3", +"# c #999999", +"$ c #7B7B7B", +"% c #666666", +"& c #656565", +"* c #636363", +"= c #616161", +"- c #5B5B5B", +"; c #424242", +"> c #7E7E7E", +", c #6F6F6F", +"' c #6D6D6D", +") c #737373", +"! c #747474", +"~ c #797979", +"{ c #848484", +"] c #727272", +"^ c #585858", +"/ c #646464", +"( c #838383", +"_ c #858585", +": c #4F4F4F", +" ", +" ... ", +".+@#.... ", +".@$%&*=-.; ", +".>$....... ", +".,.')!~>{.. ", +"..']!~>{.^ ", +"./])~>(_. ", +"........: ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-leaf.xpm new file mode 100644 index 0000000..830e046 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-leaf.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * leaf_xpm[] = { +"16 10 19 1", +" c None", +". c #424242", +"+ c #494949", +"@ c #979797", +"# c #9D9D9D", +"$ c #A4A4A4", +"% c #737373", +"& c #999999", +"* c #9B9B9B", +"= c #A2A2A2", +"- c #B3B3B3", +"; c #939393", +"> c #989898", +", c #BABABA", +"' c #9C9C9C", +") c #949494", +"! c #BDBDBD", +"~ c #AFAFAF", +"{ c #B5B5B5", +" ", +"....+ ", +".@#$.% ", +".@&#... ", +".#*==-. ", +".&&;>,. ", +".')>>!. ", +".~{,!!. ", +"....... ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-open.xpm new file mode 100644 index 0000000..e2f8bed --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-10/ecb-open.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * open_xpm[] = { +"16 10 20 1", +" c None", +". c #848400", +"+ c #FFFDBC", +"@ c #D6D67B", +"# c #CECE7B", +"$ c #C6C66B", +"% c #BDBD5A", +"& c #CECE73", +"* c #B2B247", +"= c #B8B84D", +"- c #BDBD57", +"; c #C0C05D", +"> c #B9B950", +", c #C9C96A", +"' c #C1C15E", +") c #B7B74C", +"! c #BCBC56", +"~ c #C6C664", +"{ c #ADAD40", +"] c #A5A5C6", +" .. ", +".++... ", +".@##$%. ", +".@&...... ", +".&.*=-;>,. ", +".&.=-'',. ", +"..)!;~,,. ", +".{{!~,,. ", +"....... ", +" ] "}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-close.xpm new file mode 100644 index 0000000..0e748f5 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-close.xpm @@ -0,0 +1,277 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 14 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-empty.xpm new file mode 100644 index 0000000..40b0fe9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-empty.xpm @@ -0,0 +1,277 @@ +/* XPM */ +static char *empty[] = { +/* width height num_colors chars_per_pixel */ +" 16 14 256 2", +/* colors */ +"`` c #424242", +"`. c #6b6b6b", +"`# c #737373", +"`a c #7b7b7b", +"`b c #848484", +"`c c #8c8c8c", +"`d c #949494", +"`e c #9c9c9c", +"`f c #a5a5a5", +"`g c #adadad", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`````````h`h`h`h`h`h`h`h`h`h`h", +"```f`f`f`e```````````h`h`h`h`h`h", +"```f`f`e`e`e`d`d`c`c```h`h`h`h`h", +"```f`e`````````````````````h`h`h", +"```e```.`.`.`#`#`#`a`a`b`b```h`h", +"```e```.`.`#`#`#`a`a`b`b```h`h`h", +"`````.`.`#`#`#`a`a`b`b`b```h`h`h", +"`````.`#`#`#`a`a`b`b`b```h`h`h`h", +"```.`#`#`#`a`a`b`b`b`c```h`h`h`h", +"```````````````````````h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-leaf.xpm new file mode 100644 index 0000000..197c10f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-leaf.xpm @@ -0,0 +1,277 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 14 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-open.xpm new file mode 100644 index 0000000..170cf44 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-14/ecb-open.xpm @@ -0,0 +1,277 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 14 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-close.xpm new file mode 100644 index 0000000..dfdc74c --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-close.xpm @@ -0,0 +1,278 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 15 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-empty.xpm new file mode 100644 index 0000000..8305b1d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-empty.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 15 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-leaf.xpm new file mode 100644 index 0000000..7812a29 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-leaf.xpm @@ -0,0 +1,278 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 15 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-open.xpm new file mode 100644 index 0000000..06b765a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-15/ecb-open.xpm @@ -0,0 +1,278 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 15 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-close.xpm new file mode 100644 index 0000000..8729815 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-close.xpm @@ -0,0 +1,279 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 16 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-empty.xpm new file mode 100644 index 0000000..ceaa805 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-empty.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 16 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-leaf.xpm new file mode 100644 index 0000000..3b7631a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-leaf.xpm @@ -0,0 +1,279 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 16 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-open.xpm new file mode 100644 index 0000000..82bf842 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-16/ecb-open.xpm @@ -0,0 +1,279 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 16 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-close.xpm new file mode 100644 index 0000000..da7aa18 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-close.xpm @@ -0,0 +1,280 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 17 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-empty.xpm new file mode 100644 index 0000000..47dcd67 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-empty.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 17 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-leaf.xpm new file mode 100644 index 0000000..015baff --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-leaf.xpm @@ -0,0 +1,280 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 17 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-open.xpm new file mode 100644 index 0000000..fad97fd --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-17/ecb-open.xpm @@ -0,0 +1,280 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 17 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-close.xpm new file mode 100644 index 0000000..fedb3a0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-close.xpm @@ -0,0 +1,281 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 18 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-empty.xpm new file mode 100644 index 0000000..17b8c79 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-empty.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 18 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-leaf.xpm new file mode 100644 index 0000000..e2696fe --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-leaf.xpm @@ -0,0 +1,281 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 18 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-open.xpm new file mode 100644 index 0000000..5ccaa37 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-18/ecb-open.xpm @@ -0,0 +1,281 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 18 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-close.xpm new file mode 100644 index 0000000..25d95b4 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-close.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 19 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-empty.xpm new file mode 100644 index 0000000..37dc1c7 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-empty.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 19 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-leaf.xpm new file mode 100644 index 0000000..8004390 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-leaf.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 19 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-open.xpm new file mode 100644 index 0000000..fc3564e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-19/ecb-open.xpm @@ -0,0 +1,282 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 19 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-close.xpm new file mode 100644 index 0000000..3e9f165 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-close.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 20 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-empty.xpm new file mode 100644 index 0000000..8af71d4 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-empty.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 20 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" ", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-leaf.xpm new file mode 100644 index 0000000..6eadda7 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-leaf.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 20 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-open.xpm new file mode 100644 index 0000000..6e29214 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-20/ecb-open.xpm @@ -0,0 +1,283 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 20 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-close.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-close.xpm new file mode 100644 index 0000000..aa16485 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-close.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *close[] = { +/* width height num_colors chars_per_pixel */ +" 16 21 256 2", +/* colors */ +"`` c #848400", +"`. c #9c9c29", +"`# c #a5a531", +"`a c #adad39", +"`b c #adad42", +"`c c #b5b54a", +"`d c #b5b552", +"`e c #bdbd52", +"`f c #bdbd5a", +"`g c #c6c663", +"`h c #c6c66b", +"`i c #cece6b", +"`j c #cece73", +"`k c #dede8c", +"`l c #e7e794", +"`m c #e7e79c", +"`n c #efef9c", +"`o c None", +"`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 */ +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`````````o`o`o`o`o`o`o`o`o`o`o", +"```m`l`l`k```````````````o`o`o`o", +"```````````a`b`b`c`c`d`f```o`o`o", +"```.`#`#`a`b`b`c`c`d`f`f```o`o`o", +"```#`#`a`b`b`c`c`d`f`f`f```o`o`o", +"```#`a`b`b`c`c`d`f`f`f`g```o`o`o", +"```a`b`b`c`c`d`f`f`f`g`h```o`o`o", +"```b`b`c`c`d`f`f`f`g`h`h```o`o`o", +"```b`c`c`d`f`f`f`g`h`h`j```o`o`o", +"```````````````````````````o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o", +"`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o`o" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-empty.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-empty.xpm new file mode 100644 index 0000000..3cd16e5 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-empty.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char * ecbempty_xpm[] = { +"16 21 14 1", +" c None", +"! c black", +"# c #AEA950", +"$ c #FDF9B1", +"% c #FDF9AC", +"& c #FDF9A9", +"' c #FDF8A0", +"( c #FDF793", +") c #FDF790", +"* c #FCF67C", +"+ c #FCF67F", +", c #FCF688", +"- c #FDF89D", +". c #FDF9A6", +" ", +" ", +" ", +" ", +" ", +" #### ", +"#$%%&##### ", +"#%%&&''(()# ", +"#%&########## ", +"#&#*++,,)((--# ", +"#&#++,,)((--# ", +"##++,,)((--'# ", +"##+,,)((--'# ", +"#+,,)((--'.# ", +"########### ", +" ", +" ", +" ", +" ", +" ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-leaf.xpm new file mode 100644 index 0000000..fd8db92 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-leaf.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 21 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-open.xpm b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-open.xpm new file mode 100644 index 0000000..e5d3963 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/directories/height-21/ecb-open.xpm @@ -0,0 +1,284 @@ +/* XPM */ +static char *open[] = { +/* width height num_colors chars_per_pixel */ +" 16 21 256 2", +/* colors */ +"`` c #848400", +"`. c #a5a5c6", +"`# c #adad39", +"`a c #adad42", +"`b c #b5b54a", +"`c c #bdbd52", +"`d c #bdbd5a", +"`e c #c6c663", +"`f c #c6c66b", +"`g c #cece6b", +"`h c #cece73", +"`i c #cece7b", +"`j c #d6d67b", +"`k c None", +"`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 */ +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k`k", +"`k`````````k`k`k`k`k`k`k`k`k`k`k", +"```j`i`i`h```````````k`k`k`k`k`k", +"```i`i`h`h`f`f`d`d`c```k`k`k`k`k", +"```i`h`````````````````````k`k`k", +"```h```#`a`a`b`b`c`d`d`e`e```k`k", +"```h```a`a`b`b`c`d`d`e`e```k`k`k", +"`````a`a`b`b`c`d`d`e`e`f```k`k`k", +"`````a`b`b`c`d`d`e`e`f```k`k`k`k", +"```a`b`b`c`d`d`e`e`f`g```k`k`k`k", +"```````````````````````k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k", +"`k`k`k`k`k`.`k`k`k`k`k`k`k`k`k`k" +}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-private.xpm new file mode 100644 index 0000000..669f81a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-private.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char * ecb_class_private_xpm[] = { +"16 14 32 1", +" c None", +". c #696969", +"+ c #F5F5F5", +"@ c #434343", +"# c #FFFFFF", +"$ c #C5C5C5", +"% c #F1F1F1", +"& c #CACACA", +"* c #E6E6E6", +"= c #C9C9C9", +"- c #D5D5D5", +"; c #D8D8D8", +"> c #8C8C8C", +", c #D1D1D1", +"' c #656565", +") c #868686", +"! c #898989", +"~ c #C8C8C8", +"{ c #B6B6B6", +"] c #ABABAB", +"^ c #D7D7D7", +"/ c #BDBDBD", +"( c #BBBBBB", +"_ c #AFAFAF", +": c #D2D2D2", +"< c #A7A7A7", +"[ c #B0B0B0", +"} c #AAAAAA", +"| c #676767", +"1 c #CBCBCB", +"2 c #B8B8B8", +"3 c #B4B4B4", +" ...+ ", +" @# .$#$.+", +" @%@+ .+ +.#", +" @%&&@# .....+", +"@*=$-;@+ ..>..#", +" @;,;@# .>#>.+", +" @;@+ @@'..>..#", +"@@)@)!@~{].....+", +"@^/{(@~,]_/'+#+#", +"@:<[}@{}{~=|# ", +"@123(@}_~=;'+ ", +"@:3(3!@/=;'# ", +"@)!)!)+'|'+ ", +" #+#+# #+# "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-protected.xpm new file mode 100644 index 0000000..72e59b0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-protected.xpm @@ -0,0 +1,55 @@ +/* XPM */ +static char * ecb_class_protected_xpm[] = { +"16 14 38 1", +" c None", +". c #444444", +"+ c #FFFFFF", +"@ c #EDEDED", +"# c #F2F2F2", +"$ c #E7E7E7", +"% c #747474", +"& c #F1F1F1", +"* c #F5F5F5", +"= c #D8D8D8", +"- c #D2D2D2", +"; c #8C8C8C", +"> c #CACACA", +", c #404040", +"' c #E0E0E0", +") c #898989", +"! c #E6E6E6", +"~ c #C9C9C9", +"{ c #C5C5C5", +"] c #D5D5D5", +"^ c #787878", +"/ c #D1D1D1", +"( c #656565", +"_ c #868686", +": c #C8C8C8", +"< c #B6B6B6", +"[ c #ABABAB", +"} c #D7D7D7", +"| c #BDBDBD", +"1 c #BBBBBB", +"2 c #AFAFAF", +"3 c #A7A7A7", +"4 c #B0B0B0", +"5 c #AAAAAA", +"6 c #CBCBCB", +"7 c #B8B8B8", +"8 c #B4B4B4", +"9 c #676767", +" .....+ ", +" .+ .+@#@$%+", +" .&.* .@=.=-;*", +" .&>>.+ ,$-='=)+", +".!~{]=.* ..-^)* ", +" .=/=.+ .=)+ ", +" .=.* ..(.-;* ", +".._._).:<[.=';+ ", +".}|<1.:/[2.';* ", +".-345.<5<:~^+ ", +".6781.52:~=* ", +".-818).|~=(+ ", +"._)_)_*(9(* ", +" +*+*+ +*+ "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-public.xpm new file mode 100644 index 0000000..6b5a8a4 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-public.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char * ecb_class_public_xpm[] = { +"16 14 32 1", +" c None", +". c #686868", +"+ c #FFFFFF", +"@ c #444444", +"# c #9F9F9F", +"$ c #F5F5F5", +"% c #F1F1F1", +"& c #CACACA", +"* c #E6E6E6", +"= c #C9C9C9", +"- c #C5C5C5", +"; c #D5D5D5", +"> c #D8D8D8", +", c #D1D1D1", +"' c #656565", +") c #868686", +"! c #898989", +"~ c #C8C8C8", +"{ c #B6B6B6", +"] c #ABABAB", +"^ c #D7D7D7", +"/ c #BDBDBD", +"( c #BBBBBB", +"_ c #AFAFAF", +": c #D2D2D2", +"< c #A7A7A7", +"[ c #B0B0B0", +"} c #AAAAAA", +"| c #676767", +"1 c #CBCBCB", +"2 c #B8B8B8", +"3 c #B4B4B4", +" ...+ ", +" @+ .#+#.$ ", +" @%@$ .$ $.+ ", +" @%&&@+ + .....$", +"@*=-;>@$ ..#..+", +" @>,>@+ .#+#.$", +" @>@$ @@'..#..+", +"@@)@)!@~{].....$", +"@^/{(@~,]_/'$+$+", +"@:<[}@{}{~=|+ ", +"@123(@}_~=>'$ ", +"@:3(3!@/=>'+ ", +"@)!)!)$'|'$ ", +" +$+$+ +$+ "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-unknown.xpm new file mode 100644 index 0000000..c95b9d8 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-class-unknown.xpm @@ -0,0 +1,48 @@ +/* XPM */ +static char * ecb_class_unknown_xpm[] = { +"16 14 31 1", +" c None", +". c #434343", +"+ c #FFFFFF", +"@ c #F1F1F1", +"# c #F5F5F5", +"$ c #CACACA", +"% c #E6E6E6", +"& c #C9C9C9", +"* c #C5C5C5", +"= c #D5D5D5", +"- c #D8D8D8", +"; c #D1D1D1", +"> c #656565", +", c #A5A5C6", +"' c #868686", +") c #898989", +"! c #C8C8C8", +"~ c #B6B6B6", +"{ c #ABABAB", +"] c #D7D7D7", +"^ c #BDBDBD", +"/ c #BBBBBB", +"( c #AFAFAF", +"_ c #D2D2D2", +": c #A7A7A7", +"< c #B0B0B0", +"[ c #AAAAAA", +"} c #676767", +"| c #CBCBCB", +"1 c #B8B8B8", +"2 c #B4B4B4", +" ", +" .+ ", +" .@.# ", +" .@$$.+ ", +" .%&*=-.# ", +" .-;-.+ ", +" .-.# ..># ", +",..'.').!~{>+ ", +" .]^~/.!;{(^># ", +" ._:<[.~[~!&}+ ", +" .|12/.[(!&-># ", +" ._2/2).^&->+ ", +" .')')'#>}># ", +" +#+#+ +#+ "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-private.xpm new file mode 100644 index 0000000..31283b2 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-private.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * ecb_constructor_private_xpm[] = { +"16 14 18 1", +" c None", +". c #696969", +"+ c #FFFFFF", +"@ c #C5C5C5", +"# c #F5F5F5", +"$ c #444444", +"% c #EFEFEF", +"& c #787878", +"* c #C2C2C2", +"= c #C9C9C9", +"- c #8C8C8C", +"; c #CECECE", +"> c #C6C6C6", +", c #D1D1D1", +"' c #CDCDCD", +") c #CACACA", +"! c #E0E0E0", +"~ c #D5D5D5", +" ", +" ...+ ", +" .@+@.# ", +" $# .+ +.+ ", +" $%&# .....# ", +" $%*=&# ..-..+ ", +" $%*;>,&#.-+-.# ", +"$%*'),;!&..-..+ ", +" $!)~;!&#.....# ", +" $!,!&# #+#+#+ ", +" $!&# ", +" &# ", +" # ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-protected.xpm new file mode 100644 index 0000000..f7a73ed --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-protected.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char * ecb_constructor_protected_xpm[] = { +"16 14 25 1", +" c None", +". c #444444", +"+ c #FFFFFF", +"@ c #EDEDED", +"# c #F2F2F2", +"$ c #E7E7E7", +"% c #747474", +"& c #F5F5F5", +"* c #D8D8D8", +"= c #D2D2D2", +"- c #8C8C8C", +"; c #FBFBFB", +"> c #EFEFEF", +", c #787878", +"' c #404040", +") c #E0E0E0", +"! c #898989", +"~ c #C2C2C2", +"{ c #C9C9C9", +"] c #CECECE", +"^ c #C6C6C6", +"/ c #D1D1D1", +"( c #CDCDCD", +"_ c #CACACA", +": c #D5D5D5", +" ", +" .....+ ", +" .+@#@$%+", +" .& .@*.*=-;", +" .>,& '$=*)*!+", +" .>~{,&+..=,!+ ", +" .>~]^/,&+.*!+ ", +".>~(_/]),&.=-; ", +" .)_:]),& .*)-+ ", +" .)/),& .)-; ", +" .),& ,; ", +" ,& ; ", +" & ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-public.xpm new file mode 100644 index 0000000..3ad5a35 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-public.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char * ecb_constructor_public_xpm[] = { +"16 14 17 1", +" c None", +". c #686868", +"+ c #9F9F9F", +"@ c #FFFFFF", +"# c #F5F5F5", +"$ c #444444", +"% c #EFEFEF", +"& c #787878", +"* c #C2C2C2", +"= c #C9C9C9", +"- c #CECECE", +"; c #C6C6C6", +"> c #D1D1D1", +", c #CDCDCD", +"' c #CACACA", +") c #E0E0E0", +"! c #D5D5D5", +" ", +" ... ", +" .+@+.# ", +" $# .@ .@ ", +" $%&#@ .....# ", +" $%*=&# ..+..@ ", +" $%*-;>&#.+@+.# ", +"$%*,'>-)&..+..@ ", +" $)'!-)&#.....# ", +" $)>)&# #@#@#@ ", +" $)&# ", +" &# ", +" # ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-unknown.xpm new file mode 100644 index 0000000..bbc1b95 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-constructor-unknown.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char * ecb_constructor_unknown_xpm[] = { +"12 14 15 1", +" c None", +". c #444444", +"+ c #F5F5F5", +"@ c #EFEFEF", +"# c #787878", +"$ c #C2C2C2", +"% c #C9C9C9", +"& c #CECECE", +"* c #C6C6C6", +"= c #D1D1D1", +"- c #A5A5C6", +"; c #CDCDCD", +"> c #CACACA", +", c #E0E0E0", +"' c #D5D5D5", +" ", +" ", +" ", +" .+ ", +" .@#+ ", +" .@$%#+ ", +" .@$&*=#+ ", +"-.@$;>=&,#+ ", +" .,>'&,#+ ", +" .,=,#+ ", +" .,#+ ", +" #+ ", +" + ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private-static.xpm new file mode 100644 index 0000000..56af6cd --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private-static.xpm @@ -0,0 +1,61 @@ +/* XPM */ +static char * ecb_function_private_static_xpm[] = { +"16 14 44 1", +" c None", +". c #696969", +"+ c #F5F5F5", +"@ c #757575", +"# c #727272", +"$ c #8F8F8F", +"% c #C5C5C5", +"& c #FFFFFF", +"* c #EEEEEE", +"= c #AAAAAA", +"- c #656565", +"; c #4C4C4C", +"> c #DCDCDC", +", c #989898", +"' c #444444", +") c #C8C8C8", +"! c #8A8A8A", +"~ c #ECECEC", +"{ c #A1A1A1", +"] c #676767", +"^ c #8C8C8C", +"/ c #DDDDDD", +"( c #A8A8A8", +"_ c #E2E2E2", +": c #A7A7A7", +"< c #B6B6B6", +"[ c #D1D1D1", +"} c #A4A4A4", +"| c #A3A3A3", +"1 c #BDBDBD", +"2 c #A5A5A5", +"3 c #8E8E8E", +"4 c #E3E3E3", +"5 c #ACACAC", +"6 c #C9C9C9", +"7 c #B5B5B5", +"8 c #D8D8D8", +"9 c #E6E6E6", +"0 c #AFAFAF", +"a c #666666", +"b c #939393", +"c c #9B9B9B", +"d c #EAEAEA", +"e c #B7B7B7", +" ", +" ...+ ", +" @#$+ .%&%.+ ", +" #*=& .& +.& ", +" -;>,+ .....+ ", +" ')!~{]+ ..^..& ", +"')/(_:<]+.^&^.+ ", +"'[}|~})-&..^..& ", +"'123456]+.....+ ", +"'27!*(8-&+&+&+& ", +"+'<390-& ", +" +]a9b& ", +" +cde+ ", +" ^$|& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private.xpm new file mode 100644 index 0000000..cbb3fc5 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-private.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char * ecb_function_private_xpm[] = { +"16 14 20 1", +" c None", +". c #696969", +"+ c #F5F5F5", +"@ c #C5C5C5", +"# c #FFFFFF", +"$ c #444444", +"% c #C8C8C8", +"& c #D1D1D1", +"* c #BDBDBD", +"= c #A6A6A6", +"- c #676767", +"; c #8C8C8C", +"> c #A4A4A4", +", c #B5B5B5", +"' c #B6B6B6", +") c #656565", +"! c #A5A5A5", +"~ c #B3B3B3", +"{ c #C9C9C9", +"] c #D8D8D8", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +" $$$$+ .....+ ", +" $%&*=-+ ..;..# ", +"$%&>=,'-+.;#;.+ ", +"$&>=,'%)#..;..# ", +"$*!~'%{-+.....+ ", +"$!,'%{])#+#+#+# ", +"+$'%{])# ", +" +-)-)# ", +" +#+# ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected-static.xpm new file mode 100644 index 0000000..74f455f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected-static.xpm @@ -0,0 +1,68 @@ +/* XPM */ +static char * ecb_function_protected_static_xpm[] = { +"16 14 51 1", +" c None", +". c #444444", +"+ c #F5F5F5", +"@ c #757575", +"# c #727272", +"$ c #8F8F8F", +"% c #FFFFFF", +"& c #EDEDED", +"* c #F2F2F2", +"= c #E7E7E7", +"- c #747474", +"; c #EEEEEE", +"> c #AAAAAA", +", c #D8D8D8", +"' c #D2D2D2", +") c #8C8C8C", +"! c #FBFBFB", +"~ c #656565", +"{ c #4C4C4C", +"] c #DCDCDC", +"^ c #989898", +"/ c #E0E0E0", +"( c #898989", +"_ c #C8C8C8", +": c #8A8A8A", +"< c #ECECEC", +"[ c #A1A1A1", +"} c #676767", +"| c #787878", +"1 c #DDDDDD", +"2 c #A8A8A8", +"3 c #E2E2E2", +"4 c #A7A7A7", +"5 c #B6B6B6", +"6 c #D1D1D1", +"7 c #A4A4A4", +"8 c #A3A3A3", +"9 c #BDBDBD", +"0 c #A5A5A5", +"a c #8E8E8E", +"b c #E3E3E3", +"c c #ACACAC", +"d c #C9C9C9", +"e c #B5B5B5", +"f c #E6E6E6", +"g c #AFAFAF", +"h c #666666", +"i c #939393", +"j c #9B9B9B", +"k c #EAEAEA", +"l c #B7B7B7", +" ", +" .....+ ", +" @#$+ .%&*&=-%", +" #;>% .&,.,')!", +" ~{]^+ .=',/,(%", +" ._:<[}++..'|(% ", +"._12345}+%.,(% ", +".678<7_~% .')! ", +".90abcd}+ .,/)% ", +".0e:;2,~% ./)! ", +"+.5afg~% +|! ", +" +}hfi% ! ", +" +jkl+ ", +" )$8% "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected.xpm new file mode 100644 index 0000000..b188a09 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-protected.xpm @@ -0,0 +1,44 @@ +/* XPM */ +static char * ecb_function_protected_xpm[] = { +"16 14 27 1", +" c None", +". c #444444", +"+ c #F5F5F5", +"@ c #FFFFFF", +"# c #EDEDED", +"$ c #F2F2F2", +"% c #E7E7E7", +"& c #747474", +"* c #D8D8D8", +"= c #D2D2D2", +"- c #8C8C8C", +"; c #FBFBFB", +"> c #E0E0E0", +", c #898989", +"' c #C8C8C8", +") c #D1D1D1", +"! c #BDBDBD", +"~ c #A6A6A6", +"{ c #676767", +"] c #787878", +"^ c #A4A4A4", +"/ c #B5B5B5", +"( c #B6B6B6", +"_ c #656565", +": c #A5A5A5", +"< c #B3B3B3", +"[ c #C9C9C9", +" ", +" .....+ ", +" .@#$#%&@", +" .#*.*=-;", +" ....+ .%=*>*,@", +" .')!~{++..=],@ ", +".')^~/({+@.*,@ ", +".)^~/('_@ .=-; ", +".!:<('[{+ .*>-@ ", +".:/('[*_@ .>-; ", +"+.('[*_@ +]; ", +" +{_{_@ ; ", +" +@+@ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public-static.xpm new file mode 100644 index 0000000..9399ba0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public-static.xpm @@ -0,0 +1,61 @@ +/* XPM */ +static char * ecb_function_public_static_xpm[] = { +"16 14 44 1", +" c None", +". c #686868", +"+ c #F5F5F5", +"@ c #757575", +"# c #727272", +"$ c #8F8F8F", +"% c #9F9F9F", +"& c #FFFFFF", +"* c #EEEEEE", +"= c #AAAAAA", +"- c #656565", +"; c #4C4C4C", +"> c #DCDCDC", +", c #989898", +"' c #444444", +") c #C8C8C8", +"! c #8A8A8A", +"~ c #ECECEC", +"{ c #A1A1A1", +"] c #676767", +"^ c #DDDDDD", +"/ c #A8A8A8", +"( c #E2E2E2", +"_ c #A7A7A7", +": c #B6B6B6", +"< c #D1D1D1", +"[ c #A4A4A4", +"} c #A3A3A3", +"| c #BDBDBD", +"1 c #A5A5A5", +"2 c #8E8E8E", +"3 c #E3E3E3", +"4 c #ACACAC", +"5 c #C9C9C9", +"6 c #B5B5B5", +"7 c #D8D8D8", +"8 c #E6E6E6", +"9 c #AFAFAF", +"0 c #666666", +"a c #939393", +"b c #9B9B9B", +"c c #EAEAEA", +"d c #B7B7B7", +"e c #8C8C8C", +" ", +" ...+ ", +" @#$+.%&%.+ ", +" #*=&.& +.& ", +" -;>,+ .....+ ", +" ')!~{]+ ..%..& ", +"')^/(_:]+.%&%.+ ", +"'<[}~[)-&..%..& ", +"'|12345]+.....+ ", +"'16!*/7-&+&+&+& ", +"+':289-& ", +" +]08a& ", +" +bcd+ ", +" e$}& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public.xpm new file mode 100644 index 0000000..79f93d0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-public.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char * ecb_function_public_xpm[] = { +"16 14 19 1", +" c None", +". c #686868", +"+ c #F5F5F5", +"@ c #9F9F9F", +"# c #FFFFFF", +"$ c #444444", +"% c #C8C8C8", +"& c #D1D1D1", +"* c #BDBDBD", +"= c #A6A6A6", +"- c #676767", +"; c #A4A4A4", +"> c #B5B5B5", +", c #B6B6B6", +"' c #656565", +") c #A5A5A5", +"! c #B3B3B3", +"~ c #C9C9C9", +"{ c #D8D8D8", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +" $$$$++ .....+ ", +" $%&*=-+ ..@..# ", +"$%&;=>,-+.@#@.+ ", +"$&;=>,%'#..@..# ", +"$*)!,%~-+.....+ ", +"$)>,%~{'#+#+#+# ", +"+$,%~{'# ", +" +-'-'# ", +" +#+# ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown-static.xpm new file mode 100644 index 0000000..6506f49 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown-static.xpm @@ -0,0 +1,60 @@ +/* XPM */ +static char * ecb_function_unknown_static_xpm[] = { +"12 14 43 1", +" c None", +". c #757575", +"+ c #727272", +"@ c #8F8F8F", +"# c #F5F5F5", +"$ c #EEEEEE", +"% c #AAAAAA", +"& c #FFFFFF", +"* c #656565", +"= c #4C4C4C", +"- c #DCDCDC", +"; c #989898", +"> c #444444", +", c #C8C8C8", +"' c #8A8A8A", +") c #ECECEC", +"! c #A1A1A1", +"~ c #676767", +"{ c #DDDDDD", +"] c #A8A8A8", +"^ c #E2E2E2", +"/ c #A7A7A7", +"( c #B6B6B6", +"_ c #A5A5C6", +": c #D1D1D1", +"< c #A4A4A4", +"[ c #A3A3A3", +"} c #BDBDBD", +"| c #A5A5A5", +"1 c #8E8E8E", +"2 c #E3E3E3", +"3 c #ACACAC", +"4 c #C9C9C9", +"5 c #B5B5B5", +"6 c #D8D8D8", +"7 c #E6E6E6", +"8 c #AFAFAF", +"9 c #666666", +"0 c #939393", +"a c #9B9B9B", +"b c #EAEAEA", +"c c #B7B7B7", +"d c #8C8C8C", +" ", +" ", +" .+@# ", +" +$%& ", +" *=-;# ", +" >,')!~# ", +" >,{]^/(~# ", +"_>:<[)<,*& ", +" >}|1234~# ", +" >|5'$]6*& ", +" #>(178*& ", +" #~970& ", +" #abc# ", +" d@[& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown.xpm new file mode 100644 index 0000000..e4cb0e0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-function-unknown.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * ecb_function_unknown_xpm[] = { +"12 14 18 1", +" c None", +". c #444444", +"+ c #F5F5F5", +"@ c #C8C8C8", +"# c #D1D1D1", +"$ c #BDBDBD", +"% c #A6A6A6", +"& c #676767", +"* c #A4A4A4", +"= c #B5B5B5", +"- c #B6B6B6", +"; c #A5A5C6", +"> c #656565", +", c #FFFFFF", +"' c #A5A5A5", +") c #B3B3B3", +"! c #C9C9C9", +"~ c #D8D8D8", +" ", +" ", +" ", +" ", +" ....+ ", +" .@#$%&+ ", +" .@#*%=-&+ ", +";.#*%=-@>, ", +" .$')-@!&+ ", +" .'=-@!~>, ", +" +.-@!~>, ", +" +&>&>, ", +" +,+, ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-private-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-private-static.xpm new file mode 100644 index 0000000..1809bbe --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-private-static.xpm @@ -0,0 +1,64 @@ +/* XPM */ +static char * ecb_variable_private_static_xpm[] = { +"16 14 47 1", +" c None", +". c #696969", +"+ c #F5F5F5", +"@ c #757575", +"# c #727272", +"$ c #8F8F8F", +"% c #C5C5C5", +"& c #FFFFFF", +"* c #989898", +"= c #EDEDED", +"- c #AFAFAF", +"; c #444444", +"> c #676767", +", c #D8D8D8", +"' c #939393", +") c #D7D7D7", +"! c #BDBDBD", +"~ c #8C8C8C", +"{ c #EBEBEB", +"] c #929292", +"^ c #A9A9A9", +"/ c #D2D2D2", +"( c #9E9E9E", +"_ c #898989", +": c #E1E1E1", +"< c #979797", +"[ c #AAAAAA", +"} c #CBCBCB", +"| c #A5A5A5", +"1 c #868686", +"2 c #E9E9E9", +"3 c #B3B3B3", +"4 c #A2A2A2", +"5 c #8B8B8B", +"6 c #E2E2E2", +"7 c #B0B0B0", +"8 c #888888", +"9 c #B9B9B9", +"0 c #A7A7A7", +"a c #8D8D8D", +"b c #E3E3E3", +"c c #B4B4B4", +"d c #B6B6B6", +"e c #7D7D7D", +"f c #E8E8E8", +"g c #BCBCBC", +"h c #9D9D9D", +" ", +" ...+ ", +" @#$+ .%&%.+ ", +" *=-& .& +.& ", +";;;>,';; .....+ ", +";)!~{]!^&..~..& ", +";/(_:<[_+.~&~.+ ", +";}|12]31&..~..& ", +";/456<7_+.....+ ", +";}[8{]91&+&+&+& ", +";/0ab c #9E9E9E", +", c #A6A6A6", +"' c #A3A3A3", +") c #ACACAC", +"! c #AAAAAA", +"~ c #898989", +"{ c #CBCBCB", +"] c #A5A5A5", +"^ c #ABABAB", +"/ c #B3B3B3", +"( c #868686", +"_ c #A2A2A2", +": c #B0B0B0", +"< c #A7A7A7", +"[ c #B1B1B1", +"} c #AFAFAF", +"| c #B9B9B9", +"1 c #B8B8B8", +"2 c #B4B4B4", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +"$$$$$$$$ .....+ ", +"$%&*&*&=#..-..# ", +"$;>,')!~+.-#-.+ ", +"${]'^=/(#..-..# ", +"$;_!=/:~+.....+ ", +"${!<[}|(#+#+#+# ", +"$;<:}12~+ ", +"$*~(~(~(# ", +" #+#+#+#+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected-static.xpm new file mode 100644 index 0000000..d7a147d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected-static.xpm @@ -0,0 +1,68 @@ +/* XPM */ +static char * ecb_variable_protected_static_xpm[] = { +"16 14 51 1", +" c None", +". c #444444", +"+ c #F5F5F5", +"@ c #757575", +"# c #727272", +"$ c #8F8F8F", +"% c #FFFFFF", +"& c #EDEDED", +"* c #F2F2F2", +"= c #E7E7E7", +"- c #747474", +"; c #989898", +"> c #AFAFAF", +", c #D8D8D8", +"' c #D2D2D2", +") c #8C8C8C", +"! c #FBFBFB", +"~ c #676767", +"{ c #939393", +"] c #E0E0E0", +"^ c #898989", +"/ c #D7D7D7", +"( c #BDBDBD", +"_ c #EBEBEB", +": c #929292", +"< c #A9A9A9", +"[ c #787878", +"} c #9E9E9E", +"| c #E1E1E1", +"1 c #979797", +"2 c #AAAAAA", +"3 c #CBCBCB", +"4 c #A5A5A5", +"5 c #868686", +"6 c #E9E9E9", +"7 c #B3B3B3", +"8 c #A2A2A2", +"9 c #8B8B8B", +"0 c #E2E2E2", +"a c #B0B0B0", +"b c #888888", +"c c #B9B9B9", +"d c #A7A7A7", +"e c #8D8D8D", +"f c #E3E3E3", +"g c #B4B4B4", +"h c #B6B6B6", +"i c #7D7D7D", +"j c #E8E8E8", +"k c #BCBCBC", +"l c #9D9D9D", +" ", +" .....+ ", +" @#$+ .%&*&=-%", +" ;&>% .&,.,')!", +"...~,{...=',],^%", +"./()_:(<%..'[^% ", +".'}^|12^+%.,^% ", +".3456:75% .')! ", +".'8901a^+ .,])% ", +".32b_:c5% .])! ", +".'def1g^+ [! ", +".h^ij:^5% ! ", +" %+d6k+%+ ", +" ;l2% "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected.xpm new file mode 100644 index 0000000..725d6a2 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-protected.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char * ecb_variable_protected_xpm[] = { +"16 14 37 1", +" c None", +". c #444444", +"+ c #F5F5F5", +"@ c #FFFFFF", +"# c #EDEDED", +"$ c #F2F2F2", +"% c #E7E7E7", +"& c #747474", +"* c #D8D8D8", +"= c #D2D2D2", +"- c #8C8C8C", +"; c #FBFBFB", +"> c #E0E0E0", +", c #898989", +"' c #D7D7D7", +") c #BDBDBD", +"! c #B6B6B6", +"~ c #A9A9A9", +"{ c #787878", +"] c #9E9E9E", +"^ c #A6A6A6", +"/ c #A3A3A3", +"( c #ACACAC", +"_ c #AAAAAA", +": c #CBCBCB", +"< c #A5A5A5", +"[ c #ABABAB", +"} c #B3B3B3", +"| c #868686", +"1 c #A2A2A2", +"2 c #B0B0B0", +"3 c #A7A7A7", +"4 c #B1B1B1", +"5 c #AFAFAF", +"6 c #B9B9B9", +"7 c #B8B8B8", +"8 c #B4B4B4", +" ", +" .....+ ", +" .@#$#%&@", +" .#*.*=-;", +".........%=*>*,@", +".')!)!)~@..={,@ ", +".=]^/(_,+@.*,@ ", +".:-@ ", +".:_3456|@ .>-; ", +".=32578,+ {; ", +".!,|,|,|@ ; ", +" @+@+@+@+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public-static.xpm new file mode 100644 index 0000000..b7a9105 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public-static.xpm @@ -0,0 +1,65 @@ +/* XPM */ +static char * ecb_variable_public_static_xpm[] = { +"16 14 48 1", +" c None", +". c #686868", +"+ c #F5F5F5", +"@ c #757575", +"# c #727272", +"$ c #8F8F8F", +"% c #9F9F9F", +"& c #FFFFFF", +"* c #989898", +"= c #EDEDED", +"- c #AFAFAF", +"; c #444444", +"> c #676767", +", c #D8D8D8", +"' c #939393", +") c #404040", +"! c #D7D7D7", +"~ c #BDBDBD", +"{ c #8C8C8C", +"] c #EBEBEB", +"^ c #929292", +"/ c #A9A9A9", +"( c #D2D2D2", +"_ c #9E9E9E", +": c #898989", +"< c #E1E1E1", +"[ c #979797", +"} c #AAAAAA", +"| c #CBCBCB", +"1 c #A5A5A5", +"2 c #868686", +"3 c #E9E9E9", +"4 c #B3B3B3", +"5 c #A2A2A2", +"6 c #8B8B8B", +"7 c #E2E2E2", +"8 c #B0B0B0", +"9 c #888888", +"0 c #B9B9B9", +"a c #A7A7A7", +"b c #8D8D8D", +"c c #E3E3E3", +"d c #B4B4B4", +"e c #B6B6B6", +"f c #7D7D7D", +"g c #E8E8E8", +"h c #BCBCBC", +"i c #9D9D9D", +" ", +" ...+ ", +" @#$+.%&%.+ ", +" *=-&.& +.& ", +";;;>,';) .....+ ", +";!~{]^~/&..%..& ", +";(_:<[}:+.%&%.+ ", +";|123^42&..%..& ", +";(567[8:+.....+ ", +";|}9]^02&+&+&+& ", +";(abc[d:+ ", +";e:fg^:2& ", +" &+a3h+&+ ", +" *i}& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public.xpm new file mode 100644 index 0000000..b1f2f9f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-public.xpm @@ -0,0 +1,48 @@ +/* XPM */ +static char * ecb_variable_public_xpm[] = { +"16 14 31 1", +" c None", +". c #686868", +"+ c #F5F5F5", +"@ c #9F9F9F", +"# c #FFFFFF", +"$ c #444444", +"% c #404040", +"& c #D7D7D7", +"* c #BDBDBD", +"= c #B6B6B6", +"- c #A9A9A9", +"; c #D2D2D2", +"> c #9E9E9E", +", c #A6A6A6", +"' c #A3A3A3", +") c #ACACAC", +"! c #AAAAAA", +"~ c #898989", +"{ c #CBCBCB", +"] c #A5A5A5", +"^ c #ABABAB", +"/ c #B3B3B3", +"( c #868686", +"_ c #A2A2A2", +": c #B0B0B0", +"< c #A7A7A7", +"[ c #B1B1B1", +"} c #AFAFAF", +"| c #B9B9B9", +"1 c #B8B8B8", +"2 c #B4B4B4", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +"$$$$$$$% .....+ ", +"$&*=*=*-#..@..# ", +"$;>,')!~+.@#@.+ ", +"${]'^-/(#..@..# ", +"$;_!-/:~+.....+ ", +"${!<[}|(#+#+#+# ", +"$;<:}12~+ ", +"$=~(~(~(# ", +" #+#+#+#+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown-static.xpm new file mode 100644 index 0000000..7c3e766 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown-static.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char * ecb_variable_unknown_static_xpm[] = { +"12 14 46 1", +" c None", +". c #757575", +"+ c #727272", +"@ c #8F8F8F", +"# c #F5F5F5", +"$ c #989898", +"% c #EDEDED", +"& c #AFAFAF", +"* c #FFFFFF", +"= c #444444", +"- c #676767", +"; c #D8D8D8", +"> c #939393", +", c #D7D7D7", +"' c #BDBDBD", +") c #8C8C8C", +"! c #EBEBEB", +"~ c #929292", +"{ c #A9A9A9", +"] c #D2D2D2", +"^ c #9E9E9E", +"/ c #898989", +"( c #E1E1E1", +"_ c #979797", +": c #AAAAAA", +"< c #A5A5C6", +"[ c #CBCBCB", +"} c #A5A5A5", +"| c #868686", +"1 c #E9E9E9", +"2 c #B3B3B3", +"3 c #A2A2A2", +"4 c #8B8B8B", +"5 c #E2E2E2", +"6 c #B0B0B0", +"7 c #888888", +"8 c #B9B9B9", +"9 c #A7A7A7", +"0 c #8D8D8D", +"a c #E3E3E3", +"b c #B4B4B4", +"c c #B6B6B6", +"d c #7D7D7D", +"e c #E8E8E8", +"f c #BCBCBC", +"g c #9D9D9D", +" ", +" ", +" .+@# ", +" $%&* ", +" ===-;>== ", +" =,')!~'{* ", +" =]^/(_:/# ", +"<=[}|1~2|* ", +" =]345_6/# ", +" =[:7!~8|* ", +" =]90a_b/# ", +" =c/de~/|* ", +" *#91f#*# ", +" $g:* "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown.xpm new file mode 100644 index 0000000..db019d0 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-abstract-variable-unknown.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * ecb_variable_unknown_xpm[] = { +"12 14 29 1", +" c None", +". c #444444", +"+ c #D7D7D7", +"@ c #BDBDBD", +"# c #B6B6B6", +"$ c #A9A9A9", +"% c #FFFFFF", +"& c #D2D2D2", +"* c #9E9E9E", +"= c #A6A6A6", +"- c #A3A3A3", +"; c #ACACAC", +"> c #AAAAAA", +", c #898989", +"' c #F5F5F5", +") c #A5A5C6", +"! c #CBCBCB", +"~ c #A5A5A5", +"{ c #ABABAB", +"] c #B3B3B3", +"^ c #868686", +"/ c #A2A2A2", +"( c #B0B0B0", +"_ c #A7A7A7", +": c #B1B1B1", +"< c #AFAFAF", +"[ c #B9B9B9", +"} c #B8B8B8", +"| c #B4B4B4", +" ", +" ", +" ", +" ", +" ........ ", +" .+@#@#@$% ", +" .&*=-;>,' ", +").!~-{$]^% ", +" .&/>$](,' ", +" .!>_:<[^% ", +" .&_(<}|,' ", +" .#,^,^,^% ", +" %'%'%'%' ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-private.xpm new file mode 100644 index 0000000..8444c25 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-private.xpm @@ -0,0 +1,57 @@ +/* XPM */ +static char * ecb_class_private_xpm[] = { +"16 14 40 1", +" c None", +". c #BA0000", +"+ c #F2F2F2", +"@ c #040404", +"# c #FFFFFF", +"$ c #FF9090", +"% c #F2F1C5", +"& c #E0B84B", +"* c #DCB857", +"= c #F2DDA4", +"- c #E0B74A", +"; c #D7B34F", +"> c #ECC864", +", c #F2CB61", +"' c #FF2424", +") c #E8C25C", +"! c #4F2721", +"~ c #4B5F87", +"{ c #4F648E", +"] c #E5A684", +"^ c #D48E67", +"/ c #D67A44", +"( c #C2CBDF", +"_ c #8AAAEA", +": c #83A1DE", +"< c #87A7E8", +"[ c #E2B7A1", +"} c #D08254", +"| c #DF966D", +"1 c #B2C5EB", +"2 c #6B8CD1", +"3 c #7798DF", +"4 c #7190D4", +"5 c #D67942", +"6 c #DEAC90", +"7 c #532923", +"8 c #A9BBDF", +"9 c #83A3E6", +"0 c #809EDC", +"a c #EEC1AA", +" ...+ ", +" @# .$#$.+", +" @%@+ .+ +.#", +" @%&*@# .....+", +"@=-;>,@+ ..'..#", +" @,),@# .'#'.+", +" @,@+ @@!..'..#", +"@@~@~{@]^/.....+", +"@(_:<@][/}|!+#+#", +"@1234@^5^]67# ", +"@890<@5}]6a!+ ", +"@10<0{@|6a!# ", +"@~{~{~+!7!+ ", +" #+#+# #+# "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-protected.xpm new file mode 100644 index 0000000..e6a7e32 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-protected.xpm @@ -0,0 +1,65 @@ +/* XPM */ +static char * ecbclassprotected_xpm[] = { +"16 14 48 1", +" c None", +"! c black", +"# c #040404", +"$ c white", +"% c #FEE99F", +"& c #FEF0B7", +"' c #FEDF8B", +"( c #8E2E00", +") c #F2F1C5", +"* c #F2F2F2", +"+ c #FDC760", +", c #FCBD4F", +"- c #C04C00", +". c #E0B84B", +"0 c #DCB857", +"1 c #FDD378", +"2 c #B84900", +"3 c #F2DDA4", +"4 c #E0B74A", +"5 c #D7B34F", +"6 c #ECC864", +"7 c #F2CB61", +"8 c #963400", +"9 c #E8C25C", +": c #4F2721", +"; c #4B5F87", +"< c #4F648E", +"= c #E5A684", +"> c #D48E67", +"? c #D67A44", +"@ c #C2CBDF", +"A c #8AAAEA", +"B c #83A1DE", +"C c #87A7E8", +"D c #E2B7A1", +"E c #D08254", +"F c #B2C5EB", +"G c #6B8CD1", +"H c #7798DF", +"I c #7190D4", +"J c #D67942", +"K c #DEAC90", +"L c #A9BBDF", +"M c #83A3E6", +"N c #809EDC", +"O c #EEC1AA", +"P c #DF966D", +"Q c #532923", +" #####$ ", +" #$ #$%&%'($", +" #)#* #%+#+,-*", +" #).0#$ !',+1+2$", +"#34567#* ##,82* ", +" #797#$ #+2$ ", +" #7#* ##:#,-* ", +"##;#;<#=>?#+1-$ ", +"#@ABC#=D?E#1-* ", +"#FGHI#>J>=K8$ ", +"#LMNC#JE=KO: ", +"#FNCN<#PKO:$ ", +"#;<;<;*:Q:* ", +" $*$*$ $*$ "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-public.xpm new file mode 100644 index 0000000..230d7f7 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-public.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * ecb_class_public_xpm[] = { +"16 14 39 1", +" c None", +". c #005D00", +"+ c #FFFFFF", +"@ c #040404", +"# c #3CBA00", +"$ c #F2F2F2", +"% c #F2F1C5", +"& c #E0B84B", +"* c #DCB857", +"= c #F2DDA4", +"- c #E0B74A", +"; c #D7B34F", +"> c #ECC864", +", c #F2CB61", +"' c #E8C25C", +") c #4F2721", +"! c #4B5F87", +"~ c #4F648E", +"{ c #E5A684", +"] c #D48E67", +"^ c #D67A44", +"/ c #C2CBDF", +"( c #8AAAEA", +"_ c #83A1DE", +": c #87A7E8", +"< c #E2B7A1", +"[ c #D08254", +"} c #DF966D", +"| c #B2C5EB", +"1 c #6B8CD1", +"2 c #7798DF", +"3 c #7190D4", +"4 c #D67942", +"5 c #DEAC90", +"6 c #532923", +"7 c #A9BBDF", +"8 c #83A3E6", +"9 c #809EDC", +"0 c #EEC1AA", +" ...+ ", +" @+ .#+#.$ ", +" @%@$ .$ $.+ ", +" @%&*@+ + .....$", +"@=-;>,@$ ..#..+", +" @,',@+ .#+#.$", +" @,@$ @@)..#..+", +"@@!@!~@{]^.....$", +"@/(_:@{<^[})$+$+", +"@|123@]4]{56+ ", +"@789:@4[{50)$ ", +"@|9:9~@}50)+ ", +"@!~!~!$)6)$ ", +" +$+$+ +$+ "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-unknown.xpm new file mode 100644 index 0000000..12e47b9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-class-unknown.xpm @@ -0,0 +1,55 @@ +/* XPM */ +static char * ecb_class_unknown_xpm[] = { +"16 14 38 1", +" c None", +". c #040404", +"+ c #FFFFFF", +"@ c #F2F1C5", +"# c #F2F2F2", +"$ c #E0B84B", +"% c #DCB857", +"& c #F2DDA4", +"* c #E0B74A", +"= c #D7B34F", +"- c #ECC864", +"; c #F2CB61", +"> c #E8C25C", +", c #4F2721", +"' c #A5A5C6", +") c #4B5F87", +"! c #4F648E", +"~ c #E5A684", +"{ c #D48E67", +"] c #D67A44", +"^ c #C2CBDF", +"/ c #8AAAEA", +"( c #83A1DE", +"_ c #87A7E8", +": c #E2B7A1", +"< c #D08254", +"[ c #DF966D", +"} c #B2C5EB", +"| c #6B8CD1", +"1 c #7798DF", +"2 c #7190D4", +"3 c #D67942", +"4 c #DEAC90", +"5 c #532923", +"6 c #A9BBDF", +"7 c #83A3E6", +"8 c #809EDC", +"9 c #EEC1AA", +" ", +" .+ ", +" .@.# ", +" .@$%.+ ", +" .&*=-;.# ", +" .;>;.+ ", +" .;.# ..,# ", +"'..).)!.~{],+ ", +" .^/(_.~:]<[,# ", +" .}|12.{3{~45+ ", +" .678_.3<~49,# ", +" .}8_8!.[49,+ ", +" .)!)!)#,5,# ", +" +#+#+ +#+ "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-bucket.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-bucket.xpm new file mode 100644 index 0000000..5567234 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-bucket.xpm @@ -0,0 +1,111 @@ +/* XPM */ +static char * Constructors_xpm[] = { +"16 14 94 2", +" c None", +". c #040404", +"+ c #FFFFFF", +"@ c #FFE9AD", +"# c #848484", +"$ c #8B8B8B", +"% c #CAA542", +"& c #E0B74A", +"* c #666666", +"= c #616161", +"- c #3B3B3B", +"; c #D1D1D1", +"> c #E4BD54", +", c #CDAA4C", +"' c #E8C25C", +") c #C6C6C6", +"! c #545454", +"~ c #6B6A6A", +"{ c #050505", +"] c #E3BD53", +"^ c #D3B257", +"/ c #FFD666", +"( c #7C7C7C", +"_ c #717070", +": c #F2F2F2", +"< c #5E5E5E", +"[ c #5B5B5B", +"} c #626262", +"| c #676767", +"1 c #414141", +"2 c #857A5D", +"3 c #756C55", +"4 c #80765D", +"5 c #766E57", +"6 c #7B7B7B", +"7 c #6F6F6F", +"8 c #BCBCBC", +"9 c #C6C5C6", +"0 c #EFEFEF", +"a c #FBFCFB", +"b c #727272", +"c c #FCE7AC", +"d c #E1D1A3", +"e c #FBE5AB", +"f c #FAFAFA", +"g c #6B6B6B", +"h c #696969", +"i c #C5C5C5", +"j c #BBBBBB", +"k c #FBFBFC", +"l c #EEEDED", +"m c #F9F9F9", +"n c #717170", +"o c #FAFAF9", +"p c #E6E6E6", +"q c #717171", +"r c #EBEBEA", +"s c #F6F7F7", +"t c #F9FAF9", +"u c #F1F0F1", +"v c #C2C2C2", +"w c #B7B8B7", +"x c #F5F5F5", +"y c #E7E8E8", +"z c #E5E5E5", +"A c #E2E2E2", +"B c #EDEDEE", +"C c #DFDFDF", +"D c #B7B7B8", +"E c #BABBBB", +"F c #D9D9D9", +"G c #D8D8D8", +"H c #D7D7D7", +"I c #D7D6D6", +"J c #D6D6D6", +"K c #D5D5D5", +"L c #D4D5D4", +"M c #D4D4D4", +"N c #C7C7C7", +"O c #BDBDBD", +"P c #484847", +"Q c #C1C1C0", +"R c #F1F1F0", +"S c #E3E3E3", +"T c #E0E0E0", +"U c #EBEBEB", +"V c #DEDEDE", +"W c #E8E9E8", +"X c #DCDBDB", +"Y c #EAEBEB", +"Z c #E9E8E9", +"` c #DCDCDB", +" . c #E7E7E6", +".. c #646464", +" . + ", +" . @ . + ", +" # $ . @ % & . * # $ = - ", +" # ; . @ % > , ' . ; ) ! ~ + ", +" = ; { @ % ] ^ ' ^ / . ( ) _ : ", +"< [ } | 1 2 3 4 5 2 1 6 ) ; ~ + ", +"7 8 9 0 a b c d e 7 f g ; ) _ : ", +"h i j k l m n e 7 o p q ) ; ~ + ", +"7 j i l m r s 7 t p u g ; ) _ : ", +"h v w x y : z s A B C q ) ; ~ + ", +"7 D E F G H I J K L M g N O P : ", +"h Q J R S l T U V W X q ) } : ", +"7 J : S B T Y V Z ` .g } : ", +"h 7 h 7 h 7 h 7 h 7 h ..: "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-private.xpm new file mode 100644 index 0000000..4508d79 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-private.xpm @@ -0,0 +1,39 @@ +/* XPM */ +static char * ecb_constructor_private_xpm[] = { +"16 14 22 1", +" c None", +". c #BA0000", +"+ c #FFFFFF", +"@ c #FF9090", +"# c #F2F2F2", +"$ c #040404", +"% c #FFE9AD", +"& c #6B4900", +"* c #D5AE46", +"= c #E0B74A", +"- c #FF2424", +"; c #D5AF47", +"> c #E4BD54", +", c #D8B350", +"' c #E8C25C", +") c #050505", +"! c #E3BD53", +"~ c #DCB857", +"{ c #E0BE5F", +"] c #FFD666", +"^ c #ECC864", +"/ c #E4C267", +" ", +" ...+ ", +" .@+@.# ", +" $# .+ +.+ ", +" $%&# .....# ", +" $%*=&# ..-..+ ", +" $%;>,'&#.-+-.# ", +")%*!~'{]&..-..+ ", +" $]~^{]&#.....# ", +" $]/]&# #+#+#+ ", +" $]&# ", +" &# ", +" # ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-protected.xpm new file mode 100644 index 0000000..7ea8281 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-protected.xpm @@ -0,0 +1,48 @@ +/* XPM */ +static char * ecb_constructor_protected_xpm[] = { +"16 14 31 1", +" c None", +". c #040404", +"+ c #FFFFFF", +"@ c #FEE99F", +"# c #FEF0B7", +"$ c #FEDF8B", +"% c #8E2E00", +"& c #F2F2F2", +"* c #FDC760", +"= c #FCBD4F", +"- c #C04C00", +"; c #FEFBE5", +"> c #FFE9AD", +", c #6B4900", +"' c #000000", +") c #FDD378", +"! c #B84900", +"~ c #D5AE46", +"{ c #E0B74A", +"] c #963400", +"^ c #D5AF47", +"/ c #E4BD54", +"( c #D8B350", +"_ c #E8C25C", +": c #050505", +"< c #E3BD53", +"[ c #DCB857", +"} c #E0BE5F", +"| c #FFD666", +"1 c #ECC864", +"2 c #E4C267", +" ", +" .....+ ", +" .+@#@$%+", +" .& .@*.*=-;", +" .>,& '$=*)*!+", +" .>~{,&+..=]!+ ", +" .>^/(_,&+.*!+ ", +":>~<[_}|,&.=-; ", +" .|[1}|,& .*)-+ ", +" .|2|,& .)-; ", +" .|,& ]; ", +" ,& ; ", +" & ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-public.xpm new file mode 100644 index 0000000..798630b --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-public.xpm @@ -0,0 +1,39 @@ +/* XPM */ +static char * ecbconstructorpublic_xpm[] = { +"16 14 22 1", +" c None", +"! c black", +"# c #005D00", +"$ c white", +"% c #3CBA00", +"& c #F2F2F2", +"' c #040404", +"( c #FFE9AD", +") c #6B4900", +"* c #D5AE46", +"+ c #E0B74A", +", c #D5AF47", +"- c #E4BD54", +". c #D8B350", +"0 c #E8C25C", +"1 c #050505", +"2 c #E3BD53", +"3 c #DCB857", +"4 c #E0BE5F", +"5 c #FFD666", +"6 c #ECC864", +"7 c #E4C267", +" ", +" ###$ ", +" #%$%#& ", +" '& #$ #$ ", +" '()&$ #####& ", +" '(*+)& ##%##$ ", +" '(,-.0)&#%$%#& ", +"1(*23045)##%##$ ", +" '53645)&#####& ", +" '575)& &$&$&$ ", +" '5)& ", +" )& ", +" & ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-unknown.xpm new file mode 100644 index 0000000..c22dfb9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-constructor-unknown.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char * ecb_constructor_unknown_xpm[] = { +"12 14 19 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #FFE9AD", +"# c #6B4900", +"$ c #D5AE46", +"% c #E0B74A", +"& c #D5AF47", +"* c #E4BD54", +"= c #D8B350", +"- c #E8C25C", +"; c #A5A5C6", +"> c #050505", +", c #E3BD53", +"' c #DCB857", +") c #E0BE5F", +"! c #FFD666", +"~ c #ECC864", +"{ c #E4C267", +" ", +" ", +" ", +" .+ ", +" .@#+ ", +" .@$%#+ ", +" .@&*=-#+ ", +";>@$,'-)!#+ ", +" .!'~)!#+ ", +" .!{!#+ ", +" .!#+ ", +" #+ ", +" + ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-private.xpm new file mode 100644 index 0000000..dfc408c --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-private.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static char * ecb_enumeration_private_xpm[] = { +"16 14 7 1", +" c None", +". c #BA0000", +"+ c #FFFFFF", +"@ c #F2F2F2", +"# c #FF9090", +"$ c #0000FF", +"% c #FF2424", +" ", +" ...+ ", +"+@+ .#+#.+", +"@$@ .+ @.@", +"$$+@+@ .....+", +"@$@$$+ ..%..@", +"+$+@+$+@+ .%+%.+", +"@$@+$+$$@@..%..@", +"+@+$+@+@$+.....+", +" @$$$@$@@+@+@+ ", +" +@+@+@$@ ", +" +$$@+ ", +" @+@+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-protected.xpm new file mode 100644 index 0000000..223aee3 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-protected.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char * ecb_enumeration_protected_xpm[] = { +"16 14 16 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #FFFFFF", +"# c #FEE99F", +"$ c #FEF0B7", +"% c #FEDF8B", +"& c #8E2E00", +"* c #0000FF", +"= c #FDC760", +"- c #FCBD4F", +"; c #C04C00", +"> c #FEFBE5", +", c #FDD378", +"' c #B84900", +") c #963400", +" ", +" .....+ ", +"@+@ .@#$#%&@", +"+*+ .#=.=-;>", +"**@+@+ .%-=,='@", +"+*+**@ @..-)'@ ", +"@*@+@*@+@@.='@ ", +"+*+@*@**++.-;> ", +"@+@*@+@+*@.=,;@ ", +" +***+*++.,;> ", +" @+@+@+*+ )> ", +" @**+@ > ", +" +@+@ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-public.xpm new file mode 100644 index 0000000..02cab0e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-public.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static char * ecb_enumeration_public_xpm[] = { +"16 14 6 1", +" c None", +". c #005D00", +"+ c #F2F2F2", +"@ c #FFFFFF", +"# c #3CBA00", +"$ c #0000FF", +" ", +" ...+ ", +"@+@ .#@#.+ ", +"+$+ .@ +.@ ", +"$$@+@+ @ .....@", +"+$+$$@ ..#..+", +"@$@+@$@+@ .#@#.@", +"+$+@$@$$++..#..+", +"@+@$@+@+$@.....@", +" +$$$+$++@+@+@+", +" @+@+@+$+ ", +" @$$+@ ", +" +@+@ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-unknown.xpm new file mode 100644 index 0000000..8caa355 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-enum-unknown.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * ecbenumunknown_xpm[] = { +"16 14 5 1", +" c None", +"! c black", +"# c white", +"$ c #F2F2F2", +"% c #0000FF", +" ", +" ", +"#$# ", +"$%$ ", +"%%#$#$ ", +"$%$%%# ", +"#%#$#%#$# ", +"$%$#%#%%$$ ", +"#$#%#$#$%# ", +" $%%%$%$$ ", +" #$#$#$%$ ", +" #%%$# ", +" $#$# ", +" "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-bucket.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-bucket.xpm new file mode 100644 index 0000000..45b42a9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-bucket.xpm @@ -0,0 +1,120 @@ +/* XPM */ +static char * Methods_xpm[] = { +"16 14 103 2", +" c None", +". c #000000", +"+ c #E5A684", +"@ c #D6AE99", +"# c #DF966D", +"$ c #C16E3E", +"% c #532923", +"& c #E6E6E6", +"* c #CA713E", +"= c #DB8958", +"- c #C98762", +"; c #848484", +"> c #8B8B8B", +", c #616161", +"' c #3B3B3B", +") c #4B251F", +"! c #D1D1D1", +"~ c #C6C6C6", +"{ c #545454", +"] c #6B6A6A", +"^ c #FFFFFF", +"/ c #C16D3C", +"( c #DB8757", +"_ c #D3A389", +": c #717070", +"< c #F2F2F2", +"[ c #5E5E5E", +"} c #5B5B5B", +"| c #626262", +"1 c #444444", +"2 c #715B4F", +"3 c #7B665A", +"4 c #736358", +"5 c #7E6E65", +"6 c #766963", +"7 c #80756F", +"8 c #544948", +"9 c #7B7B7B", +"0 c #6F6F6F", +"a c #BCBCBC", +"b c #C6C5C6", +"c c #EFEFEF", +"d c #787978", +"e c #DAB8A5", +"f c #EFCEBC", +"g c #DEC5B8", +"h c #F2DACE", +"i c #96837F", +"j c #FAFAFA", +"k c #6B6B6B", +"l c #696969", +"m c #C5C5C5", +"n c #BBBBBB", +"o c #FBFBFC", +"p c #EEEEED", +"q c #A28D89", +"r c #988480", +"s c #A18B88", +"t c #FAFAF9", +"u c #717171", +"v c #EEEDED", +"w c #F9F9F9", +"x c #E9E9E8", +"y c #FBFBFB", +"z c #E7E7E7", +"A c #F9FAF9", +"B c #F1F0F1", +"C c #C2C2C2", +"D c #B7B8B7", +"E c #F5F5F5", +"F c #E7E8E8", +"G c #E5E5E5", +"H c #EFF0F0", +"I c #E2E2E2", +"J c #ECEDED", +"K c #DFDFDF", +"L c #B7B7B8", +"M c #C0C1C1", +"N c #D6D6D6", +"O c #E0E0E0", +"P c #D4D4D4", +"Q c #DFDEDE", +"R c #D3D3D3", +"S c #DDDDDD", +"T c #D1D2D1", +"U c #DCDCDC", +"V c #C7C7C7", +"W c #BDBDBD", +"X c #484847", +"Y c #C1C1C0", +"Z c #F1F1F0", +"` c #E3E3E3", +" . c #EBEBEB", +".. c #DEDEDE", +"+. c #E8E9E8", +"@. c #DCDBDB", +"#. c #EDEDEE", +"$. c #EAEBEB", +"%. c #E9E8E9", +"&. c #DCDCDB", +"*. c #E7E7E6", +"=. c #646464", +"-. c #040404", +" -.-.-.-. ", +" -.+ @ # $ % & ", +" -.+ @ * $ = - % ; > , ' ", +" ; -.@ * $ = - + ) ! ~ { ] ^ ", +" , ! -.# / ( - + _ % ~ { ~ : < ", +"[ } | 1 2 3 4 5 6 7 8 9 ~ ! ] ^ ", +"0 a b c d e f g h i j k ! ~ : < ", +"l m n o p q r s i t & u ~ ! ] ^ ", +"0 n m v w x y z A & B k ! ~ : < ", +"l C D E F < G H I J K u ~ ! ] ^ ", +"0 L M N O P Q R S T U k V W X < ", +"l Y N Z ` v O ...+.@.u ~ | < ", +"0 N < ` #.O $...%.&.*.k | < ", +"l 0 l 0 l 0 l 0 l 0 l =.< "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-private-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-private-static.xpm new file mode 100644 index 0000000..9f9aee7 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-private-static.xpm @@ -0,0 +1,70 @@ +/* XPM */ +static char * ecbfunctionprivatestatic_xpm[] = { +"16 14 53 1", +" c None", +"! c black", +"# c #BA0000", +"$ c #F2F2F2", +"% c #474747", +"& c #434343", +"' c #626C7D", +"( c #FF9090", +") c white", +"* c #F6E8C6", +"+ c #C27F58", +", c #4F2721", +"- c #1B0D0B", +". c #E0CFB0", +"0 c #B16238", +"1 c #040404", +"2 c #E5A684", +"3 c #915532", +"4 c #F7E4C2", +"5 c #C36D3D", +"6 c #532923", +"7 c #FF2424", +"8 c #E7CBBC", +"9 c #C07B57", +": c #EAD6B7", +"; c #CE7644", +"< c #D48E67", +"= c #E2B7A1", +"> c #CA713E", +"? c #B67553", +"@ c #F7E2C6", +"A c #C37344", +"B c #DF966D", +"C c #CB733F", +"D c #995A35", +"E c #EAD7C1", +"F c #D07C4D", +"G c #DEAC90", +"H c #DB8958", +"I c #F8E5D1", +"J c #C6794E", +"K c #EEC1AA", +"L c #EBDACB", +"M c #D18255", +"N c #4A2A26", +"O c #ECDBCF", +"P c #A85D35", +"Q c #887371", +"R c #EDE0D8", +"S c #D58F67", +"T c #73605E", +"U c #796563", +"V c #90807F", +" ", +" ###$ ", +" %&'$ #()(#$ ", +" &*+) #) $#) ", +" ,-.0$ #####$ ", +" 123456$ ##7##) ", +"1289:;<6$#7)7#$ ", +"1=>?@A2,)##7##) ", +"1BCDEFG6$#####$ ", +"1CH3IJK,)$)$)$) ", +"$1 c #CA713E", +", c #DB8958", +"' c #D48E67", +") c #4F2721", +"! c #CB733F", +"~ c #DB8757", +"{ c #DEAC90", +"] c #EEC1AA", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +" $$$$+ .....+ ", +" $%&*=-+ ..;..# ", +"$%&>=,'-+.;#;.+ ", +"$&>=,'%)#..;..# ", +"$*!~'%{-+.....+ ", +"$!,'%{])#+#+#+# ", +"+$'%{])# ", +" +-)-)# ", +" +#+# ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected-static.xpm new file mode 100644 index 0000000..6a7d3b4 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected-static.xpm @@ -0,0 +1,77 @@ +/* XPM */ +static char * ecb_function_protected_static_xpm[] = { +"16 14 60 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #474747", +"# c #434343", +"$ c #626C7D", +"% c #FFFFFF", +"& c #FEE99F", +"* c #FEF0B7", +"= c #FEDF8B", +"- c #8E2E00", +"; c #F6E8C6", +"> c #C27F58", +", c #FDC760", +"' c #FCBD4F", +") c #C04C00", +"! c #FEFBE5", +"~ c #4F2721", +"{ c #1B0D0B", +"] c #E0CFB0", +"^ c #B16238", +"/ c #FDD378", +"( c #B84900", +"_ c #E5A684", +": c #915532", +"< c #F7E4C2", +"[ c #C36D3D", +"} c #532923", +"| c #963400", +"1 c #E7CBBC", +"2 c #C07B57", +"3 c #EAD6B7", +"4 c #CE7644", +"5 c #D48E67", +"6 c #E2B7A1", +"7 c #CA713E", +"8 c #B67553", +"9 c #F7E2C6", +"0 c #C37344", +"a c #DF966D", +"b c #CB733F", +"c c #995A35", +"d c #EAD7C1", +"e c #D07C4D", +"f c #DEAC90", +"g c #DB8958", +"h c #F8E5D1", +"i c #C6794E", +"j c #EEC1AA", +"k c #EBDACB", +"l c #D18255", +"m c #4A2A26", +"n c #ECDBCF", +"o c #A85D35", +"p c #887371", +"q c #EDE0D8", +"r c #D58F67", +"s c #73605E", +"t c #796563", +"u c #90807F", +" ", +" .....+ ", +" @#$+ .%&*&=-%", +" #;>% .&,.,')!", +" ~{]^+ .=',/,(%", +" ._:<[}++..'|(% ", +"._12345}+%.,(% ", +".67890_~% .')! ", +".abcdef}+ .,/)% ", +".bg:hij~% ./)! ", +"+.5ckl~% +|! ", +" +}mno% ! ", +" +pqr+ ", +" stu% "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected.xpm new file mode 100644 index 0000000..e421dc1 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-protected.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char * ecb_function_protected_xpm[] = { +"16 14 28 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #FFFFFF", +"# c #FEE99F", +"$ c #FEF0B7", +"% c #FEDF8B", +"& c #8E2E00", +"* c #FDC760", +"= c #FCBD4F", +"- c #C04C00", +"; c #FEFBE5", +"> c #FDD378", +", c #B84900", +"' c #E5A684", +") c #E2B7A1", +"! c #DF966D", +"~ c #CB7441", +"{ c #532923", +"] c #963400", +"^ c #CA713E", +"/ c #DB8958", +"( c #D48E67", +"_ c #4F2721", +": c #CB733F", +"< c #DB8757", +"[ c #DEAC90", +"} c #EEC1AA", +" ", +" .....+ ", +" .@#$#%&@", +" .#*.*=-;", +" ....+ .%=*>*,@", +" .')!~{++..=],@ ", +".')^~/({+@.*,@ ", +".)^~/('_@ .=-; ", +".!:<('[{+ .*>-@ ", +".:/('[}_@ .>-; ", +"+.('[}_@ +]; ", +" +{_{_@ ; ", +" +@+@ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public-static.xpm new file mode 100644 index 0000000..7c9b1c3 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public-static.xpm @@ -0,0 +1,68 @@ +/* XPM */ +static char * ecb_function_public_static_xpm[] = { +"16 14 51 1", +" c None", +". c #005D00", +"+ c #F2F2F2", +"@ c #474747", +"# c #434343", +"$ c #626C7D", +"% c #3CBA00", +"& c #FFFFFF", +"* c #F6E8C6", +"= c #C27F58", +"- c #4F2721", +"; c #1B0D0B", +"> c #E0CFB0", +", c #B16238", +"' c #040404", +") c #E5A684", +"! c #915532", +"~ c #F7E4C2", +"{ c #C36D3D", +"] c #532923", +"^ c #E7CBBC", +"/ c #C07B57", +"( c #EAD6B7", +"_ c #CE7644", +": c #D48E67", +"< c #E2B7A1", +"[ c #CA713E", +"} c #B67553", +"| c #F7E2C6", +"1 c #C37344", +"2 c #DF966D", +"3 c #CB733F", +"4 c #995A35", +"5 c #EAD7C1", +"6 c #D07C4D", +"7 c #DEAC90", +"8 c #DB8958", +"9 c #F8E5D1", +"0 c #C6794E", +"a c #EEC1AA", +"b c #EBDACB", +"c c #D18255", +"d c #4A2A26", +"e c #ECDBCF", +"f c #A85D35", +"g c #887371", +"h c #EDE0D8", +"i c #D58F67", +"j c #73605E", +"k c #796563", +"l c #90807F", +" ", +" ...+ ", +" @#$+.%&%.+ ", +" #*=&.& +.& ", +" -;>,+ .....+ ", +" ')!~{]+ ..%..& ", +"')^/(_:]+.%&%.+ ", +"'<[}|1)-&..%..& ", +"'234567]+.....+ ", +"'38!90a-&+&+&+& ", +"+':4bc-& ", +" +]def& ", +" +ghi+ ", +" jkl& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public.xpm new file mode 100644 index 0000000..78f3828 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-public.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char * ecb_function_public_xpm[] = { +"16 14 19 1", +" c None", +". c #005D00", +"+ c #F2F2F2", +"@ c #3CBA00", +"# c #FFFFFF", +"$ c #040404", +"% c #E5A684", +"& c #E2B7A1", +"* c #DF966D", +"= c #CB7441", +"- c #532923", +"; c #CA713E", +"> c #DB8958", +", c #D48E67", +"' c #4F2721", +") c #CB733F", +"! c #DB8757", +"~ c #DEAC90", +"{ c #EEC1AA", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +" $$$$++ .....+ ", +" $%&*=-+ ..@..# ", +"$%&;=>,-+.@#@.+ ", +"$&;=>,%'#..@..# ", +"$*)!,%~-+.....+ ", +"$)>,%~{'#+#+#+# ", +"+$,%~{'# ", +" +-'-'# ", +" +#+# ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown-static.xpm new file mode 100644 index 0000000..510b95e --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown-static.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char * ecb_function_unknown_static_xpm[] = { +"12 14 50 1", +" c None", +". c #474747", +"+ c #434343", +"@ c #626C7D", +"# c #F2F2F2", +"$ c #F6E8C6", +"% c #C27F58", +"& c #FFFFFF", +"* c #4F2721", +"= c #1B0D0B", +"- c #E0CFB0", +"; c #B16238", +"> c #040404", +", c #E5A684", +"' c #915532", +") c #F7E4C2", +"! c #C36D3D", +"~ c #532923", +"{ c #E7CBBC", +"] c #C07B57", +"^ c #EAD6B7", +"/ c #CE7644", +"( c #D48E67", +"_ c #A5A5C6", +": c #E2B7A1", +"< c #CA713E", +"[ c #B67553", +"} c #F7E2C6", +"| c #C37344", +"1 c #DF966D", +"2 c #CB733F", +"3 c #995A35", +"4 c #EAD7C1", +"5 c #D07C4D", +"6 c #DEAC90", +"7 c #DB8958", +"8 c #F8E5D1", +"9 c #C6794E", +"0 c #EEC1AA", +"a c #EBDACB", +"b c #D18255", +"c c #4A2A26", +"d c #ECDBCF", +"e c #A85D35", +"f c #887371", +"g c #EDE0D8", +"h c #D58F67", +"i c #73605E", +"j c #796563", +"k c #90807F", +" ", +" ", +" .+@# ", +" +$%& ", +" *=-;# ", +" >,')!~# ", +" >,{]^/(~# ", +"_>:<[}|,*& ", +" >123456~# ", +" >27'890*& ", +" #>(3ab*& ", +" #~cde& ", +" #fgh# ", +" ijk& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown.xpm new file mode 100644 index 0000000..cb9c615 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-function-unknown.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * ecb_function_unknown_xpm[] = { +"12 14 18 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #E5A684", +"# c #E2B7A1", +"$ c #DF966D", +"% c #CB7441", +"& c #532923", +"* c #CA713E", +"= c #DB8958", +"- c #D48E67", +"; c #A5A5C6", +"> c #4F2721", +", c #FFFFFF", +"' c #CB733F", +") c #DB8757", +"! c #DEAC90", +"~ c #EEC1AA", +" ", +" ", +" ", +" ", +" ....+ ", +" .@#$%&+ ", +" .@#*%=-&+ ", +";.#*%=-@>, ", +" .$')-@!&+ ", +" .'=-@!~>, ", +" +.-@!~>, ", +" +&>&>, ", +" +,+, ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-bucket.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-bucket.xpm new file mode 100644 index 0000000..f5c14ae --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-bucket.xpm @@ -0,0 +1,205 @@ +/* XPM */ +static char * parents_xpm[] = { +"16 14 188 2", +" c None", +". c #F3F3F3", +"+ c #BCBCBC", +"@ c #BABABA", +"# c #EBEBEB", +"$ c #EBE1CE", +"% c #D1B37B", +"& c #D5B67F", +"* c #CCAB6E", +"= c #E0D6C3", +"- c #C0C0C0", +"; c #555555", +"> c #7E7E7E", +", c #7B7B7B", +"' c #4F4F4F", +") c #9E9E9E", +"! c #F7F4EC", +"~ c #C29542", +"{ c #DEB66E", +"] c #E7C893", +"^ c #DCBA7D", +"/ c #B0842F", +"( c #DCD8D2", +"_ c #DEDEDE", +": c #3F3F3F", +"< c #5C5C5C", +"[ c #818181", +"} c #7F7E7E", +"| c #53403C", +"1 c #27211E", +"2 c #CFCFCF", +"3 c #E1CCA4", +"4 c #C38D2A", +"5 c #CB973C", +"6 c #D79D44", +"7 c #DC9839", +"8 c #C28829", +"9 c #A99875", +"0 c #757575", +"a c #424242", +"b c #414141", +"c c #734122", +"d c #AC551F", +"e c #DE7529", +"f c #CC7226", +"g c #99897A", +"h c #E1BD84", +"i c #FEB953", +"j c #FABB55", +"k c #FFBE58", +"l c #FFB953", +"m c #FDB14B", +"n c #A48B61", +"o c #373737", +"p c #343434", +"q c #4D3522", +"r c #EC862D", +"s c #F69131", +"t c #F48F30", +"u c #E8822B", +"v c #926D52", +"w c #DCB57B", +"x c #FFAE48", +"y c #FFB24C", +"z c #FDA640", +"A c #9C8A6A", +"B c #292929", +"C c #242424", +"D c #623517", +"E c #D16B24", +"F c #D77126", +"G c #D67025", +"H c #CC6622", +"I c #876553", +"J c #D7BE95", +"K c #FEA13B", +"L c #FFA43E", +"M c #FFA13B", +"N c #DB8B2B", +"O c #ABA8A2", +"P c #626262", +"Q c #121212", +"R c #3E1E0F", +"S c #B54F1B", +"T c #BA541C", +"U c #B9531C", +"V c #A44114", +"W c #93817C", +"X c #EBEAE1", +"Y c #CE8827", +"Z c #F4942E", +"` c #E78D28", +" . c #917244", +".. c #E5E5E5", +"+. c #444444", +"@. c #0D0D10", +"#. c #4B1908", +"$. c #9D3712", +"%. c #993311", +"&. c #692926", +"*. c #86A18A", +"=. c #66B366", +"-. c #699957", +";. c #BF914A", +">. c #C08A38", +",. c #758234", +"'. c #6A9569", +"). c #C3CCE5", +"!. c #3C5CBA", +"~. c #4A3C78", +"{. c #7A3F4F", +"]. c #7A5A7E", +"^. c #4264CA", +"/. c #376CB1", +"(. c #6CC47F", +"_. c #7CBD80", +":. c #F0F8FF", +"<. c #C0DBD2", +"[. c #5DB760", +"}. c #57BD57", +"|. c #7CA97C", +"1. c #E8EDF8", +"2. c #4765DF", +"3. c #6782FD", +"4. c #527AE6", +"5. c #81B3F2", +"6. c #9DD0FF", +"7. c #537CE2", +"8. c #6078FC", +"9. c #4180A5", +"0. c #5CB25E", +"a. c #E9FBF8", +"b. c #5FAF60", +"c. c #6FD06F", +"d. c #54C354", +"e. c #2B972B", +"f. c #D2D5D2", +"g. c #8BA2DC", +"h. c #425BEC", +"i. c #5C72FD", +"j. c #6A85FD", +"k. c #4D77DD", +"l. c #A8DAFB", +"m. c #466AE3", +"n. c #576BFB", +"o. c #3068AF", +"p. c #45B145", +"q. c #5FAA6B", +"r. c #59C359", +"s. c #53C353", +"t. c #3DB83D", +"u. c #1D9D1D", +"v. c #9AA99A", +"w. c #748FD5", +"x. c #2B4ED6", +"y. c #465EF0", +"z. c #586CFC", +"A. c #576EF8", +"B. c #4070CF", +"C. c #475FEE", +"D. c #3251D5", +"E. c #385B7C", +"F. c #4C8B4C", +"G. c #2E7B2E", +"H. c #378D37", +"I. c #328B32", +"J. c #2A832A", +"K. c #397639", +"L. c #C5C6C5", +"M. c #D5DBEA", +"N. c #556DAD", +"O. c #3D59AB", +"P. c #4059AD", +"Q. c #435BAE", +"R. c #465D9F", +"S. c #5F709C", +"T. c #959AA7", +"U. c #DFDFDF", +"V. c #F4F4F4", +"W. c #E8E8E8", +"X. c #DCDCDC", +"Y. c #DBDBDB", +"Z. c #ECECEC", +"`. c #F9F9F9", +" + c #F1F1F1", +".+ c #F0F0F0", +"++ c #FAFAFA", +"@+ c #FFFFFF", +" . + @ # $ % & * = ", +" - ; > , ' ) ! ~ { ] ^ / ( ", +"_ : < [ } | 1 2 3 4 5 6 7 8 9 ", +"0 a b c d e f g h i j k l m n ", +"o p q r s t u v w x y y x z A ", +"B C D E F G H I J K L L M N O ", +"P Q R S T U V W X Y Z Z ` ... ", +"..+.@.#.$.%.&.*.=.-.;.>.,.'. ", +" ).!.~.{.].^./.(._.:.<.[.}.|. ", +"1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.", +"g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.", +"w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.", +"M.N.O.P.Q.R.S.T.U.V.W.X.Y.X.Z. ", +" `. +.+.+V.++@+ "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-private.xpm new file mode 100644 index 0000000..523351d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-private.xpm @@ -0,0 +1,127 @@ +/* XPM */ +static char * ecb_variable_private_xpm[] = { +"16 14 110 2", +" c None", +". c #F3F3F3", +"+ c #BCBCBC", +"@ c #BABABA", +"# c #EBEBEB", +"$ c #C0C0C0", +"% c #555555", +"& c #7E7E7E", +"* c #7B7B7B", +"= c #4F4F4F", +"- c #9E9E9E", +"; c #BA0000", +"> c #F2F2F2", +", c #DEDEDE", +"' c #3F3F3F", +") c #5C5C5C", +"! c #818181", +"~ c #7F7E7E", +"{ c #53403C", +"] c #27211E", +"^ c #CFCFCF", +"/ c #FF9090", +"( c #FFFFFF", +"_ c #757575", +": c #424242", +"< c #414141", +"[ c #734122", +"} c #AC551F", +"| c #DE7529", +"1 c #CC7226", +"2 c #99897A", +"3 c #373737", +"4 c #343434", +"5 c #4D3522", +"6 c #EC862D", +"7 c #F69131", +"8 c #F48F30", +"9 c #E8822B", +"0 c #926D52", +"a c #292929", +"b c #242424", +"c c #623517", +"d c #D16B24", +"e c #D77126", +"f c #D67025", +"g c #CC6622", +"h c #876553", +"i c #FF2424", +"j c #626262", +"k c #121212", +"l c #3E1E0F", +"m c #B54F1B", +"n c #BA541C", +"o c #B9531C", +"p c #A44114", +"q c #93817C", +"r c #A5A5C6", +"s c #444444", +"t c #0D0D10", +"u c #4B1908", +"v c #9D3712", +"w c #993311", +"x c #692926", +"y c #C3CCE5", +"z c #3C5CBA", +"A c #4A3C78", +"B c #7A3F4F", +"C c #7A5A7E", +"D c #4264CA", +"E c #376CB1", +"F c #E8EDF8", +"G c #4765DF", +"H c #6782FD", +"I c #527AE6", +"J c #81B3F2", +"K c #9DD0FF", +"L c #537CE2", +"M c #6078FC", +"N c #4180A5", +"O c #8BA2DC", +"P c #425BEC", +"Q c #5C72FD", +"R c #6A85FD", +"S c #4D77DD", +"T c #A8DAFB", +"U c #466AE3", +"V c #576BFB", +"W c #3068AF", +"X c #748FD5", +"Y c #2B4ED6", +"Z c #465EF0", +"` c #586CFC", +" . c #576EF8", +".. c #4070CF", +"+. c #475FEE", +"@. c #3251D5", +"#. c #385B7C", +"$. c #D5DBEA", +"%. c #556DAD", +"&. c #3D59AB", +"*. c #4059AD", +"=. c #435BAE", +"-. c #465D9F", +";. c #5F709C", +">. c #959AA7", +",. c #DFDFDF", +"'. c #F1F1F1", +"). c #F0F0F0", +"!. c #F4F4F4", +"~. c #FAFAFA", +" . + @ # ", +" $ % & * = - ; ; ; > ", +", ' ) ! ~ { ] ^ ; / ( / ; > ", +"_ : < [ } | 1 2 ; ( > ; ( ", +"3 4 5 6 7 8 9 0 ; ; ; ; ; > ", +"a b c d e f g h ; ; i ; ; ( ", +"j k l m n o p q ; i ( i ; > ", +"r s t u v w x ^ ; ; i ; ; ( ", +" y z A B C D E ; ; ; ; ; > ", +"F G H I J K L M N > ( > ( > ( ", +"O P Q R S T U V W ", +"X Y Z ` ...+.@.#. ", +"$.%.&.*.=.-.;.>.,. ", +" '.).).!.~. "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-protected.xpm new file mode 100644 index 0000000..3cb7a18 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-protected.xpm @@ -0,0 +1,136 @@ +/* XPM */ +static char * ecb_variable_protected_xpm[] = { +"16 14 119 2", +" c None", +". c #F3F3F3", +"+ c #BCBCBC", +"@ c #BABABA", +"# c #EBEBEB", +"$ c #C0C0C0", +"% c #555555", +"& c #7E7E7E", +"* c #7B7B7B", +"= c #4F4F4F", +"- c #9E9E9E", +"; c #040404", +"> c #F2F2F2", +", c #DEDEDE", +"' c #3F3F3F", +") c #5C5C5C", +"! c #818181", +"~ c #7F7E7E", +"{ c #53403C", +"] c #27211E", +"^ c #CFCFCF", +"/ c #FFFFFF", +"( c #FEE99F", +"_ c #FEF0B7", +": c #FEDF8B", +"< c #8E2E00", +"[ c #757575", +"} c #424242", +"| c #414141", +"1 c #734122", +"2 c #AC551F", +"3 c #DE7529", +"4 c #CC7226", +"5 c #99897A", +"6 c #FDC760", +"7 c #FCBD4F", +"8 c #C04C00", +"9 c #FEFBE5", +"0 c #373737", +"a c #343434", +"b c #4D3522", +"c c #EC862D", +"d c #F69131", +"e c #F48F30", +"f c #E8822B", +"g c #926D52", +"h c #FDD378", +"i c #B84900", +"j c #292929", +"k c #242424", +"l c #623517", +"m c #D16B24", +"n c #D77126", +"o c #D67025", +"p c #CC6622", +"q c #876553", +"r c #963400", +"s c #626262", +"t c #121212", +"u c #3E1E0F", +"v c #B54F1B", +"w c #BA541C", +"x c #B9531C", +"y c #A44114", +"z c #93817C", +"A c #A5A5C6", +"B c #444444", +"C c #0D0D10", +"D c #4B1908", +"E c #9D3712", +"F c #993311", +"G c #692926", +"H c #C3CCE5", +"I c #3C5CBA", +"J c #4A3C78", +"K c #7A3F4F", +"L c #7A5A7E", +"M c #4264CA", +"N c #376CB1", +"O c #E8EDF8", +"P c #4765DF", +"Q c #6782FD", +"R c #527AE6", +"S c #81B3F2", +"T c #9DD0FF", +"U c #537CE2", +"V c #6078FC", +"W c #4180A5", +"X c #8BA2DC", +"Y c #425BEC", +"Z c #5C72FD", +"` c #6A85FD", +" . c #4D77DD", +".. c #A8DAFB", +"+. c #466AE3", +"@. c #576BFB", +"#. c #3068AF", +"$. c #748FD5", +"%. c #2B4ED6", +"&. c #465EF0", +"*. c #586CFC", +"=. c #576EF8", +"-. c #4070CF", +";. c #475FEE", +">. c #3251D5", +",. c #385B7C", +"'. c #D5DBEA", +"). c #556DAD", +"!. c #3D59AB", +"~. c #4059AD", +"{. c #435BAE", +"]. c #465D9F", +"^. c #5F709C", +"/. c #959AA7", +"(. c #DFDFDF", +"_. c #F1F1F1", +":. c #F0F0F0", +"<. c #F4F4F4", +"[. c #FAFAFA", +" . + @ # ", +" $ % & * = - ; ; ; ; ; > ", +", ' ) ! ~ { ] ^ ; / ( _ ( : < / ", +"[ } | 1 2 3 4 5 ; ( 6 ; 6 7 8 9 ", +"0 a b c d e f g ; : 7 6 h 6 i / ", +"j k l m n o p q / ; ; 7 r i / ", +"s t u v w x y z / ; 6 i / ", +"A B C D E F G ^ ; 7 8 9 ", +" H I J K L M N ; 6 h 8 / ", +"O P Q R S T U V W ; h 8 9 ", +"X Y Z ` ...+.@.#. r 9 ", +"$.%.&.*.=.-.;.>.,. 9 ", +"'.).!.~.{.].^./.(. ", +" _.:.:.<.[. "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-public.xpm new file mode 100644 index 0000000..6750c40 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-public.xpm @@ -0,0 +1,126 @@ +/* XPM */ +static char * ecb_variable_public_xpm[] = { +"16 14 109 2", +" c None", +". c #F3F3F3", +"+ c #BCBCBC", +"@ c #BABABA", +"# c #EBEBEB", +"$ c #C0C0C0", +"% c #555555", +"& c #7E7E7E", +"* c #7B7B7B", +"= c #4F4F4F", +"- c #9E9E9E", +"; c #005D00", +"> c #F2F2F2", +", c #DEDEDE", +"' c #3F3F3F", +") c #5C5C5C", +"! c #818181", +"~ c #7F7E7E", +"{ c #53403C", +"] c #27211E", +"^ c #CFCFCF", +"/ c #3CBA00", +"( c #FFFFFF", +"_ c #757575", +": c #424242", +"< c #414141", +"[ c #734122", +"} c #AC551F", +"| c #DE7529", +"1 c #CC7226", +"2 c #99897A", +"3 c #373737", +"4 c #343434", +"5 c #4D3522", +"6 c #EC862D", +"7 c #F69131", +"8 c #F48F30", +"9 c #E8822B", +"0 c #926D52", +"a c #292929", +"b c #242424", +"c c #623517", +"d c #D16B24", +"e c #D77126", +"f c #D67025", +"g c #CC6622", +"h c #876553", +"i c #626262", +"j c #121212", +"k c #3E1E0F", +"l c #B54F1B", +"m c #BA541C", +"n c #B9531C", +"o c #A44114", +"p c #93817C", +"q c #A5A5C6", +"r c #444444", +"s c #0D0D10", +"t c #4B1908", +"u c #9D3712", +"v c #993311", +"w c #692926", +"x c #C3CCE5", +"y c #3C5CBA", +"z c #4A3C78", +"A c #7A3F4F", +"B c #7A5A7E", +"C c #4264CA", +"D c #376CB1", +"E c #E8EDF8", +"F c #4765DF", +"G c #6782FD", +"H c #527AE6", +"I c #81B3F2", +"J c #9DD0FF", +"K c #537CE2", +"L c #6078FC", +"M c #4180A5", +"N c #8BA2DC", +"O c #425BEC", +"P c #5C72FD", +"Q c #6A85FD", +"R c #4D77DD", +"S c #A8DAFB", +"T c #466AE3", +"U c #576BFB", +"V c #3068AF", +"W c #748FD5", +"X c #2B4ED6", +"Y c #465EF0", +"Z c #586CFC", +"` c #576EF8", +" . c #4070CF", +".. c #475FEE", +"+. c #3251D5", +"@. c #385B7C", +"#. c #D5DBEA", +"$. c #556DAD", +"%. c #3D59AB", +"&. c #4059AD", +"*. c #435BAE", +"=. c #465D9F", +"-. c #5F709C", +";. c #959AA7", +">. c #DFDFDF", +",. c #F1F1F1", +"'. c #F0F0F0", +"). c #F4F4F4", +"!. c #FAFAFA", +" . + @ # ", +" $ % & * = - ; ; ; > ", +", ' ) ! ~ { ] ^ ; / ( / ; > ", +"_ : < [ } | 1 2 ; ( > ; ( ", +"3 4 5 6 7 8 9 0 ; ; ; ; ; > ", +"a b c d e f g h ; ; / ; ; ( ", +"i j k l m n o p ; / ( / ; > ", +"q r s t u v w ^ ; ; / ; ; ( ", +" x y z A B C D ; ; ; ; ; > ", +"E F G H I J K L M > ( > ( > ( ", +"N O P Q R S T U V ", +"W X Y Z ` ...+.@. ", +"#.$.%.&.*.=.-.;.>. ", +" ,.'.'.).!. "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-unknown.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-unknown.xpm new file mode 100644 index 0000000..5615ff3 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-parent-unknown.xpm @@ -0,0 +1,122 @@ +/* XPM */ +static char * ecb_variable_unknown_xpm[] = { +"12 14 105 2", +" c None", +". c #F3F3F3", +"+ c #BCBCBC", +"@ c #BABABA", +"# c #EBEBEB", +"$ c #C0C0C0", +"% c #555555", +"& c #7E7E7E", +"* c #7B7B7B", +"= c #4F4F4F", +"- c #9E9E9E", +"; c #DEDEDE", +"> c #3F3F3F", +", c #5C5C5C", +"' c #818181", +") c #7F7E7E", +"! c #53403C", +"~ c #27211E", +"{ c #CFCFCF", +"] c #757575", +"^ c #424242", +"/ c #414141", +"( c #734122", +"_ c #AC551F", +": c #DE7529", +"< c #CC7226", +"[ c #99897A", +"} c #373737", +"| c #343434", +"1 c #4D3522", +"2 c #EC862D", +"3 c #F69131", +"4 c #F48F30", +"5 c #E8822B", +"6 c #926D52", +"7 c #292929", +"8 c #242424", +"9 c #623517", +"0 c #D16B24", +"a c #D77126", +"b c #D67025", +"c c #CC6622", +"d c #876553", +"e c #626262", +"f c #121212", +"g c #3E1E0F", +"h c #B54F1B", +"i c #BA541C", +"j c #B9531C", +"k c #A44114", +"l c #93817C", +"m c #A5A5C6", +"n c #444444", +"o c #0D0D10", +"p c #4B1908", +"q c #9D3712", +"r c #993311", +"s c #692926", +"t c #C3CCE5", +"u c #3C5CBA", +"v c #4A3C78", +"w c #7A3F4F", +"x c #7A5A7E", +"y c #4264CA", +"z c #376CB1", +"A c #E8EDF8", +"B c #4765DF", +"C c #6782FD", +"D c #527AE6", +"E c #81B3F2", +"F c #9DD0FF", +"G c #537CE2", +"H c #6078FC", +"I c #4180A5", +"J c #8BA2DC", +"K c #425BEC", +"L c #5C72FD", +"M c #6A85FD", +"N c #4D77DD", +"O c #A8DAFB", +"P c #466AE3", +"Q c #576BFB", +"R c #3068AF", +"S c #748FD5", +"T c #2B4ED6", +"U c #465EF0", +"V c #586CFC", +"W c #576EF8", +"X c #4070CF", +"Y c #475FEE", +"Z c #3251D5", +"` c #385B7C", +" . c #D5DBEA", +".. c #556DAD", +"+. c #3D59AB", +"@. c #4059AD", +"#. c #435BAE", +"$. c #465D9F", +"%. c #5F709C", +"&. c #959AA7", +"*. c #DFDFDF", +"=. c #F1F1F1", +"-. c #F0F0F0", +";. c #F4F4F4", +">. c #FAFAFA", +" . + @ # ", +" $ % & * = - ", +" ; > , ' ) ! ~ { ", +" ] ^ / ( _ : < [ ", +" } | 1 2 3 4 5 6 ", +" 7 8 9 0 a b c d ", +" e f g h i j k l ", +"m m n o p q r s { ", +" t u v w x y z ", +" A B C D E F G H I ", +" J K L M N O P Q R ", +" S T U V W X Y Z ` ", +" ...+.@.#.$.%.&.*. ", +" =.-.-.;.>. "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-bucket.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-bucket.xpm new file mode 100644 index 0000000..acdae43 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-bucket.xpm @@ -0,0 +1,133 @@ +/* XPM */ +static char * Variables_xpm[] = { +"16 14 116 2", +" c None", +". c #000000", +"+ c #C2CBDF", +"@ c #8AAAEA", +"# c #83A1DE", +"$ c #6F8FD3", +"% c #FFFFFF", +"& c #B2C5EB", +"* c #5B79BF", +"= c #688AD5", +"- c #6180C3", +"; c #7193DC", +"> c #6B89C9", +", c #4F648E", +"' c #848484", +") c #8B8B8B", +"! c #616161", +"~ c #3B3B3B", +"{ c #A0B1D4", +"] c #6789D6", +"^ c #617FC3", +"/ c #7091DA", +"( c #6988C8", +"_ c #7B9CE2", +": c #475A80", +"< c #D1D1D1", +"[ c #C6C6C6", +"} c #545454", +"| c #6B6A6A", +"1 c #617EC3", +"2 c #6F91DA", +"3 c #6987C7", +"4 c #7A9CE1", +"5 c #7390CD", +"6 c #717070", +"7 c #F2F2F2", +"8 c #5E5E5E", +"9 c #5B5B5B", +"0 c #626262", +"a c #444444", +"b c #696D76", +"c c #5F687B", +"d c #5A6273", +"e c #626B7C", +"f c #5D6574", +"g c #656D7E", +"h c #535761", +"i c #4C4C4C", +"j c #6F6F6F", +"k c #BCBCBC", +"l c #C6C5C6", +"m c #737373", +"n c #D5DFF3", +"o c #A7B7D9", +"p c #B6C7EB", +"q c #ACBBDB", +"r c #BACBEE", +"s c #AFBEDC", +"t c #9EA9BF", +"u c #6B6B6B", +"v c #696969", +"w c #C5C5C5", +"x c #BBBBBB", +"y c #787879", +"z c #B2C2DF", +"A c #A0ABC1", +"B c #969FB3", +"C c #9FAAC0", +"D c #949EB2", +"E c #9EA9BE", +"F c #939DB1", +"G c #717171", +"H c #EEEDED", +"I c #F9F9F9", +"J c #EBEBEA", +"K c #F6F7F7", +"L c #E9E9E9", +"M c #F3F4F3", +"N c #E6E6E6", +"O c #F1F0F1", +"P c #C2C2C2", +"Q c #B7B8B7", +"R c #F5F5F5", +"S c #E7E8E8", +"T c #E5E5E5", +"U c #EFF0F0", +"V c #E2E2E2", +"W c #ECEDED", +"X c #DFDFDF", +"Y c #B7B7B8", +"Z c #C0C1C1", +"` c #D6D6D6", +" . c #E0E0E0", +".. c #D4D4D4", +"+. c #DFDEDE", +"@. c #D3D3D3", +"#. c #DDDDDD", +"$. c #D1D2D1", +"%. c #DCDCDC", +"&. c #C7C7C7", +"*. c #BDBDBD", +"=. c #484847", +"-. c #C1C1C0", +";. c #F1F1F0", +">. c #E3E3E3", +",. c #EBEBEB", +"'. c #DEDEDE", +"). c #E8E9E8", +"!. c #DCDBDB", +"~. c #EDEDEE", +"{. c #EAEBEB", +"]. c #E9E8E9", +"^. c #DCDCDB", +"/. c #E7E7E6", +"(. c #646464", +"_. c #040404", +" _._._._._._._._. ", +" _.+ @ # @ # @ $ % ", +" _.& * = - ; > , ' ) ! ~ ", +" ' _.{ ] ^ / ( _ : < [ } | % ", +" ! < _.& 1 2 3 4 5 , [ } [ 6 7 ", +"8 9 0 a b c d e f g h i [ < | % ", +"j k l m n o p q r s t u < [ 6 7 ", +"v w x y z A B C D E F G [ < | % ", +"j x w H I J K L M N O u < [ 6 7 ", +"v P Q R S 7 T U V W X G [ < | % ", +"j Y Z ` ...+.@.#.$.%.u &.*.=.7 ", +"v -.` ;.>.H .,.'.).!.G [ 0 7 ", +"j ` 7 >.~. .{.'.].^./.u 0 7 ", +"v j v j v j v j v j v (.7 "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private-static.xpm new file mode 100644 index 0000000..99d45f7 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private-static.xpm @@ -0,0 +1,72 @@ +/* XPM */ +static char * ecb_variable_private_static_xpm[] = { +"16 14 55 1", +" c None", +". c #BA0000", +"+ c #F2F2F2", +"@ c #474747", +"# c #434343", +"$ c #626C7D", +"% c #FF9090", +"& c #FFFFFF", +"* c #6E7683", +"= c #E7EBD8", +"- c #8296BD", +"; c #040404", +"> c #2D3544", +", c #CBCEBD", +"' c #5C729A", +") c #C2CBDF", +"! c #8AAAEA", +"~ c #57688C", +"{ c #E1E8DD", +"] c #5C7099", +"^ c #6F8FD3", +"/ c #FF2424", +"( c #B2C5EB", +"_ c #6080C9", +": c #50648B", +"< c #D3DAD4", +"[ c #6176A1", +"} c #7190D4", +"| c #4F648E", +"1 c #A9BBDF", +"2 c #6789D6", +"3 c #4D6085", +"4 c #DFE5E2", +"5 c #7B9CE2", +"6 c #4B5F87", +"7 c #6685CD", +"8 c #53668D", +"9 c #D4DADA", +"0 c #7998D8", +"a c #6E8FD9", +"b c #506287", +"c c #DFE7E9", +"d c #83A4E6", +"e c #6D8CD1", +"f c #56698F", +"g c #D5DBE1", +"h c #809EDC", +"i c #83A1DE", +"j c #44536D", +"k c #DCE2E9", +"l c #838B9A", +"m c #DEE3E9", +"n c #92A8D0", +"o c #727E95", +"p c #8690A1", +" ", +" ...+ ", +" @#$+ .%&%.+ ", +" *=-& .& +.& ", +";;;>,';; .....+ ", +";)!~{]!^&../..& ", +";(_:<[}|+./&/.+ ", +";1234]56&../..& ", +";(789[0|+.....+ ", +";1abc]d6&+&+&+& ", +";(efg[h|+ ", +";i|jk]|6& ", +" &+lmn+&+ ", +" *op& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private.xpm new file mode 100644 index 0000000..9289bce --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-private.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * ecb_variable_private_xpm[] = { +"16 14 39 1", +" c None", +". c #BA0000", +"+ c #F2F2F2", +"@ c #FF9090", +"# c #FFFFFF", +"$ c #040404", +"% c #C2CBDF", +"& c #8AAAEA", +"* c #83A1DE", +"= c #6F8FD3", +"- c #FF2424", +"; c #B2C5EB", +"> c #6080C9", +", c #688AD5", +"' c #6687CD", +") c #7193DC", +"! c #7190D4", +"~ c #4F648E", +"{ c #A9BBDF", +"] c #6789D6", +"^ c #6686CD", +"/ c #7091DA", +"( c #7B9CE2", +"_ c #4B5F87", +": c #6685CD", +"< c #6F91DA", +"[ c #6F8ED2", +"} c #7A9CE1", +"| c #7998D8", +"1 c #6E8FD9", +"2 c #6D8DD2", +"3 c #799AE0", +"4 c #7897D7", +"5 c #83A4E6", +"6 c #6D8CD1", +"7 c #7899DF", +"8 c #7896D7", +"9 c #83A3E6", +"0 c #809EDC", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +"$$$$$$$$ .....+ ", +"$%&*&*&=#..-..# ", +"$;>,')!~+.-#-.+ ", +"${]^/=(_#..-..# ", +"$;:<[}|~+.....+ ", +"${12345_#+#+#+# ", +"$;67890~+ ", +"$*~_~_~_# ", +" #+#+#+#+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected-static.xpm new file mode 100644 index 0000000..c46185d --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected-static.xpm @@ -0,0 +1,80 @@ +/* XPM */ +static char * ecb_variable_protected_static_xpm[] = { +"16 14 63 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #474747", +"# c #434343", +"$ c #626C7D", +"% c #FFFFFF", +"& c #FEE99F", +"* c #FEF0B7", +"= c #FEDF8B", +"- c #8E2E00", +"; c #6E7683", +"> c #E7EBD8", +", c #8296BD", +"' c #FDC760", +") c #FCBD4F", +"! c #C04C00", +"~ c #FEFBE5", +"{ c #2D3544", +"] c #CBCEBD", +"^ c #5C729A", +"/ c #FDD378", +"( c #B84900", +"_ c #C2CBDF", +": c #8AAAEA", +"< c #57688C", +"[ c #E1E8DD", +"} c #5C7099", +"| c #6F8FD3", +"1 c #963400", +"2 c #B2C5EB", +"3 c #6080C9", +"4 c #50648B", +"5 c #D3DAD4", +"6 c #6176A1", +"7 c #7190D4", +"8 c #4F648E", +"9 c #A9BBDF", +"0 c #6789D6", +"a c #4D6085", +"b c #DFE5E2", +"c c #7B9CE2", +"d c #4B5F87", +"e c #6685CD", +"f c #53668D", +"g c #D4DADA", +"h c #7998D8", +"i c #6E8FD9", +"j c #506287", +"k c #DFE7E9", +"l c #83A4E6", +"m c #6D8CD1", +"n c #56698F", +"o c #D5DBE1", +"p c #809EDC", +"q c #83A1DE", +"r c #44536D", +"s c #DCE2E9", +"t c #838B9A", +"u c #DEE3E9", +"v c #92A8D0", +"w c #727E95", +"x c #8690A1", +" ", +" .....+ ", +" @#$+ .%&*&=-%", +" ;>,% .&'.')!~", +"...{]^...=)'/'(%", +"._:<[}:|%..)1(% ", +".2345678+%.'(% ", +".90ab}cd% .)!~ ", +".2efg6h8+ .'/!% ", +".9ijk}ld% ./!~ ", +".2mno6p8+ 1~ ", +".q8rs}8d% ~ ", +" %+tuv+%+ ", +" ;wx% "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected.xpm new file mode 100644 index 0000000..c45587a --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-protected.xpm @@ -0,0 +1,64 @@ +/* XPM */ +static char * ecb_variable_protected_xpm[] = { +"16 14 47 1", +" c None", +". c #040404", +"+ c #F2F2F2", +"@ c #FFFFFF", +"# c #FEE99F", +"$ c #FEF0B7", +"% c #FEDF8B", +"& c #8E2E00", +"* c #FDC760", +"= c #FCBD4F", +"- c #C04C00", +"; c #FEFBE5", +"> c #FDD378", +", c #B84900", +"' c #C2CBDF", +") c #8AAAEA", +"! c #83A1DE", +"~ c #6F8FD3", +"{ c #963400", +"] c #B2C5EB", +"^ c #6080C9", +"/ c #688AD5", +"( c #6687CD", +"_ c #7193DC", +": c #7190D4", +"< c #4F648E", +"[ c #A9BBDF", +"} c #6789D6", +"| c #6686CD", +"1 c #7091DA", +"2 c #7B9CE2", +"3 c #4B5F87", +"4 c #6685CD", +"5 c #6F91DA", +"6 c #6F8ED2", +"7 c #7A9CE1", +"8 c #7998D8", +"9 c #6E8FD9", +"0 c #6D8DD2", +"a c #799AE0", +"b c #7897D7", +"c c #83A4E6", +"d c #6D8CD1", +"e c #7899DF", +"f c #7896D7", +"g c #83A3E6", +"h c #809EDC", +" ", +" .....+ ", +" .@#$#%&@", +" .#*.*=-;", +".........%=*>*,@", +".')!)!)~@..={,@ ", +".]^/(_:<+@.*,@ ", +".[}|1~23@ .=-; ", +".]45678<+ .*>-@ ", +".[90abc3@ .>-; ", +".]defgh<+ {; ", +".!<3<3<3@ ; ", +" @+@+@+@+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public-static.xpm new file mode 100644 index 0000000..aff5ca2 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public-static.xpm @@ -0,0 +1,72 @@ +/* XPM */ +static char * ecb_variable_public_static_xpm[] = { +"16 14 55 1", +" c None", +". c #005D00", +"+ c #F2F2F2", +"@ c #474747", +"# c #434343", +"$ c #626C7D", +"% c #3CBA00", +"& c #FFFFFF", +"* c #6E7683", +"= c #E7EBD8", +"- c #8296BD", +"; c #040404", +"> c #2D3544", +", c #CBCEBD", +"' c #5C729A", +") c #000000", +"! c #C2CBDF", +"~ c #8AAAEA", +"{ c #57688C", +"] c #E1E8DD", +"^ c #5C7099", +"/ c #6F8FD3", +"( c #B2C5EB", +"_ c #6080C9", +": c #50648B", +"< c #D3DAD4", +"[ c #6176A1", +"} c #7190D4", +"| c #4F648E", +"1 c #A9BBDF", +"2 c #6789D6", +"3 c #4D6085", +"4 c #DFE5E2", +"5 c #7B9CE2", +"6 c #4B5F87", +"7 c #6685CD", +"8 c #53668D", +"9 c #D4DADA", +"0 c #7998D8", +"a c #6E8FD9", +"b c #506287", +"c c #DFE7E9", +"d c #83A4E6", +"e c #6D8CD1", +"f c #56698F", +"g c #D5DBE1", +"h c #809EDC", +"i c #83A1DE", +"j c #44536D", +"k c #DCE2E9", +"l c #838B9A", +"m c #DEE3E9", +"n c #92A8D0", +"o c #727E95", +"p c #8690A1", +" ", +" ...+ ", +" @#$+.%&%.+ ", +" *=-&.& +.& ", +";;;>,';) .....+ ", +";!~{]^~/&..%..& ", +";(_:<[}|+.%&%.+ ", +";1234^56&..%..& ", +";(789[0|+.....+ ", +";1abc^d6&+&+&+& ", +";(efg[h|+ ", +";i|jk^|6& ", +" &+lmn+&+ ", +" *op& "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public.xpm new file mode 100644 index 0000000..633a047 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-public.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * ecb_variable_public_xpm[] = { +"16 14 39 1", +" c None", +". c #005D00", +"+ c #F2F2F2", +"@ c #3CBA00", +"# c #FFFFFF", +"$ c #040404", +"% c #000000", +"& c #C2CBDF", +"* c #8AAAEA", +"= c #83A1DE", +"- c #6F8FD3", +"; c #B2C5EB", +"> c #6080C9", +", c #688AD5", +"' c #6687CD", +") c #7193DC", +"! c #7190D4", +"~ c #4F648E", +"{ c #A9BBDF", +"] c #6789D6", +"^ c #6686CD", +"/ c #7091DA", +"( c #7B9CE2", +"_ c #4B5F87", +": c #6685CD", +"< c #6F91DA", +"[ c #6F8ED2", +"} c #7A9CE1", +"| c #7998D8", +"1 c #6E8FD9", +"2 c #6D8DD2", +"3 c #799AE0", +"4 c #7897D7", +"5 c #83A4E6", +"6 c #6D8CD1", +"7 c #7899DF", +"8 c #7896D7", +"9 c #83A3E6", +"0 c #809EDC", +" ", +" ...+ ", +" .@#@.+ ", +" .# +.# ", +"$$$$$$$% .....+ ", +"$&*=*=*-#..@..# ", +"$;>,')!~+.@#@.+ ", +"${]^/-(_#..@..# ", +"$;:<[}|~+.....+ ", +"${12345_#+#+#+# ", +"$;67890~+ ", +"$=~_~_~_# ", +" #+#+#+#+ ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-unknown-static.xpm b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-unknown-static.xpm new file mode 100644 index 0000000..f834ec1 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/methods/height-14_to_21/ecb-variable-unknown-static.xpm @@ -0,0 +1,70 @@ +/* XPM */ +static char * ecb_variable_unknown_static_xpm[] = { +"12 14 53 1", +" c None", +". c #474747", +"+ c #434343", +"@ c #626C7D", +"# c #F2F2F2", +"$ c #6E7683", +"% c #E7EBD8", +"& c #8296BD", +"* c #FFFFFF", +"= c #040404", +"- c #2D3544", +"; c #CBCEBD", +"> c #5C729A", +", c #C2CBDF", +"' c #8AAAEA", +") c #57688C", +"! c #E1E8DD", +"~ c #5C7099", +"{ c #6F8FD3", +"] c #B2C5EB", +"^ c #6080C9", +"/ c #50648B", +"( c #D3DAD4", +"_ c #6176A1", +": c #7190D4", +"< c #4F648E", +"[ c #A5A5C6", +"} c #A9BBDF", +"| c #6789D6", +"1 c #4D6085", +"2 c #DFE5E2", +"3 c #7B9CE2", +"4 c #4B5F87", +"5 c #6685CD", +"6 c #53668D", +"7 c #D4DADA", +"8 c #7998D8", +"9 c #6E8FD9", +"0 c #506287", +"a c #DFE7E9", +"b c #83A4E6", +"c c #6D8CD1", +"d c #56698F", +"e c #D5DBE1", +"f c #809EDC", +"g c #83A1DE", +"h c #44536D", +"i c #DCE2E9", +"j c #838B9A", +"k c #DEE3E9", +"l c #92A8D0", +"m c #727E95", +"n c #8690A1", +" ", +" ", +" .+@# ", +" $%&* ", +" ===-;>== ", +" =,')!~'{* ", +" =]^/(_:<# ", +"[=}|12~34* ", +" =]567_8<# ", +" =}90a~b4* ", +" =]cde_f<# ", +" =g c #7190D4", +", c #4F648E", +"' c #F2F2F2", +") c #A5A5C6", +"! c #A9BBDF", +"~ c #6789D6", +"{ c #6686CD", +"] c #7091DA", +"^ c #7B9CE2", +"/ c #4B5F87", +"( c #6685CD", +"_ c #6F91DA", +": c #6F8ED2", +"< c #7A9CE1", +"[ c #7998D8", +"} c #6E8FD9", +"| c #6D8DD2", +"1 c #799AE0", +"2 c #7897D7", +"3 c #83A4E6", +"4 c #6D8CD1", +"5 c #7899DF", +"6 c #7896D7", +"7 c #83A3E6", +"8 c #809EDC", +" ", +" ", +" ", +" ", +" ........ ", +" .+@#@#@$% ", +" .&*=-;>,' ", +").!~{]$^/% ", +" .&(_:<[,' ", +" .!}|123/% ", +" .&45678,' ", +" .#,/,/,/% ", +" %'%'%'%' ", +" "}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-leaf.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-leaf.xpm new file mode 100644 index 0000000..197c10f --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-leaf.xpm @@ -0,0 +1,277 @@ +/* XPM */ +static char *leaf[] = { +/* width height num_colors chars_per_pixel */ +" 16 14 256 2", +/* colors */ +"`` c #000000", +"`. c #424242", +"`# c #848484", +"`a c #949494", +"`b c #9c9c9c", +"`c c #a5a5a5", +"`d c #adadad", +"`e c #b5b5b5", +"`f c #bdbdbd", +"`g c #c6c6c6", +"`h c None", +"`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 */ +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`h`h`h`h`h`h`h`h`h", +"`.`a`a`b`b`c`.`.`h`h`h`h`h`h`h`h", +"`.`a`b`b`c`c`.`d`.`h`h`h`h`h`h`h", +"`.`b`b`c`c`c`.`.`.`.`h`h`h`h`h`h", +"`.`b`#`#`#`a`#`d`e`.`h`h`h`h`h`h", +"`.`c`c`c`d`d`d`e`e`.`h`h`h`h`h`h", +"`.`c`#`a`#`#`#`e`f`.`h`h`h`h`h`h", +"`.`c`d`d`d`e`e`f`f`.`h`h`h`h`h`h", +"`.`d`#`#`a`#`#`f`f`.`h`h`h`h`h`h", +"`.`d`d`e`e`f`f`f`f`.`h`h`h`h`h`h", +"`.`d`e`e`f`f`f`f`f`.`h`h`h`h`h`h", +"`.`.`.`.`.`.`.`.`.`.`h`h`h`h`h`h", +"`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h`h" +}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-added.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-added.xpm new file mode 100644 index 0000000..6f91a13 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-added.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecb_leaf_added_xpm[] = { +"16 14 10 1", +" c None", +". c #424242", +"+ c #949494", +"@ c #9C9C9C", +"# c #A5A5A5", +"$ c #ADADAD", +"% c #848484", +"& c #B5B5B5", +"* c #FE9832", +"= c #FFFFFF", +" ", +"....... ", +".++@@#.. ", +".+@@##.$. ", +".@@###.... ", +".@%%%+%$&. ", +".###$$**** ", +".#%+%**==** ", +".#$$***==*** ", +".$%%*======* ", +".$$&*======* ", +".$&&***==*** ", +".....**==** ", +" **** "}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-edited.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-edited.xpm new file mode 100644 index 0000000..d375ff9 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-edited.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecb_leaf_modified_xpm[] = { +"16 14 10 1", +" c None", +". c #424242", +"+ c #949494", +"@ c #9C9C9C", +"# c #A5A5A5", +"$ c #ADADAD", +"% c #848484", +"& c #B5B5B5", +"* c #FF9933", +"= c #FFFFFF", +" ", +"....... ", +".++@@#.. ", +".+@@##.$. ", +".@@###.... ", +".@%%%+%$&. ", +".###$$**** ", +".#%+%**==** ", +".#$$**=**=** ", +".$%%*=****=* ", +".$$&*=****=* ", +".$&&**=**=** ", +".....**==** ", +" **** "}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-ignored.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-ignored.xpm new file mode 100644 index 0000000..e8c7ef6 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-ignored.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecb_leaf_ignored_by_cvs_xpm[] = { +"16 14 10 1", +" c None", +". c #424242", +"+ c #949494", +"@ c #9C9C9C", +"# c #A5A5A5", +"$ c #ADADAD", +"% c #848484", +"& c #B5B5B5", +"* c #B2B2B2", +"= c #FFFFFF", +" ", +"....... ", +".++@@#.. ", +".+@@##.$. ", +".@@###.... ", +".@%%%+%$&. ", +".###$$**** ", +".#%+%****** ", +".#$$**=**=** ", +".$%%***==*** ", +".$$&***==*** ", +".$&&**=**=** ", +".....****** ", +" **** "}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-merge.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-merge.xpm new file mode 100644 index 0000000..1d2bb34 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-merge.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecb_leaf_needs_merge_xpm[] = { +"16 14 10 1", +" c None", +". c #424242", +"+ c #949494", +"@ c #9C9C9C", +"# c #A5A5A5", +"$ c #ADADAD", +"% c #848484", +"& c #B5B5B5", +"* c #FE3201", +"= c #FFFFFF", +" ", +"....... ", +".++@@#.. ", +".+@@##.$. ", +".@@###.... ", +".@%%%+%$&. ", +".###$$**** ", +".#%+%**==** ", +".#$$***==*** ", +".$%%***==*** ", +".$$&***==*** ", +".$&&******** ", +".....**==** ", +" **** "}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-patch.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-patch.xpm new file mode 100644 index 0000000..de46a9c --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-needs-patch.xpm @@ -0,0 +1,28 @@ +/* XPM */ +static char * ecbvcneedspatch_xpm[] = { +"16 14 11 1", +" c None", +"! c black", +"# c #424242", +"$ c #949494", +"% c #9C9C9C", +"& c #A5A5A5", +"' c #ADADAD", +"( c #848484", +") c #B5B5B5", +"* c #FF9933", +"+ c white", +" ", +"####### ", +"#$$%%&## ", +"#$%%&&#'# ", +"#%%&&&#### ", +"#%((($(')# ", +"#&&&''**** ", +"#&($(**++** ", +"#&''***++*** ", +"#'((***++*** ", +"#'')***++*** ", +"#'))******** ", +"#####**++** ", +" **** "}; \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-unknown.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-unknown.xpm new file mode 100644 index 0000000..0bc4619 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-unknown.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecb_leaf_not_in_cvs_xpm[] = { +"16 14 10 1", +" c None", +". c #424242", +"+ c #949494", +"@ c #9C9C9C", +"# c #A5A5A5", +"$ c #ADADAD", +"% c #848484", +"& c #B5B5B5", +"* c #0066CC", +"= c #FFFFFF", +" ", +"....... ", +".++@@#.. ", +".+@@##.$. ", +".@@###.... ", +".@%%%+%$&. ", +".###$$**** ", +".#%+%**==** ", +".#$$**=**=** ", +".$%%*****=** ", +".$$&***==*** ", +".$&&******** ", +".....**==** ", +" **** "}; diff --git a/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-up-to-date.xpm b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-up-to-date.xpm new file mode 100644 index 0000000..ac70bcc --- /dev/null +++ b/conf/emacs.d/ecb/ecb-images/sources/height-14_to_21/ecb-vc-up-to-date.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * ecb_leaf_in_cvs_xpm[] = { +"16 14 10 1", +" c None", +". c #424242", +"+ c #949494", +"@ c #9C9C9C", +"# c #A5A5A5", +"$ c #ADADAD", +"% c #848484", +"& c #B5B5B5", +"* c #009900", +"= c #FFFFFF", +" ", +"....... ", +".++@@#.. ", +".+@@##.$. ", +".@@###.... ", +".@%%%+%$&. ", +".###$$**** ", +".#%+%****** ", +".#$$******** ", +".$%%******=* ", +".$$&*=***=** ", +".$&&**=*=*** ", +".....**=*** ", +" **** "}; diff --git a/conf/emacs.d/ecb/ecb-jde.el b/conf/emacs.d/ecb/ecb-jde.el new file mode 100644 index 0000000..54c8bbb --- /dev/null +++ b/conf/emacs.d/ecb/ecb-jde.el @@ -0,0 +1,179 @@ +;;; ecb-jde.el --- ECB JDE integrations + +;; Copyright (C) 2000 - 2005 Jesper Nordenberg, +;; Klaus Berndl, +;; Kevin A. Burton, +;; Free Software Foundation, Inc. + +;; Author: Jesper Nordenberg +;; Klaus Berndl +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; 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: +;; +;; +;; Contains code for JDEE integrations into ECB or vice versa +;; JDEE is available at http://jdee.sunsite.dk/ + +;;; 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 jde-show-class-source) +(silentcomp-defvar jde-open-class-at-point-find-file-function) +(silentcomp-defun jde-open-functions-exist) +(silentcomp-defun jde-parse-java-variable-at-point) +(silentcomp-defun jde-open-get-class-to-open) +(silentcomp-defun jde-open-get-path-prefix-list) +(silentcomp-defun jde-open-find-java-file-name) +(silentcomp-defun jde-gen-class-buffer) +(silentcomp-defvar jde-sourcepath) + +(require 'ecb-util) +(require 'ecb-layout) +(require 'ecb-file-browser) +(require 'ecb-method-browser) + + +(defgroup ecb-jde-integration nil + "Settings for the JDEE-integration in the Emacs code browser." + :group 'ecb + :prefix "ecb-jde-") + + +(defcustom ecb-jde-set-directories-buffer-to-jde-sourcepath nil + "*THIS FEATURE IS NOT YET FINISHED" + :group 'ecb-jde-integration + :type '(radio (const :tag "No" :value nil) + (const :tag "Add" :value add) + (const :tag "Replace" :value replace))) + +(defun ecb-jde-display-class-at-point () + "Displays in the ECB-methods-buffer contents of class under point. +This means displays the contents \(methods, attributes etc...) of the class +which contains the definition of the \"thing\" under point \(this can be a +variablename, classname, methodname, attributename). This function needs the +same requirements to work as the method-completion feature of JDE \(see +`jde-complete-at-point')!. The source-file is searched first in +`jde-sourcepath', then in `jde-global-classpath', then in $CLASSPATH, then in +current-directory. + +Works only for classes where the source-code \(i.e. the *.java-file) is +available." + (interactive) + (when (and ecb-minor-mode + (ecb-point-in-edit-window-number) + (equal major-mode 'jde-mode)) + (if (jde-open-functions-exist) + (let* ( + (thing-of-interest (ecb-thing-at-point 'symbol)) + (pair (save-excursion (ecb-end-of-thing 'symbol) + (jde-parse-java-variable-at-point))) + (class-to-open (jde-open-get-class-to-open + pair thing-of-interest)) + (source-path-prefix-list (jde-open-get-path-prefix-list)) + (java-file-name nil) + ) + (if (and class-to-open (stringp class-to-open)) + (progn + (setq java-file-name (jde-open-find-java-file-name + class-to-open source-path-prefix-list)) + (if (not java-file-name) + (ecb-error "Can not find the sourcecode-file for \"%s\"" + thing-of-interest) + + ;; TODO: Klaus Berndl : + ;; The following two lines of code are the only difference + ;; between this function and `jde-open-class-at-point'. + ;; Therefore it would be nice if the whole stuff necessary + ;; for finding the source-file of `thing-of-interest' would + ;; be extracted in an own function of JDE. + + ;; we have found the java-sourcefile. So let´s display its + ;; contents in the method-buffer of ECB - we must select the + ;; methods-window before because otherwise our automatically + ;; buffer-sync would resync with current java-source-file. + (if (ecb-window-select ecb-methods-buffer-name) + (ecb-set-selected-source java-file-name nil t)))) + + (ecb-error "Can not parse the thing at point!"))) + (message "You need JDE >= 2.2.6 and Senator for using this feature!")))) + + +(defun ecb-jde-show-class-source (external-tag) + "Calls `jde-show-class-source' for th tag-name of EXTERNAL-TAG. +Returns t if the tag is found and no error occurs otherwise nil. + +This function is for usage with `ecb-find-external-tag-functions'." + (when (eq major-mode 'jde-mode) + (condition-case nil + (progn + (jde-show-class-source (ecb--semantic-tag-name external-tag)) + t) + (error nil)))) + +(defun ecb-jde-gen-class-buffer (dir filename) + "Calls `jde-gen-class-buffer' for the file FILENAME in DIR. If this function +is not available then `find-file' is called." + (let ((file (concat dir "/" filename))) + (if (fboundp 'jde-gen-class-buffer) + (jde-gen-class-buffer file) + (find-file file)))) + + +(defun ecb-jde-get-source-path () + (mapcar 'jde-normalize-path jde-sourcepath)) + +(defun ecb-jde-update-ecb-source-paths () + (interactive) + (case ecb-jde-set-directories-buffer-to-jde-sourcepath + (add + (add-hook 'ecb-source-path-functions + 'ecb-jde-get-source-path)) + (replace + (setq ecb-source-path (ecb-jde-get-source-path))) + (otherwise + (remove-hook 'ecb-source-path-functions + 'ecb-jde-get-source-path))) + (ecb-update-directories-buffer)) + + +(when (locate-library "efc") + (require 'efc) + (if (boundp 'efc-dialog-show-before-hook) + (add-hook 'efc-dialog-show-before-hook + (function (lambda () + (ecb-toggle-compile-window -1))))) + + (if (boundp 'efc-dialog-close-after-hook) + (add-hook 'efc-dialog-close-after-hook + (function (lambda () + (ecb-toggle-compile-window 1)))))) + +(silentcomp-provide 'ecb-jde) + +;;; ecb-jde.el ends here diff --git a/conf/emacs.d/ecb/ecb-layout-defs.el b/conf/emacs.d/ecb/ecb-layout-defs.el new file mode 100644 index 0000000..11075bc --- /dev/null +++ b/conf/emacs.d/ecb/ecb-layout-defs.el @@ -0,0 +1,990 @@ +;;; ecb-layout-defs.el --- layout definitions for ECB + +;; Copyright (C) 2000 - 2005 Jesper Nordenberg, +;; Klaus Berndl, +;; Kevin A. Burton, +;; Free Software Foundation, Inc. + +;; Author: Klaus Berndl +;; Maintainer: Klaus Berndl +;; 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 all layout definitions for ECB +;; +;; This file is part of the ECB package which can be found at: +;; http://ecb.sourceforge.net + +;;; 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-util) +(require 'ecb-layout) + +;; ========= Current available layouts =============================== + +;; Here come all the index layout-functions: + +;; Layout left1 ----------------------------------------------------- + +(ecb-layout-define "left1" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + | | | + | | | + |--------------| | + | | | | + | Sour | Hist | Edit | + | | | | + | | | | + |--------------| | + | | | + | Methods | | + | | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.5) + (ecb-set-methods-buffer) + (select-window (previous-window)) + (ecb-split-hor 0.5) + (ecb-set-history-buffer) + (select-window (next-window (next-window)))) + +;; Layout left2 ----------------------------------------------------- + +(ecb-layout-define "left2" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | Directories | | + | | | + | | | + | | | + |--------------| Edit | + | | | + | | | + | | | + | Sources | | + | | | + | | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.5) + (ecb-set-sources-buffer) + (select-window (next-window))) + +;; Layout left3 ----------------------------------------------------- + +(ecb-layout-define "left3" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + | | | + | | | + |--------------| | + | | | + | Sources | Edit | + | | | + | | | + |--------------| | + | | | + | Methods | | + | | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.5) + (ecb-set-methods-buffer) + (select-window (next-window))) + +;; Layout left4 ----------------------------------------------------- + +(ecb-layout-define "left4" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | Directories | | + | | | + | | | + | | | + |--------------| Edit | + | | | | + | | | | + | | | | + | Sour | Hist | | + | | | | + | | | | + | | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.5) + (ecb-set-sources-buffer) + (ecb-split-hor 0.5) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout left5 ----------------------------------------------------- + +(ecb-layout-define "left5" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + | | | + | | | + |--------------| | + | | | + | Sources | Edit | + | | | + | | | + |--------------| | + | | | + | History | | + | | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.5) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout right1 ----------------------------------------------------- + +(ecb-layout-define "right1" right + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | Directories | + | | | + | | | + | |--------------| + | | | + | | | + | Edit | Sources | + | | | + | | | + | |--------------| + | | | + | | Methods | + | | | + | | | + ------------------------------------------------------- + | | + | 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." + (let ((edit-win (previous-window (selected-window) 0))) + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.5) + (ecb-set-methods-buffer) + (select-window edit-win))) + +;; Layout right2 ----------------------------------------------------- + +(ecb-layout-define "right2" right + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | | Directories | + | | | + | | | + | | | + | Edit |--------------| + | | | + | | | + | | | + | | Methods | + | | | + | | | + | | | + ------------------------------------------------------- + | | + | 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." + (let ((edit-win (previous-window (selected-window) 0))) + (ecb-set-directories-buffer) + (ecb-split-ver 0.5) + (ecb-set-methods-buffer) + (select-window edit-win))) + +;; Layout left6 ----------------------------------------------------- + +(ecb-layout-define "left6" left + "This function creates the following layout: + + ------------------------------------------------------- + | Sources | | + |--------------| | + | | | + | | | + | | | + | Methods | Edit | + | | | + | | | + | | | + |--------------| | + | History | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-sources-buffer) + (ecb-split-ver 0.2) + (ecb-set-methods-buffer) + (ecb-split-ver 0.75) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout top1 ----------------------------------------------------- + +(ecb-layout-define "top1" top + "This function creates the following layout: + + ------------------------------------------------------- + | | | | + | | | | + | Directories | Sources | Methods | + | | | | + | | | | + |-----------------------------------------------------| + | | + | | + | | + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-hor 0.5) + (ecb-set-sources-buffer) + (ecb-split-hor 0.5) + (ecb-set-methods-buffer) + (select-window (next-window))) + +;; Layout left7 ----------------------------------------------------- + +(ecb-layout-define "left7" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + | | | + | | | + | | | + | | | + |--------------| Edit | + | | | + | History | | + | | | + |--------------| | + | | | + | Methods | | + | | | + ------------------------------------------------------- + | | + | 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. This layout works best if it is contained in +`ecb-show-sources-in-directories-buffer'!" + (ecb-set-directories-buffer) + (ecb-split-ver 0.6) + (ecb-set-history-buffer) + (ecb-split-ver 0.4) + (ecb-set-methods-buffer) + (select-window (next-window))) + +;; Layout left8 ----------------------------------------------------- + +(ecb-layout-define "left8" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + |--------------| | + | | | + | Sources | | + | | | + |--------------| Edit | + | | | + | Methods | | + | | | + | | | + |--------------| | + | History | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.35) + (ecb-set-methods-buffer) + (ecb-split-ver 0.65) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout top2 ----------------------------------------------------- + +(ecb-layout-define "top2" top + "This function creates the following layout: + + ------------------------------------------------------- + | | + | | + | Methods | + | | + | | + |-----------------------------------------------------| + | | + | | + | | + | | + | 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." + (ecb-set-methods-buffer) + (select-window (next-window))) + +;; Layout left9 ----------------------------------------------------- + +(ecb-layout-define "left9" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | | | + | | | + | | | + | | | + | Methods | 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." + (ecb-set-methods-buffer) + (select-window (next-window))) + +;; Layout left10 ----------------------------------------------------- + +(ecb-layout-define "left10" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | Methods | Edit | + | | | + | | | + | | | + | | | + | | | + |--------------| | + | Sou | Hist | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-methods-buffer) + (ecb-split-ver 0.75) + (ecb-set-sources-buffer) + (ecb-split-hor 0.5) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout left11 ----------------------------------------------------- + +(ecb-layout-define "left11" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | Methods | Edit | + | | | + | | | + | | | + | | | + | | | + |--------------| | + | Hist | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-methods-buffer) + (ecb-split-ver 0.75) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout left12 ----------------------------------------------------- + +(ecb-layout-define "left12" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | | | + | | | + | | | + | | | + | History | 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." + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout left13 ----------------------------------------------------- + +(ecb-layout-define "left13" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | | | + | | | + | | | + | | | + | Directories | 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. This layout works best if it is contained in +`ecb-show-sources-in-directories-buffer'!" + (ecb-set-directories-buffer) + (select-window (next-window))) + +;; Layout left14 ----------------------------------------------------- + +(ecb-layout-define "left14" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | | | + | | | + | Directories | Edit | + | | | + | | | + | | | + | | | + | | | + |--------------| | + | Hist | | + ------------------------------------------------------- + | | + | 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. This layout works best if it is contained in +`ecb-show-sources-in-directories-buffer'!" + (ecb-set-directories-buffer) + (ecb-split-ver 0.75) + (ecb-set-history-buffer) + (select-window (next-window))) + +;; Layout left15 ----------------------------------------------------- + +(ecb-layout-define "left15" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + | | | + | | | + | | | + | | | + |--------------| Edit | + | | | + | | | + | | | + | Methods | | + | | | + | | | + | | | + ------------------------------------------------------- + | | + | 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. This layout works best if it is contained in +`ecb-show-sources-in-directories-buffer'!" + (ecb-set-directories-buffer) + (ecb-split-ver 0.5) + (ecb-set-methods-buffer) + (select-window (next-window))) + +;; Layout leftright1 ----------------------------------------------------- + +(ecb-layout-define "leftright1" left-right + "This function creates the following layout: + + -------------------------------------------------------------- + | | | | + | Directories | | Methods | + | | | | + | | | | + | | | | + | | | | + | | | | + |--------------| Edit | | + | | | | + | Sources | | | + | | | | + |--------------| | | + | | | | + | History | | | + | | | | + -------------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.4) + (ecb-set-sources-buffer) + (ecb-split-ver 0.5) + (ecb-set-history-buffer) + (select-window (next-window (next-window))) + (ecb-set-methods-buffer) + (select-window (previous-window (selected-window) 0))) + +;; Layout leftright2 ----------------------------------------------------- + +(ecb-layout-define "leftright2" left-right + "This function creates the following layout: + + -------------------------------------------------------------- + | | | | + | Directories | | Methods | + | | | | + | | | | + | | | | + | | | | + | | | | + |--------------| Edit |-------------| + | | | | + | Sources | | History | + | | | | + | | | | + | | | | + | | | | + | | | | + -------------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.66) + (ecb-set-sources-buffer) + (select-window (next-window (next-window))) + (ecb-set-methods-buffer) + (ecb-split-ver 0.66) + (ecb-set-history-buffer) + (select-window (previous-window (previous-window (selected-window) 0) 0))) + +;; Layout leftright3 ----------------------------------------------------- + +(ecb-layout-define "leftright3" left-right + "This function creates the following layout: + + -------------------------------------------------------------- + | | | | + | Directories | | Methods | + | | | | + | | | | + | | | | + | | | | + | | | | + | | 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." + (ecb-set-directories-buffer) + (select-window (next-window (next-window))) + (ecb-set-methods-buffer) + (select-window (previous-window (selected-window) 0))) + + +(ecb-layout-define "left-dir-plus-speedbar" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + | | | + | | | + | | | + | | | + |--------------| Edit | + | | | + | | | + | | | + | Speedbar | | + | | | + | | | + | | | + ------------------------------------------------------- + | | + | 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. This layout works best if it is contained in +`ecb-show-sources-in-directories-buffer'!" + (ecb-set-directories-buffer) + (ecb-split-ver 0.5) + (ecb-set-speedbar-buffer) + (select-window (next-window))) + +(ecb-layout-define "left-analyse" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + |--------------| | + | | | + | Sources | | + | | | + |--------------| Edit | + | | | + | Methods | | + | | | + |--------------| | + | | | + | Analyse | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.35) + (ecb-set-methods-buffer) + (ecb-split-ver 0.5) + (ecb-set-analyse-buffer) + (select-window (next-window))) + +(ecb-layout-define "leftright-analyse" left-right + "This function creates the following layout: + + -------------------------------------------------------------- + | | | | + | Directories | | Methods | + | | | | + | | | | + | | | | + | | | | + | | | | + |--------------| Edit |-------------| + | | | | + | Sources | | | + | | | | + |--------------| | Analyse | + | | | | + | History | | | + | | | | + -------------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.4) + (ecb-set-sources-buffer) + (ecb-split-ver 0.5) + (ecb-set-history-buffer) + (select-window (next-window (next-window))) + (ecb-set-methods-buffer) + (ecb-split-ver 0.5) + (ecb-set-analyse-buffer) + (select-window (previous-window (previous-window (selected-window) 0) 0))) + +(ecb-layout-define "left-symboldef" left + "This function creates the following layout: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + |--------------| | + | | | + | Sources | | + | | | + |--------------| Edit | + | | | + | Methods | | + | | | + |--------------| | + | | | + | Symbol-defs | | + | | | + ------------------------------------------------------- + | | + | 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." + (ecb-set-directories-buffer) + (ecb-split-ver 0.3) + (ecb-set-sources-buffer) + (ecb-split-ver 0.35) + (ecb-set-methods-buffer) + (ecb-split-ver 0.5) + (ecb-set-symboldef-buffer) + (select-window (next-window))) + +(defconst ecb-buildin-layouts (ecb-copy-list ecb-available-layouts) + "All layouts defined until now.") + +(silentcomp-provide 'ecb-layout-defs) + +;;; ecb-layout-defs.el ends here \ No newline at end of file diff --git a/conf/emacs.d/ecb/ecb-layout.el b/conf/emacs.d/ecb/ecb-layout.el new file mode 100644 index 0000000..2367096 --- /dev/null +++ b/conf/emacs.d/ecb/ecb-layout.el @@ -0,0 +1,6327 @@ +;;; ecb-layout.el --- layout for ECB + +;; Copyright (C) 2000 - 2005 Jesper Nordenberg, +;; Klaus Berndl, +;; Kevin A. Burton, +;; Free Software Foundation, Inc. + +;; Author: Jesper Nordenberg +;; Klaus Berndl +;; Kevin A. Burton +;; Maintainer: Klaus Berndl +;; Keywords: browser, code, programming, tools +;; Created: 2000 + +;; 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 functions for settings the ECB layout. +;; +;; This file is part of the ECB package which can be found at: +;; http://ecb.sourceforge.net + +;; This file has been re-implemented by Klaus Berndl . +;; What has been done: +;; Completely rewritten the layout mechanism for better customizing, adding +;; new layouts, better redrawing and more straightforward code. +;; 1. Now all user-layouting is done by customizing the new option +;; `ecb-layout-name' or by the command `ecb-change-layout'. The function +;; `ecb-redraw-layout' (formally known as 'ecb-set-layout) can still be +;; called interactively. But it just redraws the layout specified in +;; `ecb-layout-name'. All changes to the layout must be made by customizing +;; this new option. Please read the very detailed comment of +;; `ecb-layout-name'! +;; 2. Adding new layouts is now much easier and more straightforward: We have +;; now a main core-layout function (`ecb-redraw-layout-full') which is the +;; "environment" for the specific "layout-functions". The core function +;; does first some layout independent actions, then calls the +;; "layout-function" for the name which has been set in `ecb-layout-name' +;; and after that it does some layout independent actions again (see the +;; comments in this function). See the macro `ecb-layout-define' and the +;; command `ecb-create-new-layout'! +;; +;; Background-info: For each layout-type (ecb-windows left, right, top and +;; left-right) there is one function: +;; 'ecb-delete-window-ecb-windows-[left|right|top|leftright]'. +;; These functions follow these guide-lines: +;; - Preconditions for these functions: +;; + the edit-area is splitted - at least in two edit-windows +;; + The function gets two arguments: The window to delete (if nil then the +;; current window has to be deleted) and the list of all current +;; edit-windows. +;; + These functions are always(!) called with deactivated advices of +;; `delete-window' function. +;; + These functions can only use `delete-window' of the set of maybe +;; adviced window functions, because of a bug in advice.el only one +;; function´s advice can be deactivated within a advice itself! +;; - What must they do: Doing the appropriate action (e.g. +;; `ecb-delete-window-ecb-windows-left' must delete the window. This action +;; must be done appropriate for the current ECB-layout type (see +;; postconditions) +;; - Postcondition of these functions: +;; + The named edit-window must be deleted and all ecb-windows in the +;; ecb-frame must have the layout like before the delete. +;; + If the current window has been deleted then point must reside after +;; deletion in the next edit-window in a circular meaning (i.e. if the +;; last edit-window has been deleted, point must stay afterwards in the +;; first edit-window). If a window unequal the current window has been +;; deleted point must stay in the window before deletion at the same +;; place. +;; +;; New adviced intelligent window-functions as replacement for these originals: +;; - `other-window' +;; - `delete-window' +;; - `delete-other-windows' +;; - `delete-windows-on' +;; - `split-window-horizontally' +;; - `split-window-vertically' +;; - `split-window' +;; - `display-buffer' +;; - `switch-to-buffer' +;; - `switch-to-buffer-other-window' +;; - `other-window-for-scrolling' +;; - `balance-windows' +;; The behavior of the adviced functions is: +;; - All these function behaves exactly like their corresponding original +;; functions but they always act as if the edit-window(s) of ECB would be the +;; only window(s) of the ECB-frame. So the edit-window(s) of ECB seems to be +;; a normal Emacs-frame to the user. +;; - If a persistent compile-window is used all buffers for which +;; `ecb-compilation-buffer-p' returns not nil are handled in the +;; compile-window! +;; + +;;; 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-util) +(require 'ecb-common-browser) +;;(require 'ecb-speedbar) +(require 'ecb-compilation) +(require 'ecb-create-layout) +(require 'ecb-navigate) + +;; XEmacs +(silentcomp-defvar scrollbars-visible-p) +(silentcomp-defun window-displayed-height) +(silentcomp-defvar pre-display-buffer-function) +(silentcomp-defvar split-width-threshold) +(silentcomp-defvar split-width-threshold) +(silentcomp-defun popup-menu-and-execute-in-window) +(silentcomp-defvar modeline-map) +(silentcomp-defun modeline-menu) +;; for the display-buffer stuff of XEmacs +(silentcomp-defun last-nonminibuf-frame) +(silentcomp-defun check-argument-type) +(silentcomp-defun buffer-dedicated-frame) +(silentcomp-defun display-buffer-1) +(silentcomp-defun frame-property) +(silentcomp-defun window-leftmost-p) +(silentcomp-defun window-rightmost-p) +(silentcomp-defun window-parent) +(silentcomp-defun window-previous-child) +(silentcomp-defun window-next-child) +(silentcomp-defun window-pixel-edges) +(silentcomp-defun window-pixel-height) +(silentcomp-defun record-buffer) +(silentcomp-defun push-window-configuration) +(silentcomp-defun set-frame-property) +(silentcomp-defvar temp-buffer-shrink-to-fit) + +;; Emacs +(silentcomp-defvar scroll-bar-mode) +;; only Emacs 21 has this +(silentcomp-defvar window-size-fixed) +;;(silentcomp-defun fit-window-to-buffer) +(silentcomp-defvar temp-buffer-resize-mode) +(silentcomp-defun temp-buffer-resize-mode) +(silentcomp-defun modify-frame-parameters) +;; Emacs 21 +(silentcomp-defvar grep-window-height) + +(eval-when-compile + ;; to avoid compiler grips + (require 'cl)) + +(defvar ecb-layouts-reload-needed t) +(defun ecb-load-layouts () + "Load all defined layouts" + (when ecb-layouts-reload-needed + (require 'ecb-layout-defs) + (if (file-readable-p ecb-create-layout-file) + (load-file ecb-create-layout-file)) + (setq ecb-layouts-reload-needed nil))) + +(defgroup ecb-layout nil + "Settings for the screen-layout of the Emacs code browser." + :group 'ecb + :prefix "ecb-") + +(defgroup ecb-compilation nil + "Settings for the compile window of ECB." + :group 'ecb-layout + :prefix "ecb-") + + +(defconst ecb-layout-option-set-function + (function (lambda (symbol value) + (set symbol value) + ;; we must check this because otherwise the layout would be drawn + ;; if we have changed the initial value regardless if ECB is + ;; activated or not. + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode + (frame-live-p ecb-frame)) + (let ((curr-frame (selected-frame))) + (unwind-protect + (progn + (select-frame ecb-frame) + (ecb-redraw-layout-full)) + (select-frame curr-frame))))))) + + +(defcustom ecb-select-edit-window-on-redraw nil + "*Select the first edit window on `ecb-redraw-layout'." + :group 'ecb-layout + :type 'boolean) + +(defcustom ecb-new-ecb-frame nil + "*Create a new frame at activation time of ECB." + :group 'ecb-layout + :group 'ecb-most-important + :type 'boolean) + +(defcustom ecb-activate-before-new-frame-created-hook nil + "*Hook run before the new ECB-frame is created. +This has only an effect if `ecb-new-ecb-frame' is not nil \(otherwise this +hook is not evaluated)." + :group 'ecb-layout + :type 'hook) + +(defvar ecb-last-selected-layout nil + "Name of that layout which was current direct before switching to another +layout.") + +;; TODO: Klaus Berndl : UPDATE the layout-list in the docstring... +(defcustom ecb-layout-name "left8" + "*Select a window layout of ECB. +Value is any arbitrary string. There are four different types of layouts: +left, right, top and left-right, which means the location of the +ECB-tree-windows in the ECB-frame. Currently there are 20 predefined layouts; +names see below. You can savely try out any of them by changing this value and +saving it only for the current session. If you are sure which layout you want +you can save it for future sessions. To get a picture of the layout for name + call `ecb-show-layout-help'. + +Currently available layouts: + ++ Left layouts: + left1 left2 left3 left4 left5 left6 left7 left8 left9 left10 left11 left12 + left13 left14 left15 + ++ Right layouts: + right1 + ++ Top layouts: + top1 top2 + ++ Left-right layouts: + leftright1 leftright2 leftright3 + +Regardless of the settings you define here: If you have destroyed or +changed the ECB-screen-layout by any action you can always go back to this +layout with `ecb-redraw-layout'" + :group 'ecb-layout + :group 'ecb-most-important + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (ecb-load-layouts) + (if (fboundp (intern (format "ecb-layout-function-%s" + value))) + (progn + (setq ecb-last-selected-layout ecb-layout-name) + (funcall ecb-layout-option-set-function + symbol value)) + (ecb-error "There is no layout with name %s available!" + value)))) + :type 'string) + +(defun ecb-enable-temp-buffer-shrink-to-fit (arg) + "Enables `temp-buffer-resize-mode' \(GNU Emacs) rsp. +`temp-buffer-shrink-to-fit' \(XEmacs) when a comile-window is used. When the +compile-window is disabled or when ECB is deactivated then the old state of +these modes/variables is restored." + (if arg + (progn + ;; store old value if not already done + (or (get 'ecb-enable-temp-buffer-shrink-to-fit + 'ecb-old-temp-buffer-shrink-to-fit) + (put 'ecb-enable-temp-buffer-shrink-to-fit + 'ecb-old-temp-buffer-shrink-to-fit + (cons 'stored + (if ecb-running-xemacs + temp-buffer-shrink-to-fit + temp-buffer-resize-mode)))) + ;; now we activate temp-buffer-shrinking + (if ecb-running-xemacs + (setq temp-buffer-shrink-to-fit t) + (temp-buffer-resize-mode 1)) + ) + ;; reset to the original value + (and (get 'ecb-enable-temp-buffer-shrink-to-fit + 'ecb-old-temp-buffer-shrink-to-fit) + (if ecb-running-xemacs + (setq temp-buffer-shrink-to-fit + (cdr (get 'ecb-enable-temp-buffer-shrink-to-fit + 'ecb-old-temp-buffer-shrink-to-fit))) + (temp-buffer-resize-mode + (if (cdr (get 'ecb-enable-temp-buffer-shrink-to-fit + 'ecb-old-temp-buffer-shrink-to-fit)) + 1 + -1)))) + (put 'ecb-enable-temp-buffer-shrink-to-fit + 'ecb-old-temp-buffer-shrink-to-fit + nil))) + +(defcustom ecb-compile-window-height nil + "*Height of the persistent compilation-window of ECB. +If you want a compilation window shown at the bottom of the ECB-layout +then set here the height of it \(Default is a height of 5). If you redraw the +current layout with `ecb-redraw-layout' then the compilation window (if any) +has the height you set here. If the number is less than 1.0 the height is a +fraction of the frame height. + +If you do not set a persistent compilation window then doing a compilation or +displaying temp-buffers \(e.g. *Help*-buffers) splits temporally the edit +window vertically if the edit window is not splitted already or uses another +edit window temporally for compilation output if the edit window is already +splitted. This is the recommended value for this option because this is the +standard-behavior of Emacs. + +Beware: If you set a persistent compilation window then ECB displays all buffers +for which `ecb-compilation-buffer-p' returns not nil in that persistent +compilation window. If a buffer which should being displayed there is not +displayed there then try to modify the options `ecb-compilation-buffer-names', +`ecb-compilation-major-modes' or `ecb-compilation-predicates' \(in this +sequence). + +See also the options `ecb-compile-window-temporally-enlarge' and +`ecb-enlarged-compilation-window-max-height' and also the command +`ecb-toggle-compile-window-height'! + +ECB offers the functionality of such a persistent compile-window regardless if +the special ECB-windows are visible or not \(see the command +`ecb-toggle-ecb-windows'). + +Regardless of the settings you define here: If you have destroyed or +changed the ECB-screen-layout by any action you can always go back to this +layout with `ecb-redraw-layout'" + :group 'ecb-compilation + :group 'ecb-most-important + :initialize 'custom-initialize-default + ;; we can not use here `ecb-layout-option-set-function' because here we + ;; must call `ecb-redraw-layout-full' with NO-ECB-WINDOWS depending on the + ;; value of `ecb-windows-hidden-state'! Same for `ecb-compile-window-width'. If + ;; this is necessary for other options too then we should + ;; `ecb-layout-option-set-function' to a function with an additional + ;; parameter which decides if ecb-window-hidden should be used for + ;; NO-ECB-WINDOWS or not. + :set (function (lambda (symbol value) + ;; Emacs < 22 has some bugs concerning `windows-size-fixed' + ;; so we must disable window-fixing. + (and (not ecb-running-gnu-emacs-version-22) (ecb-set-window-size-fixed nil)) + (set symbol value) + ;; we must check this because otherwise the layout would be + ;; drawn if we have changed the initial value regardless if + ;; ECB is activated or not. + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode + (frame-live-p ecb-frame)) + (ecb-enable-temp-buffer-shrink-to-fit value) + (let ((curr-frame (selected-frame))) + (unwind-protect + (progn + (select-frame ecb-frame) + (ecb-redraw-layout-full nil nil nil + ecb-windows-hidden-state)) + (select-frame curr-frame)))))) + :type '(radio (const :tag "No compilation window" nil) + (number :tag "Window height" :value 6))) + + + +(defcustom ecb-compile-window-width 'frame + "*Width of the compile-window. + +Possible values are 'frame and 'edit-window. +With 'frame the compile-window looks like: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + |--------------| edit-window(s) | + | | | + | Methods | | + | | | + ------------------------------------------------------- + | | + | Compilation | + | | + ------------------------------------------------------- + + +With 'edit-window the compile-window looks like: + + ------------------------------------------------------- + | | | + | Directories | | + | | | + |--------------| edit-window(s) | + | | | + | Methods | | + | | | + | |--------------------------------------- + | | | + | | Compilation | + | | | + ------------------------------------------------------- + +This option takes only effect if `ecb-compile-window-height' is not nil!" + :group 'ecb-compilation + :group 'ecb-most-important + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + ;; Emacs < 22 has some bugs concerning `windows-size-fixed' + ;; so we must disable window-fixing. + (and (not ecb-running-gnu-emacs-version-22) (ecb-set-window-size-fixed nil)) + (set symbol value) + ;; we must check this because otherwise the layout would be + ;; drawn if we have changed the initial value regardless if + ;; ECB is activated or not. + (when (and (boundp 'ecb-minor-mode) + ecb-minor-mode + (frame-live-p ecb-frame)) + (let ((curr-frame (selected-frame))) + (unwind-protect + (progn + (select-frame ecb-frame) + (ecb-redraw-layout-full nil nil nil + ecb-windows-hidden-state)) + (select-frame curr-frame)))))) + :type '(radio (const :tag "Width of ECB-frame" :value frame) + (const :tag "Width of edit-window" :value edit-window))) + +(defcustom ecb-change-layout-preserves-compwin-state t + "*Changing the layout preserves the state of the compile-window. +This is for example useful if the user toggles between several layouts \(see +`ecb-toggle-layout') and wants to preserve the hidden-state of the +compile-window." + :group 'ecb-compilation + :type 'boolean) + +(defcustom ecb-compile-window-temporally-enlarge 'after-display + "*Let Emacs temporally enlarge the compile-window of the ECB-layout. +This option has only an effect if `ecb-compile-window-height' is not nil! + +The following values are possible: +- 'after-display: After displaying a \"compilation-buffer\" \(in the sense of + `ecb-compilation-buffer-p'!) in the compile-window of ECB. For the max. + height of the enlarged compile-window see the option + `ecb-enlarged-compilation-window-max-height'. + +- 'after-selection: selecting the `ecb-compile-window' auto. enlarges it and + de-selecting \(means leaving `ecb-compile-window') auto. shrinks it. + Enlarging and shrinking the `ecb-compile-window' is done with + `ecb-toggle-compile-window-height'. See also the documentation of this + function! + +- 'both: The combination of 'after-display and 'after-selection. + +- nil: ECB fixes always the height of the `ecb-compile-window' at the value of + `ecb-compile-window-height'. + +To restore the ECB-layout after such a buffer-enlarge just call +`ecb-toggle-compile-window-height' or `ecb-redraw-layout'." + :group 'ecb-compilation + :type '(radio (const :tag "After displaying a buffer in the compile-window" + :value after-display) + (const :tag "After selecting the compile window" + :value after-selection) + (const :tag "Both of them" :value both) + (const :tag "Never" :value nil))) + +(defcustom ecb-maximize-ecb-window-after-selection nil + "*If not nil maximize current tree-window after selection. +When selecting another not-tree-window after such an automatic maximizing all +tree-windows of current layout are displayed again. But a tree-window is not +maximized if either a node has been selected via primary- oder secondarc +mouse-button or the popup-menu of that tree-buffer has been opened." + :group 'ecb-layout + :type 'boolean) + +(defcustom ecb-maximize-next-after-maximized-select nil + "*Maximizes the next logical tree-window after a maximized node-selection. +Selecting a node in a maximized tree-window is handled very smart by ECB: + +If a tree-buffer-name is not contained in this option then selecting a node in +this maximized tree-buffer automatically \"minimizes\" that tree-window \(i.e. +displays all windows of the current layout) so the user can perform the next +logical step \(e.g. the next logical step after selecting a directory in the +directories-buffer is to select a source-file - therefore the sources-buffer +of current layout has to be displayed - if the current layout contains one; +the next logical step of selecting a source-file is probably to jump to a +certain tag via the methods-buffer). + +If a tree-buffer-name is contained in this option then selecting a node in +this tree-buffer automatically maximizes the next logical tree-window \(e.g. +directories --> sources, sources/history --> methods). But if the current +maximized tree-buffer is also contained in the option +`ecb-tree-do-not-leave-window-after-select' \(see also the tree-buffer-command +`ecb-toggle-do-not-leave-window-after-select' which is bound to `C-t' in each +tree-buffer) then ECB does *not* maximize the next logical tree-window but +point stays in the currently maximized tree-buffer so for example the user can +select more than one node \(e.g. more than one source-file from the +sources-buffer. + +The tree-buffer-name can either be defined as plain string or with a symbol +which contains the buffer-name as value. The latter one is recommended for the +builtin ECB-tree-buffers because then simply the related option-symbol can be +used \(e.g. `ecb-directories-buffer-name', `ecb-sources-buffer-name' or +`ecb-history-buffer-name'). + +In future versions this option will probably also allow to define the next +logical tree-buffer for a tree-buffer - currently this is hard-coded as +follows: +- directories --next-logical--> sources +- sources --next-logical--> methods +- history --next-logical--> methods." + :group 'ecb-layout + :type '(repeat (choice :menu-tag "Buffer-name" + (string :tag "Buffer-name as string") + (symbol :tag "Symbol holding buffer-name")))) + +;; A value of never makes no sense because it is not much effort to prevent +;; all interactive shrinking commands (incl. mouse-commands) from shrinking it +;; below ecb-compile-window-height and it is also not worth. IMHO preventing +;; in non-interactive calls and allowing interactively is the best choice. +;; Allowing always is also possible and easy to implement. +(defcustom ecb-compile-window-prevent-shrink-below-height t + "*Allow the compile-window to be shrunken below its height. +A non nil value means ECB prevents the compile-window from being shrunken +below the threshold of `ecb-compile-window-height' by displaying temp-buffers +\(e.g. *Help* etc.) or after running compilations or greps. But interactively +it is always allowed to shrink it to every height! + +If nil then ECB does nothing to prevent being shrunken below the value of +`ecb-compile-window-height'. + +Default is t." + :group 'ecb-compilation + :type 'boolean) + + +(defcustom ecb-enlarged-compilation-window-max-height 'best + "*The max height of the compile-window after enlarging it. +The max height of the compilation window after enlarged by +`ecb-toggle-compile-window-height'. The following values are allowed: + +'best: + +ECB fits the height of the compile-window exactly to the size of its current +contents but never shrinks below the value of `ecb-compile-window-height' or +enlarges over the half of the frame-height of the ECB-frame. The values of the +options `compilation-window-height' and `temp-buffer-max-height' are taken +into account dependent of the current `major-mode' of the buffer in the +compile-window: If `compilation-mode' then `compilation-window-height' is used +otherwise `temp-buffer-max-height'. + +'half: + +1/2 the frame-height of the ECB-frame + +Any number: + +Max height in lines. If the number is less than 1.0 the height is a fraction +of the frame height \(e.g. 0.33 results in a max-height of 1/3 the +frame-height)." + :group 'ecb-compilation + :type '(radio (const :tag "Compute best height" + :value best) + (const :tag "1/2 the frame height)" + :value half) + (number :tag "Height" :value 0.3))) + +(defcustom ecb-scroll-other-window-scrolls-compile-window nil + "*`scroll-other-window' scrolls always the compile-window. +For all details about the scroll-behavior of `scroll-other-window' see the +advice documentation of `other-window-for-scrolling'." + :group 'ecb-compilation + :type 'boolean) + +(defcustom ecb-ignore-special-display 'compile-window + "*Ignore special-display-handling. +This means, that all values of `special-display-function', +`special-display-buffer-names' and `special-display-regexps' are ignored +- only when persistent compile window is used - i.e. if + `ecb-compile-window-height' is not nil - this is the default value. +- always when ECB is active - that means no special-display-handling of + buffers when ECB is active +- never, i.e. special-dislay-handling depends on the values of the options + `special-display-function', `special-display-buffer-names' and + `special-display-regexps'." + :group 'ecb-layout + :type '(radio (const :tag "When a persistent compile-window is used" + :value compile-window) + (const :tag "Always" :value always) + (const :tag "Never" nil))) + +(defsubst ecb-ignore-special-display () + (or (equal ecb-ignore-special-display 'always) + (and (equal ecb-ignore-special-display 'compile-window) + ecb-compile-window-height))) + +(defcustom ecb-ignore-pop-up-frames 'compile-window + "*Ignore setting of option `pop-up-frames'. +This means, that a value of not nil for `pop-up-frames' is ignored +- only when persistent compile window is used - i.e. if + `ecb-compile-window-height' is not nil - this is the default value. +- always when ECB is active - that means no pop-up-frames when ECB is active +- never, i.e. pop-up-frames is fully active when set." + :group 'ecb-layout + :type '(radio (const :tag "When a persistent compile-window is used" + :value compile-window) + (const :tag "Always" :value always) + (const :tag "Never" nil))) + +(defsubst ecb-ignore-pop-up-frames () + (or (equal ecb-ignore-pop-up-frames 'always) + (and (equal ecb-ignore-pop-up-frames 'compile-window) + ecb-compile-window-height))) + +(defcustom ecb-ignore-display-buffer-function 'always + "*Adviced `display-buffer' ignores `display-buffer-function'. +This means, that the adviced version of `display-buffer' ignores the value of +`display-buffer-function' when called for the `ecb-frame'. If this variable +should not be ignored then the function of `display-buffer-function' is +completely responsible which window is used for the buffer to display - no +smart ECB-logic will help to deal best with the ECB-window-layout! You can +define if and when `display-buffer-function' should be ignored: +- only when persistent compile window is used - i.e. if + `ecb-compile-window-height' is not nil +- always when ECB is active - that means ignore when ECB is active otherwise + not - this is the default value +- never, the adviced version of `display-buffer' always uses the value of + `display-buffer-function' if the value is a function." + :group 'ecb-layout + :type '(radio (const :tag "When a persistent compile-window is used" + :value compile-window) + (const :tag "Always" :value always) + (const :tag "Never" nil))) + +(defsubst ecb-ignore-display-buffer-function () + (or (equal ecb-ignore-display-buffer-function 'always) + (and (equal ecb-ignore-display-buffer-function 'compile-window) + ecb-compile-window-height))) + +(defcustom ecb-split-edit-window-after-start 'before-deactivation + "*Sets how and if the edit window should be splitted after ECB-start. +But be aware: This option determines only if and how the edit-window should be +splitted at start-time of ECB. There are five different values allowed for +this option: +- nil: Do not split the edit-area of ECB after activation, i.e. there will be + only one edit-window after starting ECB. +- 'horizontal: Split the edit-area in 2 edit-windows side by side. +- 'vertical: Split the edit-area in 2 edit-windows, one above the other. +- 'before-activation: Split the edit-area as before the ECB-start, i.e. the + edit-area will have after start a window-layout as the whole frame had + before the start of ECB. +- 'before-deactivation: Split the edit-area into a window-layout ECB had in + its edit-area direct before the ECB-deactivation. This value preserves the + full state between activations of ECB, i.e. the visibility of the + ECB-windows, the visibility of a compile-window and also the full + split-state of the edit-area. But this can only be done if important + layout-options have not been changed in the meanwhile. These are the options + `ecb-layout-name', `ecb-compile-window-height', `ecb-compile-window-width', + `ecb-windows-width' and `ecb-windows-height'. + +Default value is 'before-deactivation. + +Some remarks to the value 'before-activation: If this value has been set then +ECB needs four permanent adivces even when ECB is deactivated: `split-window', +`delete-window', `delete-other-windows' and `set-window-configuration'. But +these advices do not change any behavior of these functions but only storing +in an internal ECB-variable the facts that a window has been splitted or +deleted etc. In addition to this these advices are 100% error-save, means the +functionality of the original functions will be performed in every\(!) case +even if within the advice an error occurs \(but normally there can no errors +occur in these advices because they are very simple). Conclusion: If you want +really all ECB-advices being disabled after deactivating ECB then you have to +set this option to other values then 'before-activation. But setting this +variable to this value is really completely save." + :group 'ecb-layout + :type '(radio (const :tag "Split as before ECB-start" + :value before-activation) + (const :tag "Split as before last ECB-deactivation" + :value before-deactivation) + (const :tag "Split horizontally" + :value horizontal) + (const :tag "Split vertically" + :value vertical) + (const :tag "Do not split" + :value nil))) + +(defcustom ecb-windows-width 0.33 + "*The width of the ECB windows in columns for left- and right layouts. +If the number is less than 1.0 the width is a fraction of the frame width." + :group 'ecb-layout + :initialize 'custom-initialize-default + :set ecb-layout-option-set-function + :type 'number) + +(defcustom ecb-windows-height 0.33 + "*The height of the ECB windows in lines for top layouts. +If the number is less than 1.0 the width is a fraction of the frame height." + :group 'ecb-layout + :initialize 'custom-initialize-default + :set ecb-layout-option-set-function + :type 'number) + + +(defcustom ecb-fix-window-size nil + "*Fix size of the ECB-windows/buffers even after frame-resizing. +The fix type \(valid values are nil, t, width and height) can either be set on +a layout-basis \(means a different value for each layout) or one value can be +set for all layouts. For the latter case there is an additional value 'auto +which choose autom. the senseful fix-type depending on the current +layout-type: For top-layouts the fix-type 'height and for all other +layout-types the fix-type 'width. + +For a detailed description of the valid values see documentation of +`window-size-fixed' which is newly introduced in GNU Emacs 21 and is only +available there. Therefore this option takes only effect with GNU Emacs >= 21. +This option has no effect with XEmacs because it does not support the feature +`window-size-fixed'. + +Note1: Manually resizing the ECB-windows via `enlarge-window', +`shrink-window', `mouse-drag-vertical-line' and `mouse-drag-mode-line' is +still possible even if the window-sizes are fixed for frame-resizing! + +Note2: The description of `window-size-fixed' in the elisp-info-manual is more +detailed than the description offered by \[C-h v]! + +Note3: With Emacs < 22 there seems to be no distinction between 'width, +'height and t. Therefore this option takes no effect \(means all ecb-windows +have always unfixed sizes) with Emacs < 22 if `ecb-compile-window-height' is +not nil. + +Per default no window-size fixing has been done." + :group 'ecb-directories + :initialize 'custom-initialize-default + :set (function (lambda (sym value) + (set sym value) + (ecb-set-window-size-fixed + (ecb-get-window-fix-type ecb-layout-name)))) + :type '(radio (choice :tag "Fix type for all layouts" + :menu-tag "Fix type for all layouts" + (const :tag "Automatic" :value auto) + (const :tag "Fix only width" :value width) + (const :tag "Fix only height" :value height) + (const :tag "Fix both" :value t) + (const :tag "No fixing" :value nil)) + (repeat :tag "With these layouts" + (cons (string :tag "Layout name") + (choice :tag "Fix type" + :menu-tag "Fix type for all layouts" + (const :tag "Fix only width" :value width) + (const :tag "Fix only height" :value height) + (const :tag "Fix both" :value t) + (const :tag "No fixing" :value nil)))))) + +(defun ecb-get-window-fix-type (layout-name) + "Determine which value of `window-size-fixed' we must set in all ecb-buffers +of layout LAYOUT-NAME." + (if (symbolp ecb-fix-window-size) + (if (equal ecb-fix-window-size 'auto) + (if (equal (ecb-get-layout-type ecb-layout-name) 'top) + 'height + 'width) + ecb-fix-window-size) + (cdr (assoc layout-name ecb-fix-window-size)))) + +(defun ecb-set-window-size-fixed (fix) + "Set the buffer-local value of `window-size-fixed' in each visible +ecb-window to FIX. For Emacs < 22: If `ecb-compile-window-height' is not nil +then set always nil!" + (unless ecb-running-xemacs + (let ((l (ecb-canonical-ecb-windows-list))) + (dolist (w l) + (with-current-buffer (window-buffer w) + (setq window-size-fixed (if (and (not ecb-running-gnu-emacs-version-22) + ecb-compile-window-height) + nil + fix))))))) + + +(defmacro ecb-do-with-unfixed-ecb-buffers (&rest body) + "Evaluate BODY with unfixed size of all current-visible ecb-buffers and +ensure that at the end \(either after finishing of BODY or after an error +occurs during BODY) all now current visible ecb-buffers get the value of their +buffer-local `window-size-fixed' from the setting in `ecb-fix-window-size'." + `(unwind-protect + (progn + (ecb-set-window-size-fixed nil) + ,@body) + (ecb-set-window-size-fixed (ecb-get-window-fix-type ecb-layout-name)))) + +(defmacro ecb-do-with-fixed-ecb-buffers (&rest body) + "Evaluate BODY with fixed size of all current-visible ecb-buffers and +ensure that at the end \(either after finishing of BODY or after an error +occurs during BODY) all now current visible ecb-buffers get the value of their +buffer-local `window-size-fixed' from the setting in `ecb-fix-window-size'." + `(unwind-protect + (progn + (ecb-set-window-size-fixed t) + ,@body) + (ecb-set-window-size-fixed (ecb-get-window-fix-type ecb-layout-name)))) + + + +(defcustom ecb-other-window-behavior 'smart + "*The behavior of ECB concerning getting an \"other window\". + +The following settings are possible: + +'all: + +ECB will cycle through all windows of the ECB-frame or scroll simply +the next window in the ECB-frame, means it behaves like the original +`other-window' rsp. the original `other-window-for-scrolling'. + +'only-edit: + +ECB will only cycle through the edit-windows of ECB or only +scroll another edit-window. If the selected window is not an edit-window +then it behaves like with value 'all. + +'edit-and-compile: + +Like 'only-edit plus the compile window if any. If the +selected window is neither an edit-window nor the compile-window then it +behaves like with value 'all. + +'smart: + +With this setting ECB tries to choose the `other-window'-destination or the +\"other window\" to scroll in a smart and intuitive way: If point is in one of +the edit-windows and if the edit-area is splitted then always the \"next\" +edit-window is choosen \(whereas the next edit-window of the last edit-window +is the first edit-window)- if the edit-area is unsplitted then the +compile-window is used if there is one. In the context of an +`other-window'-call the ARG of `other-window' will be taken into account. + +If one of the special ecb-windows is selected then always the \"next\" +ecb-window is choosen \(whereas the next ecb-window of the last ecb-window is +the first ecb-window). In the context of an `other-window'-call the ARG of +`other-window' will be taken into account. If there is only one ecb-window +then ECB considers also the edit-windows! + +If the compile-window is selected then always the last selected edit-window +will be used unless `other-window' has been called with a prefix-argument +unequal 1. + +If there is an active minibuffer: + +Regardless of the allowed values above ECB handles the situation of an active +minibuffer during a call to `other-window' or `scroll-other-window' like +follows: + +If the minibuffer-window is selected then ECB always chooses the window +`minibuffer-scroll-window' points to \(when this variable is set, otherwise +the compile-window or the last selected edit-window is choosen) when the +called command is called to choose the 1. next window \(always true for +scrolling another window or true when `other-window' called without prefix-arg +or with prefix-arg equal 1). Otherwise the window ARG steps away is choosen +\(in case of `other-window). + +If there is an active minibuffer but the minibuffer-window is not selected +then `other-window' and `scroll-other-window' behave like the original +version. + +In addition to the allowed values above the value of this option can also be a +function: + +This function gets seven arguments: +1. A canonical list of all currently visible windows of the `ecb-frame' +2. A canonical list of all currently visible edit-windows +3. A canonical list of all currently visible ecb-windows +4. The window-object of the compile-window if there is any. +5. The minibuffer-window of the ECB-frame if there is an active minibuffer. +5. The result of the function `ecb-where-is-point' - see the documentation + of this function for details. +6. An integer which indicates how many steps away from the current selected + window the \"other-window\ is. Is nil when this function is called in + another context then for `other-window'. +The function has to return a window-object which is then used as \"other +window\" for the command `other-window' or for scrolling another window +\(e.g. with `scroll-other-window'). + +This function has to handle all properly situations for itself. +`ecb-get-other-window-smart' is an example for such a function." + :group 'ecb-layout + :group 'ecb-most-important + :type '(radio (const :tag "Smart" :value smart) + (const :tag "All windows" all) + (const :tag "Only edit windows" only-edit) + (const :tag "Edit + compile window" edit-and-compile) + (function :tag "User defined" :value ignore))) + + +(defcustom ecb-advice-window-functions-signal-error nil + "*Signal an error if an adviced function can not do its job. +If not nil then an error is signaled if one of the adviced functions can not +do its job. So for example if the user tries to split the compile-window or an +ecb-tree-window or if one tries to switch to another buffer in one of the +ecb-tree-windows. For details see the documentation of each of the adviced +functions to get info when an error is signaled. + +If this option is nil then no error is signaled but the called adviced +function does simply nothing. + +Default is nil but it can also be useful to signal errors - so you see when +call a function in a situation which is not supported by this function." + :group 'ecb-layout + :type 'boolean) + +(defcustom ecb-layout-always-operate-in-edit-window + '(switch-to-buffer) + "*Adviced window functions work always in the edit-window. +If we are in an ECB special buffer (methods, directories, etc), and any of the +adviced windowing functions is called interactively, we will select first an +edit-window according to the value of `ecb-mouse-click-destination'. This is +useful if you have any functions that use such functions and you don't want +them to fail with an error complaining that the current buffer can not be +split, or something similar. + +Because this may not be desirable in all situations and for all adviced +functions this can be enabled separately for function where it is senseful. If +the symbol of an adviced function is contained in the value of this option, +then the edit-window is first selected otherwise either an error is reported +or some other special reaction (depends on +`ecb-advice-window-functions-signal-error'); see the documentation of the +adviced functions for this. + +Per default this is only enabled for `switch-to-buffer'." + :group 'ecb-layout + :type '(set (const :tag "delete-window" + :value delete-window) + (const :tag "delete-other-windows" + :value delete-other-windows) + (const :tag "split-window-horizontally" + :value split-window-horizontally) + (const :tag "split-window-vertically" + :value split-window-vertically) + (const :tag "split-window" + :value split-window) + (const :tag "display-buffer" + :value display-buffer) + (const :tag "switch-to-buffer" + :value switch-to-buffer))) + +(defcustom ecb-layout-window-sizes nil + "*Specifies the sizes of the ECB windows for each layout. +The easiest way \(and also the very strongly recommended way) to set this +option is to change the window sizes by dragging the window borders using +the mouse and then store the window sizes by calling the command +`ecb-store-window-sizes'. Next time the layout is redrawn the values stored in +this option will be used. + +If `ecb-store-window-sizes' is used then the windows sizes are stored per +default as fractions of current frame-width and -height of the ecb-frame, so +the stored values will \"work\" for other frame sizes too. But if you call +`ecb-store-window-sizes' with a prefix-argument then the fixed values of +current width and height are stored! + +If this option is set \"by hand\" \(i.e. not by `ecb-store-window-sizes') then +the following is important: +- Use always `customize-option', never `setq'! +- It is recommended to use fractions of frame-width and -height!. +- It is also recommended to use buffer-name-symbols instead of plain + buffer-names \(e.g. ecb-history-buffer-name instead of \" *ECB History*\") +- There must be an entry for each special ecb-buffer of that layout for which + the sizes are stored. +- The order of the sequence of the inserted window sizes doesn't matter + because each size-pair is assigned to a buffer-name the sizes belong to." + :group 'ecb-layout + :initialize 'custom-initialize-default + :set ecb-layout-option-set-function + :type '(repeat (cons :tag "Window layout" + (string :tag "Layout name") + (repeat :tag "Window sizes" + (cons (choice :tag "Buffer-name" :menu-tag "Buffer-name" + (string :tag "Buffer-name as string") + (symbol :tag "Symbol containing buffer-name")) + (cons (choice :tag "Width" + :menu-tag "Width" + (const :tag "Default value" + :value nil) + (number :tag "Custom size")) + (choice :tag "Height" + :menu-tag "Height" + (const :tag "Default value" + :value nil) + (number :tag "Custom size")))))))) + +(defcustom ecb-redraw-layout-quickly nil + "If non-nil, we will attempt to redraw the layout quickly. +Please read also carefully the documentation of `ecb-redraw-layout'." + :type 'boolean + :group 'ecb-layout) + +(defcustom ecb-major-modes-show-or-hide (cons nil nil) + "*List of major-modes which show or hide the ecb-windows. +The value is a cons-cell where the car contains all major-mode-symbols which +should show the special ecb-windows and the cdr contains all +major-mode-symbols which should hide the special ecb-windows. If the symbol of +a major-mode is neither contained in the car-\"show-list\" nor in the +cdr-\"hide-list\" then the visibility-state of the ecb-windows does not +change." + :group 'ecb-layout + :group 'ecb-most-important + :type '(cons (repeat :tag "Modes for visible ecb-windows" + (symbol :tag "Major-mode")) + (repeat :tag "Modes for invisible ecb-windows" + (symbol :tag "Major-mode")))) + +(defcustom ecb-toggle-layout-sequence '("left9" "left14") + "*Toggle sequence for layout toggling with `ecb-toggle-layout'. +Every element of this list has to be a valid layout-name \(a string) i.e. +either one of the predefined layouts or one of the user-defined layouts \(see +`ecb-create-new-layout'). + +You can add here as many layouts as you want but to use this option most +effective you should not add more than 2 or 3 layouts so every layout can be +accessed very fast by toggling with `ecb-toggle-layout'. It is also senseful +to add layouts which have the same principal outline, i.e. all their +tree-buffers are on the same side of the frame and the +tree-buffer-\"column\" \(or -\"row\") has identical size for the layouts. + +Recommended values are for example: +- \(\"left10\" \"left15\"), toggles between methods and directories/history +- \(\"left10\" \"left13\"), toggles between methods and directories +- \(\"left10\" \"left14\"), toggles between methods and history +- \(\"left10\" \"left13\" \"left14\"), toggles between methods, history and + directories + +See also option `ecb-show-sources-in-directories-buffer'. + +This option makes only sense if the value is a list with more than 1 element!" + :group 'ecb-layout + :type '(repeat (string :tag "Layout name.")) + :initialize 'custom-initialize-default + :set (function (lambda (symbol value) + (ecb-load-layouts) + (dolist (name value) + (if (and (boundp 'ecb-minor-mode) + ecb-minor-mode + (not (fboundp (intern + (format "ecb-layout-function-%s" + name))))) + (ecb-error "There is no layout available with name %s!" + name))) + (set symbol value)))) + +(defcustom ecb-left-right-layout-hide-sequence '(left-side all right-side none) + "*" + :group 'ecb-layout + :type '(repeat (choice :tag "Hidden windows" + :menu-tag "Hidden windows" + (const :tag "Only left side ecb-windows hidden" :value left-side) + (const :tag "Only right side ecb-windows hidden" :value right-side) + (const :tag "All ecb-windows hidden" :value all) + (const :tag "No ecb-window hidden (ie. all displayed)" :value none)))) + +(defcustom ecb-hide-ecb-windows-before-hook nil + "*Hook run direct before the ECB windows will be hidden. +Hiding is done either by `ecb-toggle-ecb-windows' or `ecb-hide-ecb-windows'. +This means that at runtime of this hook all the ECB-tree-windows of current +layout are visible. + +IMPORTANT: Showing the hidden ECB-windows is internally done by calling +`ecb-redraw-layout' and therefore also the hooks +`ecb-redraw-layout-before-hook' and `ecb-redraw-layout-after-hook' are +evaluated. The hook-sequence is analogous to that described in +`ecb-show-ecb-windows-before-hook'." + :group 'ecb-layout + :type 'hook) + +(defcustom ecb-hide-ecb-windows-after-hook nil + "*Hooks run direct after the ECB windows have been hidden. +Hiding was done either by `ecb-toggle-ecb-windows' or `ecb-hide-ecb-windows'. + +IMPORTANT: Showing the hidden ECB-windows is internally done by calling +`ecb-redraw-layout' and therefore also the hooks +`ecb-redraw-layout-before-hook' and `ecb-redraw-layout-after-hook' are +evaluated. The hook-sequence is analogous to that described in +`ecb-show-ecb-windows-after-hook'." + :group 'ecb-layout + :type 'hook) + +(defcustom ecb-show-ecb-windows-before-hook nil + "*Hooks run direct before the ECB windows will be shown. +Showing is done either by `ecb-toggle-ecb-windows' or `ecb-show-ecb-windows'. +This means that at runtime of this hook the ECB-windows are still hidden. + +IMPORTANT: Showing the hidden ECB-windows is internally done by calling +`ecb-redraw-layout' and therefore also the hooks +`ecb-redraw-layout-before-hook' and `ecb-redraw-layout-after-hook' are +evaluated. So there is the following sequence of hooks during the process of +showing the hidden ECB-windows: +1. `ecb-show-ecb-windows-before-hook' +2. `ecb-redraw-layout-before-hook' +3.