aboutsummaryrefslogtreecommitdiffstats
path: root/mode-icons.el
diff options
context:
space:
mode:
authorGravatar Matthew L. Fidler2016-02-07 22:42:43 -0600
committerGravatar Matthew L. Fidler2016-02-07 22:42:43 -0600
commit5be52add14d1fe128a4a7187cf46b0da6da37750 (patch)
treed5b009832178829f8747b793cb9ae41a2daf5f97 /mode-icons.el
parent0462ef42398ab9c50390adf7ce8e94b86e14af1c (diff)
downloadmode-icons-5be52add14d1fe128a4a7187cf46b0da6da37750.tar.gz
mode-icons-5be52add14d1fe128a4a7187cf46b0da6da37750.zip
Remove face, just add the font property.
Diffstat (limited to 'mode-icons.el')
-rw-r--r--mode-icons.el47
1 files changed, 35 insertions, 12 deletions
diff --git a/mode-icons.el b/mode-icons.el
index 0f4cfb7..57be858 100644
--- a/mode-icons.el
+++ b/mode-icons.el
@@ -46,10 +46,6 @@ absolute path to ICON."
(defvar mode-icons-octicons-font
(find-font (font-spec :name "github-octicons")))
-(when mode-icons-octicons-font
- (make-face 'mode-icons-octicons)
- (set-face-attribute 'mode-icons-octicons nil
- :font mode-icons-octicons-font))
(defcustom mode-icons
`(("CSS" "css" xpm)
@@ -117,13 +113,21 @@ the icon."
`(image :type ,type :file ,icon-path :ascent center)))
(defcustom mode-icons-minor-mode-base-text-properties
- '('help-echo 'rm--help-echo
+ '('help-echo nil
'mouse-face 'mode-line-highlight
'local-map mode-line-minor-mode-keymap)
"List of text propeties to apply to every minor mode."
:type '(repeat sexp)
:group 'mode-icons)
+(defcustom mode-icons-major-mode-base-text-properties
+ '('help-echo "Major mode\nmouse-1: Display major mode menu\nmouse-2: Show help for major mode\nmouse-3: Toggle minor modes"
+ 'mouse-face 'mode-line-highlight
+ 'local-map mode-line-major-mode-keymap)
+ "List of text propeties to apply to every major mode."
+ :type '(repeat sexp)
+ :group 'mode-icons)
+
(defvar mode-icons-powerline-p nil)
(defun mode-icons-need-update-p ()
"Determine if the mode-icons need an update."
@@ -139,9 +143,7 @@ ICON-SPEC should be a specification from `mode-icons'."
(cond
((not (nth 1 icon-spec)) "")
((and mode-icons-octicons-font (stringp (nth 1 icon-spec)) (eq (nth 2 icon-spec) 'octicons))
- (message "Trying %s" (propertize mode 'display (nth 1 icon-spec) 'face 'mode-icons-octicons
- 'font 'mode-icons-octicons-font))
- (propertize mode 'display (nth 1 icon-spec) 'face 'mode-icons-octicons
+ (propertize mode 'display (nth 1 icon-spec)
'font 'mode-icons-octicons-font))
((and (stringp (nth 1 icon-spec)) (not (nth 2 icon-spec)))
(propertize mode 'display (mode-icons-get-icon-display (nth 1 icon-spec) (nth 2 icon-spec))))
@@ -227,6 +229,10 @@ ICON-SPEC should be a specification from `mode-icons'."
mode-name)))))))))
(force-mode-line-update))
+(defun mode-icons--generate-major-mode-item ()
+ "Give rich strings needed for `major-mode' viewing."
+ (eval `(propertize ,mode-name ,@mode-icons-major-mode-base-text-properties)))
+
(defun mode-icons--generate-minor-mode-list ()
"Extracts all rich strings necessary for the minor mode list."
(delete " " (delete "" (mapcar (lambda(mode)
@@ -239,6 +245,11 @@ ICON-SPEC should be a specification from `mode-icons'."
'(:eval (mode-icons--generate-minor-mode-list))
"Construct used to replace `minor-mode-alist'.")
+(defvar mode-icons--major-backup-construct nil)
+(defvar mode-icons--major-construct
+ '(:eval (mode-icons--generate-major-mode-item))
+ "Construct used to replace `mode-name'.")
+
(defun mode-icons-fix (&optional enable)
"Fix mode-icons."
(if enable
@@ -247,13 +258,25 @@ ICON-SPEC should be a specification from `mode-icons'."
(lambda (x) (and (listp x)
(equal (car x) :propertize)
(equal (cadr x) '("" minor-mode-alist))))
- mode-line-modes))))
+ mode-line-modes)))
+ (place-major (cl-member-if
+ (lambda(x)
+ (and (listp x)
+ (equal (car x) :propertize)
+ (equal (cadr x) '("" mode-name))))
+ mode-line-modes)))
(when place
(setq mode-icons--backup-construct (car place))
- (setcar place mode-icons--mode-line-construct)))
- (let ((place (member mode-icons--mode-line-construct mode-line-modes)))
+ (setcar place mode-icons--mode-line-construct))
+ (when place-major
+ (setq mode-icons--major-backup-construct (car place-major))
+ (setcar place-major mode-icons--major-construct)))
+ (let ((place (member mode-icons--mode-line-construct mode-line-modes))
+ (place-major (member mode-icons--major-backup-construct mode-line-modes)))
(when place
- (setcar place mode-icons--backup-construct)))))
+ (setcar place mode-icons--backup-construct))
+ (when place-major
+ (setcar place-major mode-icons--major-backup-construct)))))
;;;###autoload
(define-minor-mode mode-icons-mode