NeoMutt  2022-04-29-145-g9b6a0e
Teaching an old dog new tricks
DOXYGEN
color.h File Reference

Color and attribute parsing. More...

#include "config.h"
#include <stdint.h>
#include "mutt/lib.h"
+ Include dependency graph for color.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define COLOR_DEFAULT   (-2)
 
#define COLOR_UNSET   UINT32_MAX
 

Enumerations

enum  ColorId {
  MT_COLOR_NONE = 50 , MT_COLOR_ATTACHMENT , MT_COLOR_ATTACH_HEADERS , MT_COLOR_BODY ,
  MT_COLOR_BOLD , MT_COLOR_COMPOSE_HEADER , MT_COLOR_COMPOSE_SECURITY_BOTH , MT_COLOR_COMPOSE_SECURITY_ENCRYPT ,
  MT_COLOR_COMPOSE_SECURITY_NONE , MT_COLOR_COMPOSE_SECURITY_SIGN , MT_COLOR_ERROR , MT_COLOR_HDRDEFAULT ,
  MT_COLOR_HEADER , MT_COLOR_INDICATOR , MT_COLOR_MARKERS , MT_COLOR_MESSAGE ,
  MT_COLOR_MESSAGE_LOG , MT_COLOR_NORMAL , MT_COLOR_OPTIONS , MT_COLOR_PROGRESS ,
  MT_COLOR_PROMPT , MT_COLOR_QUOTED , MT_COLOR_SEARCH , MT_COLOR_SIDEBAR_DIVIDER ,
  MT_COLOR_SIDEBAR_FLAGGED , MT_COLOR_SIDEBAR_HIGHLIGHT , MT_COLOR_SIDEBAR_INDICATOR , MT_COLOR_SIDEBAR_NEW ,
  MT_COLOR_SIDEBAR_ORDINARY , MT_COLOR_SIDEBAR_SPOOLFILE , MT_COLOR_SIDEBAR_UNREAD , MT_COLOR_SIGNATURE ,
  MT_COLOR_STATUS , MT_COLOR_TILDE , MT_COLOR_TREE , MT_COLOR_UNDERLINE ,
  MT_COLOR_WARNING , MT_COLOR_INDEX , MT_COLOR_INDEX_AUTHOR , MT_COLOR_INDEX_FLAGS ,
  MT_COLOR_INDEX_SUBJECT , MT_COLOR_INDEX_TAG , MT_COLOR_INDEX_COLLAPSED , MT_COLOR_INDEX_DATE ,
  MT_COLOR_INDEX_LABEL , MT_COLOR_INDEX_NUMBER , MT_COLOR_INDEX_SIZE , MT_COLOR_INDEX_TAGS ,
  MT_COLOR_MAX
}
 List of all colored objects. More...
 

Functions

void mutt_colors_init (void)
 Initialize colours. More...
 
void mutt_colors_cleanup (void)
 Cleanup all the colours. More...
 
void colors_clear (void)
 Reset all the simple, quoted and regex colours. More...
 

Variables

const struct Mapping ColorNames []
 
const struct Mapping ColorFields []
 Mapping of colour names to their IDs. More...
 
const struct Mapping ComposeColorFields []
 Mapping of compose colour names to their IDs. More...
 

Detailed Description

Color and attribute parsing.

Authors
  • Michael R. Elkins
  • R Primus

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/.

Definition in file color.h.

Macro Definition Documentation

◆ COLOR_DEFAULT

#define COLOR_DEFAULT   (-2)

Definition at line 99 of file color.h.

◆ COLOR_UNSET

#define COLOR_UNSET   UINT32_MAX

Definition at line 100 of file color.h.

Enumeration Type Documentation

◆ ColorId

enum ColorId

List of all colored objects.

This enumeration starts at 50 to avoid any of the values being 37 (ASCII %). Inserting colour codes into expando strings, when one of the colour codes was '', was causing formatting problems.

Enumerator
MT_COLOR_NONE 
MT_COLOR_ATTACHMENT 

MIME attachments text (entire line)

MT_COLOR_ATTACH_HEADERS 

