summaryrefslogtreecommitdiffstats
path: root/mode-icons.el
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-11-10 23:12:36 +0100
committerGravatar Tom Willemsen2012-11-10 23:12:36 +0100
commit1f62fb182c798cb29856936693f674bb7841c43b (patch)
treefa00e7bb6fd3c8f63ee8a74fa2250c3d8ecaa341 /mode-icons.el
downloadmode-icons-1f62fb182c798cb29856936693f674bb7841c43b.tar.gz
mode-icons-1f62fb182c798cb29856936693f674bb7841c43b.zip
Initial commit
Diffstat (limited to 'mode-icons.el')
-rw-r--r--mode-icons.el63
1 files changed, 63 insertions, 0 deletions
diff --git a/mode-icons.el b/mode-icons.el
new file mode 100644
index 0000000..78d2e15
--- /dev/null
+++ b/mode-icons.el
@@ -0,0 +1,63 @@
+;;; mode-icons.el --- Show icons for modes
+
+;; Copyright (C) 2012 Tom Willemsen
+
+;; Author: Tom Willemsen <thomas@aethon.nl>
+;; Keywords: multimedia
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(defun mode-icons-get-icon-file (name)
+ (concat user-emacs-directory "/icons/" name))
+
+(defvar mode-icons
+ `(("Emacs-Lisp" . (image :type xpm
+ :file ,(mode-icons-get-icon-file "emacs.xpm")
+ :ascent center))
+ ("Python" . (image :type xpm
+ :file ,(mode-icons-get-icon-file "python.xpm")
+ :ascent center))
+ ("Scheme" . (image :type xpm
+ :file ,(mode-icons-get-icon-file "scheme.xpm")
+ :ascent center))
+ ("Lisp" . (image :type xpm
+ :file ,(mode-icons-get-icon-file "cl.xpm")
+ :ascent center))
+ ("PHP" . (image :type xpm
+ :file ,(mode-icons-get-icon-file "php.xpm")
+ :ascent center))
+ ("HTML" . (image :type xpm
+ :file ,(mode-icons-get-icon-file "html.xpm")
+ :ascent center)))
+ "Icons for major modes.")
+
+(defun set-mode-icon (mode)
+ (setq mode (format-mode-line mode))
+ (let ((icon-spec (assoc mode mode-icons)))
+ (when icon-spec
+ (setq mode-name (propertize mode 'display (cdr icon-spec))))))
+
+(defun set-current-mode-icon ()
+ (set-mode-icon mode-name))
+
+(add-hook 'after-change-major-mode-hook 'set-current-mode-icon)
+
+(provide 'mode-icons)
+;;; mode-icons.el ends here