+(defcustom cpp-face-default-list nil
+ "Alist of faces you can choose from for cpp conditionals.
+Each element has the form (STRING . FACE), where STRING
+serves as a name (for `cpp-highlight-buffer' only)
+and FACE is either a face (a symbol)
+or a cons cell (background-color . COLOR)."
+ :type '(repeat (cons string (choice face (cons (const background-color) string))))
+ :group 'cpp)
+
+(defcustom cpp-face-light-name-list
+ '("light gray" "light blue" "light cyan" "light yellow" "light pink"
+ "pale green" "beige" "orange" "magenta" "violet" "medium purple"
+ "turquoise")
+ "Background colors useful with dark foreground colors."
+ :type '(repeat string)
+ :group 'cpp)
+
+(defcustom cpp-face-dark-name-list
+ '("dim gray" "blue" "cyan" "yellow" "red"
+ "dark green" "brown" "dark orange" "dark khaki" "dark violet" "purple"
+ "dark turquoise")
+ "Background colors useful with light foreground colors."
+ :type '(repeat string)
+ :group 'cpp)
+
+(defcustom cpp-face-light-list nil
+ "Alist of names and faces to be used for light backgrounds."
+ :type '(repeat (cons string (choice face
+ (cons (const background-color) string))))
+ :group 'cpp)
+
+(defcustom cpp-face-dark-list nil
+ "Alist of names and faces to be used for dark backgrounds."
+ :type '(repeat (cons string (choice face
+ (cons (const background-color) string))))
+ :group 'cpp)
+
+(defcustom cpp-face-mono-list
+ '(("bold" . bold)
+ ("bold-italic" . bold-italic)
+ ("italic" . italic)
+ ("underline" . underline))
+ "Alist of names and faces to be used for monochrome screens."
+ :type '(repeat (cons string face))
+ :group 'cpp)
+
+(defcustom cpp-face-none-list
+ '(("default" . default)
+ ("invisible" . invisible))
+ "Alist of names and faces available even if you don't use a window system."
+ :type '(repeat (cons string cpp-face))
+ :group 'cpp)
+
+(defvar cpp-face-all-list
+ (append cpp-face-light-list
+ cpp-face-dark-list
+ cpp-face-mono-list
+ cpp-face-none-list)
+ "All faces used for highlighting text inside cpp conditionals.")