MIME attachment test (takes a pattern)

MT_COLOR_BODY 

Pager: highlight body of message (takes a pattern)

MT_COLOR_BOLD 

Bold text.

MT_COLOR_COMPOSE_HEADER 

Header labels, e.g. From:

MT_COLOR_COMPOSE_SECURITY_BOTH 

Mail will be encrypted and signed.

MT_COLOR_COMPOSE_SECURITY_ENCRYPT 

Mail will be encrypted.

MT_COLOR_COMPOSE_SECURITY_NONE 

Mail will not be encrypted or signed.

MT_COLOR_COMPOSE_SECURITY_SIGN 

Mail will be signed.

MT_COLOR_ERROR 

Error message.

MT_COLOR_HDRDEFAULT 

Header default colour.

MT_COLOR_HEADER 

Message headers (takes a pattern)

MT_COLOR_INDICATOR 

Selected item in list.

MT_COLOR_MARKERS 

Pager: markers, line continuation.

MT_COLOR_MESSAGE 

Informational message.

MT_COLOR_MESSAGE_LOG 

Menu showing log messages.

MT_COLOR_NORMAL 

Plain text.

MT_COLOR_OPTIONS 

Options in prompt.

MT_COLOR_PROGRESS 

Progress bar.

MT_COLOR_PROMPT 

Question/user input.

MT_COLOR_QUOTED 

Pager: quoted text.

MT_COLOR_SEARCH 

Pager: search matches.

MT_COLOR_SIDEBAR_DIVIDER 

Line dividing sidebar from the index/pager.

MT_COLOR_SIDEBAR_FLAGGED 

Mailbox with flagged messages.

MT_COLOR_SIDEBAR_HIGHLIGHT 

Select cursor.

MT_COLOR_SIDEBAR_INDICATOR 

Current open mailbox.

MT_COLOR_SIDEBAR_NEW 

Mailbox with new mail.

MT_COLOR_SIDEBAR_ORDINARY 

Mailbox with no new or flagged messages.

MT_COLOR_SIDEBAR_SPOOLFILE 

$spool_file (Spool mailbox)

MT_COLOR_SIDEBAR_UNREAD 

Mailbox with unread mail.

MT_COLOR_SIGNATURE 

Pager: signature lines.

MT_COLOR_STATUS 

Status bar (takes a pattern)

MT_COLOR_TILDE 

Pager: empty lines after message.

MT_COLOR_TREE 

Index: tree-drawing characters.

MT_COLOR_UNDERLINE 

Underlined text.

MT_COLOR_WARNING 

Warning messages.

MT_COLOR_INDEX 

Index: default colour (takes a pattern)

MT_COLOR_INDEX_AUTHOR 

Index: author field (takes a pattern)

MT_COLOR_INDEX_FLAGS 

Index: flags field (takes a pattern)

MT_COLOR_INDEX_SUBJECT 

Index: subject field (takes a pattern)

MT_COLOR_INDEX_TAG 

Index: tag field (g, takes a pattern)

MT_COLOR_INDEX_COLLAPSED 

Index: number of messages in collapsed thread.

MT_COLOR_INDEX_DATE 

Index: date field.

MT_COLOR_INDEX_LABEL 

Index: label field.

MT_COLOR_INDEX_NUMBER 

Index: index number.

MT_COLOR_INDEX_SIZE 

Index: size field.

MT_COLOR_INDEX_TAGS 

Index: tags field (g, J)

MT_COLOR_MAX 

Definition at line 34 of file color.h.

35 {
36  MT_COLOR_NONE = 50,
59 #ifdef USE_SIDEBAR
68 #endif
75  /* please no non-MT_COLOR_INDEX objects after this point */
81  /* below here - only index coloring stuff that doesn't have a pattern */
89 };
@ MT_COLOR_SIDEBAR_DIVIDER
Line dividing sidebar from the index/pager.
Definition: color.h:60
@ MT_COLOR_MARKERS
Pager: markers, line continuation.
Definition: color.h:50
@ MT_COLOR_COMPOSE_SECURITY_ENCRYPT
Mail will be encrypted.
Definition: color.h:43
@ MT_COLOR_MESSAGE
Informational message.
Definition: color.h:51
@ MT_COLOR_QUOTED
Pager: quoted text.
Definition: color.h:57
@ MT_COLOR_INDEX_AUTHOR
Index: author field (takes a pattern)
Definition: color.h:77
@ MT_COLOR_MAX
Definition: color.h:88
@ MT_COLOR_SIDEBAR_NEW
Mailbox with new mail.
Definition: color.h:64
@ MT_COLOR_HEADER
Message headers (takes a pattern)
Definition: color.h:48
@ MT_COLOR_STATUS
Status bar (takes a pattern)
Definition: color.h:70
@ MT_COLOR_SIDEBAR_UNREAD
Mailbox with unread mail.
Definition: color.h:67
@ MT_COLOR_INDEX_SIZE
Index: size field.
Definition: color.h:86
@ MT_COLOR_INDICATOR
Selected item in list.
Definition: color.h:49
@ MT_COLOR_SIDEBAR_SPOOLFILE
$spool_file (Spool mailbox)
Definition: color.h:66
@ MT_COLOR_ERROR
Error message.
Definition: color.h:46
@ MT_COLOR_NONE
Definition: color.h:36
@ MT_COLOR_COMPOSE_SECURITY_NONE
Mail will not be encrypted or signed.
Definition: color.h:44
@ MT_COLOR_SIDEBAR_ORDINARY
Mailbox with no new or flagged messages.
Definition: color.h:65
@ MT_COLOR_INDEX_TAGS
Index: tags field (g, J)
Definition: color.h:87
@ MT_COLOR_BOLD
Bold text.
Definition: color.h:40
@ MT_COLOR_INDEX_SUBJECT
Index: subject field (takes a pattern)
Definition: color.h:79
@ MT_COLOR_BODY
Pager: highlight body of message (takes a pattern)
Definition: color.h:39
@ MT_COLOR_INDEX_DATE
Index: date field.
Definition: color.h:83
@ MT_COLOR_PROGRESS
Progress bar.
Definition: color.h:55
@ MT_COLOR_COMPOSE_SECURITY_BOTH
Mail will be encrypted and signed.
Definition: color.h:42
@ MT_COLOR_INDEX_TAG
Index: tag field (g, takes a pattern)
Definition: color.h:80
@ MT_COLOR_HDRDEFAULT
Header default colour.
Definition: color.h:47
@ MT_COLOR_OPTIONS
Options in prompt.
Definition: color.h:54
@ MT_COLOR_TREE
Index: tree-drawing characters.
Definition: color.h:72
@ MT_COLOR_NORMAL
Plain text.
Definition: color.h:53
@ MT_COLOR_ATTACH_HEADERS
MIME attachment test (takes a pattern)
Definition: color.h:38
@ MT_COLOR_SEARCH
Pager: search matches.
Definition: color.h:58
@ MT_COLOR_COMPOSE_SECURITY_SIGN
Mail will be signed.
Definition: color.h:45
@ MT_COLOR_MESSAGE_LOG
Menu showing log messages.
Definition: color.h:52
@ MT_COLOR_INDEX_LABEL
Index: label field.
Definition: color.h:84
@ MT_COLOR_PROMPT
Question/user input.
Definition: color.h:56
@ MT_COLOR_COMPOSE_HEADER
Header labels, e.g. From:
Definition: color.h:41
@ MT_COLOR_INDEX
Index: default colour (takes a pattern)
Definition: color.h:76
@ MT_COLOR_ATTACHMENT
MIME attachments text (entire line)
Definition: color.h:37
@ MT_COLOR_SIDEBAR_INDICATOR
Current open mailbox.
Definition: color.h:63
@ MT_COLOR_SIDEBAR_HIGHLIGHT
Select cursor.
Definition: color.h:62
@ MT_COLOR_WARNING
Warning messages.
Definition: color.h:74
@ MT_COLOR_UNDERLINE
Underlined text.
Definition: color.h:73
@ MT_COLOR_INDEX_NUMBER
Index: index number.
Definition: color.h:85
@ MT_COLOR_SIGNATURE
Pager: signature lines.
Definition: color.h:69
@ MT_COLOR_INDEX_FLAGS
Index: flags field (takes a pattern)
Definition: color.h:78
@ MT_COLOR_SIDEBAR_FLAGGED
Mailbox with flagged messages.
Definition: color.h:61
@ MT_COLOR_TILDE
Pager: empty lines after message.
Definition: color.h:71
@ MT_COLOR_INDEX_COLLAPSED
Index: number of messages in collapsed thread.
Definition: color.h:82

