NeoMutt  2025-12-11-911-gd8d604
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
simple.c File Reference

Simple colour. More...

#include "config.h"
#include <stdbool.h>
#include <stddef.h>
#include "mutt/lib.h"
#include "core/lib.h"
#include "gui/lib.h"
#include "attr.h"
#include "color.h"
#include "commands.h"
#include "debug.h"
#include "module_data.h"
#include "notify2.h"
#include "simple2.h"
+ Include dependency graph for simple.c:

Go to the source code of this file.

Functions

void simple_colors_init (struct AttrColor *simple_colors)
 Initialise the simple colour definitions.
 
void simple_colors_reset (struct AttrColor *simple_colors)
 Reset the simple colour definitions.
 
void simple_colors_cleanup (struct AttrColor *simple_colors)
 Cleanup the simple colour definitions.
 
struct AttrColorsimple_color_get (enum ColorId cid)
 Get the colour of an object by its ID.
 
bool simple_color_is_set (enum ColorId cid)
 Is the object coloured?
 
struct AttrColorsimple_color_set (enum ColorId cid, struct AttrColor *ac_val)
 Set the colour of a simple object.
 
void simple_color_reset (enum ColorId cid)
 Clear the colour of a simple object.
 

Detailed Description

Simple colour.

Authors
  • Richard Russon

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 simple.c.

Function Documentation

◆ simple_colors_init()

void simple_colors_init ( struct AttrColor * simple_colors)

Initialise the simple colour definitions.

Parameters
simple_colorsArray of simple colours to initialise

Definition at line 48 of file simple.c.

49{
50 for (int i = 0; i < MT_COLOR_MAX; i++)
51 {
52 simple_colors[i].fg.color = COLOR_DEFAULT;
53 simple_colors[i].bg.color = COLOR_DEFAULT;
54 }
55
56 // Set some defaults
57 color_debug(LL_DEBUG5, "init indicator, markers, etc\n");
58 simple_colors[MT_COLOR_BOLD].attrs = A_BOLD;
59 simple_colors[MT_COLOR_INDICATOR].attrs = A_REVERSE;
60 simple_colors[MT_COLOR_ITALIC].attrs = A_ITALIC;
61 simple_colors[MT_COLOR_MARKERS].attrs = A_REVERSE;
62 simple_colors[MT_COLOR_SEARCH].attrs = A_REVERSE;
63 simple_colors[MT_COLOR_STATUS].attrs = A_REVERSE;
64 simple_colors[MT_COLOR_STRIPE_EVEN].attrs = A_BOLD;
65 simple_colors[MT_COLOR_UNDERLINE].attrs = A_UNDERLINE;
66}
#define COLOR_DEFAULT
Definition color.h:102
@ MT_COLOR_MARKERS
Pager: markers, line continuation.
Definition color.h:51
@ MT_COLOR_MAX
Definition color.h:97
@ MT_COLOR_STATUS
Status bar (takes a pattern)
Definition color.h:78
@ MT_COLOR_INDICATOR
Selected item in list.
Definition color.h:49
@ MT_COLOR_STRIPE_EVEN
Stripes: even lines of the Help Page.
Definition color.h:79
@ MT_COLOR_BOLD
Bold text.
Definition color.h:40
@ MT_COLOR_SEARCH
Pager: search matches.
Definition color.h:67
@ MT_COLOR_ITALIC
Italic text.
Definition color.h:50
@ MT_COLOR_UNDERLINE
Underlined text.
Definition color.h:83
static int color_debug(enum LogLevel level, const char *format,...)
Definition debug.h:51
@ LL_DEBUG5
Log at debug level 5.
Definition logging2.h:49
#define A_ITALIC
Definition mutt_curses.h:48
struct ColorElement bg
Background colour.
Definition attr.h:67
struct ColorElement fg
Foreground colour.
Definition attr.h:66
int attrs
Text attributes, e.g. A_BOLD.
Definition attr.h:68
color_t color
Colour.
Definition attr.h:56
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_colors_reset()

void simple_colors_reset ( struct AttrColor * simple_colors)

Reset the simple colour definitions.

Parameters
simple_colorsArray of simple colours to reset

Definition at line 72 of file simple.c.

73{
74 color_debug(LL_DEBUG5, "reset defs\n");
75 for (size_t i = 0; i < MT_COLOR_MAX; i++)
76 {
77 attr_color_clear(&simple_colors[i]);
78 }
79 simple_colors_init(simple_colors);
80}
void attr_color_clear(struct AttrColor *ac)
Free the contents of an AttrColor.
Definition attr.c:47
void simple_colors_init(struct AttrColor *simple_colors)
Initialise the simple colour definitions.
Definition simple.c:48
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_colors_cleanup()

void simple_colors_cleanup ( struct AttrColor * simple_colors)

Cleanup the simple colour definitions.

Parameters
simple_colorsArray of simple colours to cleanup

Definition at line 86 of file simple.c.

