+;; display-type object definition.
+(defun wl-message-make-display-type (mime header)
+ (let (symbol)
+ (prog1
+ (setq symbol (intern (format "%s-%s-header" mime header)))
+ (put symbol
+ 'wl-message-display-type
+ (list :mime mime :header header)))))
+
+(defun wl-message-display-type-property (display-type prop)
+ (plist-get (get display-type 'wl-message-display-type) prop))
+
+(defun wl-message-mime-analysis-p (display-type &optional header-or-body)
+ (let ((mode (wl-message-display-type-property display-type :mime)))
+ (case header-or-body
+ (header
+ (memq mode '(mime header-only)))
+ (t
+ (eq mode 'mime)))))
+
+(defun wl-message-display-all-header-p (display-type)
+ (eq (wl-message-display-type-property display-type :header) 'all))
+
+(defun wl-message-display-no-merge-p (display-type)
+ (eq (wl-message-display-type-property display-type :mime) 'no-merge))
+
+(defun wl-message-buffer-display-type (&optional message-buffer)
+ (if message-buffer
+ (with-current-buffer message-buffer
+ wl-message-buffer-cur-display-type)
+ wl-message-buffer-cur-display-type))
+
+(defun wl-message-flag-indicator (flags)
+ (let ((flags (elmo-get-global-flags flags)))
+ (if (null flags)
+ ""
+ (concat
+ " ("
+ (mapconcat
+ (lambda (flag)
+ (let ((indicator (capitalize (symbol-name flag)))
+ face)
+ (when (and (assq flag wl-summary-flag-alist)
+ (facep
+ (setq face (intern
+ (format "wl-highlight-summary-%s-flag-face"
+ flag)))))
+ (put-text-property 0 (length indicator) 'face face indicator))
+ indicator))
+ (sort flags
+ (lambda (l r)
+ (> (length (memq (assq l wl-summary-flag-alist)
+ wl-summary-flag-alist))
+ (length (memq (assq r wl-summary-flag-alist)
+ wl-summary-flag-alist)))))
+ ", ")
+ ")"))))
+