Function Documentation

◆ mutt_colors_init()

void mutt_colors_init ( void  )

Initialize colours.

Definition at line 80 of file color.c.

81 {
82  color_debug(LL_DEBUG5, "init\n");
88 
89  start_color();
90  use_default_colors();
91  color_debug(LL_DEBUG5, "COLORS = %d, COLOR_PAIRS = %d\n", COLORS, COLOR_PAIRS);
92 
94 }
struct Notify * ColorsNotify
Notifications: ColorId, EventColor.
Definition: notify.c:34
void color_notify_init(void)
Initialise the Colour notification.
Definition: notify.c:39
void regex_colors_init(void)
Initialise the Regex colours.
Definition: regex.c:62
void simple_colors_init(void)
Initialise the simple colour definitions.
Definition: simple.c:42
void curses_colors_init(void)
Initialise the Curses colours.
Definition: curses.c:42
int color_debug(enum LogLevel level, const char *format,...)
Write to the log file.
Definition: debug.c:44
@ LL_DEBUG5
Log at debug level 5.
Definition: logging.h:44
void merged_colors_init(void)
Initialise the Merged colours.
Definition: merged.c:46
void notify_set_parent(struct Notify *notify, struct Notify *parent)
Set the parent notification handler.
Definition: notify.c:93
Container for Accounts, Notifications.
Definition: neomutt.h:37
struct Notify * notify
Notifications handler.
Definition: neomutt.h:38
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mutt_colors_cleanup()

void mutt_colors_cleanup ( void  )

Cleanup all the colours.

Definition at line 70 of file color.c.

71 {
72  colors_clear();
75 }
void color_notify_free(void)
Free the Colour notification.
Definition: notify.c:48
void colors_clear(void)
Reset all the simple, quoted and regex colours.
Definition: color.c:55
void merged_colors_clear(void)
Free the list of Merged colours.
Definition: merged.c:54
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ colors_clear()

void colors_clear ( void  )

Reset all the simple, quoted and regex colours.

Definition at line 55 of file color.c.

56 {
57  color_debug(LL_DEBUG5, "clean up\n");
58  mutt_debug(LL_NOTIFY, "NT_COLOR_RESET: [ALL]\n");
59  struct EventColor ev_c = { MT_COLOR_MAX, NULL };
61 
65 }
void regex_colors_clear(void)
Clear the Regex colours.
Definition: regex.c:79
void simple_colors_clear(void)
Reset the simple colour definitions.
Definition: simple.c:58
#define mutt_debug(LEVEL,...)
Definition: logging.h:84
@ LL_NOTIFY
Log of notifications.
Definition: logging.h:45
bool notify_send(struct Notify *notify, enum NotifyType event_type, int event_subtype, void *event_data)
Send out a notification message.
Definition: notify.c:171
@ NT_COLOR_RESET
Color has been reset/removed.
Definition: notify2.h:42
@ NT_COLOR
Colour has changed, NotifyColor, EventColor.
Definition: notify_type.h:41
void quoted_colors_clear(void)
Reset the quoted-email colours.
Definition: quoted.c:57
An Event that happened to a Colour.
Definition: notify2.h:53
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ ColorNames

const struct Mapping ColorNames[]
extern

Definition at line 1 of file color.c.

◆ ColorFields

const struct Mapping ColorFields[]
extern

Mapping of colour names to their IDs.

Definition at line 1 of file command.c.

◆ ComposeColorFields

const struct Mapping ComposeColorFields[]
extern

Mapping of compose colour names to their IDs.

Definition at line 1 of file command.c.