87{
88 simple_colors_reset(simple_colors);
89}
void simple_colors_reset(struct AttrColor *simple_colors)
Reset the simple colour definitions.
Definition simple.c:72
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_color_get()

struct AttrColor * simple_color_get ( enum ColorId cid)

Get the colour of an object by its ID.

Parameters
cidColour ID, e.g. MT_COLOR_SEARCH
Return values
ptrAttrColor of the object
Note
Do not free the returned object

Definition at line 98 of file simple.c.

99{
100 if (cid >= MT_COLOR_MAX)
101 {
102 mutt_debug(LL_DEBUG1, "color overflow %d/%d\n", cid, MT_COLOR_MAX);
103 return NULL;
104 }
105 if (cid <= MT_COLOR_NONE)
106 {
107 mutt_debug(LL_DEBUG1, "color underflow %d/%d\n", cid, MT_COLOR_NONE);
108 return NULL;
109 }
110
112 return &mod_data->simple_colors[cid];
113}
@ MT_COLOR_NONE
No colour.
Definition color.h:36
#define mutt_debug(LEVEL,...)
Definition logging2.h:91
@ LL_DEBUG1
Log at debug level 1.
Definition logging2.h:45
@ MODULE_ID_COLOR
ModuleColor, Color
Definition module_api.h:53
void * neomutt_get_module_data(struct NeoMutt *n, enum ModuleId id)
Get the private data for a Module.
Definition neomutt.c:663
Color private Module data.
Definition module_data.h:35
struct AttrColor simple_colors[MT_COLOR_MAX]
Array of Simple colours.
Definition module_data.h:42
Container for Accounts, Notifications.
Definition neomutt.h:41
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_color_is_set()

bool simple_color_is_set ( enum ColorId cid)

Is the object coloured?

Parameters
cidColour ID, e.g. MT_COLOR_SEARCH
Return values
trueYes, a 'color' command has been used on this object

Definition at line 120 of file simple.c.

121{
123}
bool attr_color_is_set(const struct AttrColor *ac)
Is the object coloured?
Definition attr.c:178
struct AttrColor * simple_color_get(enum ColorId cid)
Get the colour of an object by its ID.
Definition simple.c:98
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_color_set()

struct AttrColor * simple_color_set ( enum ColorId cid,
struct AttrColor * ac_val )

Set the colour of a simple object.

Parameters
cidColour ID, e.g. MT_COLOR_SEARCH
ac_valColour value to use
Return values
ptrColour

Definition at line 131 of file simple.c.

132{
133 struct AttrColor *ac = simple_color_get(cid);
134 if (!ac)
135 return NULL;
136
137 attr_color_overwrite(ac, ac_val);
138
139 struct Buffer *buf = buf_pool_get();
140 get_colorid_name(cid, buf);
141 color_debug(LL_DEBUG5, "NT_COLOR_SET: %s\n", buf_string(buf));
142 buf_pool_release(&buf);
143
145 struct EventColor ev_c = { cid, NULL };
147
148 return ac;
149}
void attr_color_overwrite(struct AttrColor *ac_old, const struct AttrColor *ac_new)
Update an AttrColor in-place.
Definition attr.c:394
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition buffer.h:96
void get_colorid_name(unsigned int cid, struct Buffer *buf)
Get the name of a Colour ID.
Definition commands.c:128
bool notify_send(struct Notify *notify, enum NotifyType event_type, int event_subtype, void *event_data)
Send out a notification message.
Definition notify.c:173
@ NT_COLOR_SET
Color has been set.
Definition notify2.h:40
@ NT_COLOR
Colour has changed, NotifyColor, EventColor.
Definition notify_type.h:41
struct Buffer * buf_pool_get(void)
Get a Buffer from the pool.
Definition pool.c:91
void buf_pool_release(struct Buffer **ptr)
Return a Buffer to the pool.
Definition pool.c:111
A curses colour and its attributes.
Definition attr.h:65
String manipulation buffer.
Definition buffer.h:36
struct Notify * colors_notify
Notifications: ColorId, EventColor.
Definition module_data.h:40
An Event that happened to a Colour.
Definition notify2.h:52
enum ColorId cid
Colour ID that has changed.
Definition notify2.h:53
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_color_reset()

void simple_color_reset ( enum ColorId cid)

Clear the colour of a simple object.

Parameters
cidColour ID, e.g. MT_COLOR_SEARCH

Definition at line 155 of file simple.c.

156{
157 struct AttrColor *ac = simple_color_get(cid);
158 if (!ac)
159 return;
160
161 struct Buffer *buf = buf_pool_get();
162 get_colorid_name(cid, buf);
163 color_debug(LL_DEBUG5, "NT_COLOR_RESET: %s\n", buf_string(buf));
164 buf_pool_release(&buf);
165
167
169 struct EventColor ev_c = { cid, ac };
171}
@ NT_COLOR_RESET
Color has been reset/removed.
Definition notify2.h:41
+ Here is the call graph for this function:
+ Here is the caller graph for this function: