NeoMutt  2023-03-22-27-g3cb248
Teaching an old dog new tricks
DOXYGEN
sbar.c File Reference

Simple Bar (status) More...

#include "config.h"
#include "mutt/lib.h"
#include "core/lib.h"
#include "lib.h"
#include "color/lib.h"
+ Include dependency graph for sbar.c:

Go to the source code of this file.

Data Structures

struct  SBarPrivateData
 Private data for the Simple Bar. More...
 

Functions

static int sbar_recalc (struct MuttWindow *win)
 Recalculate the Window data - Implements MuttWindow::recalc() -. More...
 
static int sbar_repaint (struct MuttWindow *win)
 Repaint the Window - Implements MuttWindow::repaint() -. More...
 
static int sbar_color_observer (struct NotifyCallback *nc)
 Notification that a Color has changed - Implements observer_t -. More...
 
static int sbar_window_observer (struct NotifyCallback *nc)
 Notification that a Window has changed - Implements observer_t -. More...
 
static void sbar_wdata_free (struct MuttWindow *win, void **ptr)
 Free the private data attached to the MuttWindow - Implements MuttWindow::wdata_free() -. More...
 
static struct SBarPrivateDatasbar_data_new (void)
 Free the private data attached to the MuttWindow. More...
 
struct MuttWindowsbar_new (void)
 Add the Simple Bar (status) More...
 
void sbar_set_title (struct MuttWindow *win, const char *title)
 Set the title for the Simple Bar. More...
 

Detailed Description

Simple Bar (status)

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

Function Documentation

◆ sbar_data_new()

static struct SBarPrivateData * sbar_data_new ( void  )
static

Free the private data attached to the MuttWindow.

Return values
ptrNew SBar

Definition at line 189 of file sbar.c.

190{
191 struct SBarPrivateData *sbar_data = mutt_mem_calloc(1, sizeof(struct SBarPrivateData));
192
193 return sbar_data;
194}
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Definition: memory.c:50
Private data for the Simple Bar.
Definition: sbar.c:73
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sbar_new()

struct MuttWindow * sbar_new ( void  )

Add the Simple Bar (status)

Return values
ptrNew Simple Bar

Definition at line 200 of file sbar.c.

201{
205
206 win_sbar->wdata = sbar_data_new();
207 win_sbar->wdata_free = sbar_wdata_free;
208 win_sbar->recalc = sbar_recalc;
209 win_sbar->repaint = sbar_repaint;
210
213
214 return win_sbar;
215}
static int sbar_color_observer(struct NotifyCallback *nc)
Notification that a Color has changed - Implements observer_t -.
Definition: sbar.c:114
static int sbar_window_observer(struct NotifyCallback *nc)
Notification that a Window has changed - Implements observer_t -.
Definition: sbar.c:146
static int sbar_recalc(struct MuttWindow *win)
Recalculate the Window data - Implements MuttWindow::recalc() -.
Definition: sbar.c:80
static int sbar_repaint(struct MuttWindow *win)
Repaint the Window - Implements MuttWindow::repaint() -.
Definition: sbar.c:93
static void sbar_wdata_free(struct MuttWindow *win, void **ptr)
Free the private data attached to the MuttWindow - Implements MuttWindow::wdata_free() -.
Definition: sbar.c:176
bool notify_observer_add(struct Notify *notify, enum NotifyType type, observer_t callback, void *global_data)
Add an observer to an object.
Definition: notify.c:189
struct MuttWindow * mutt_window_new(enum WindowType type, enum MuttWindowOrientation orient, enum MuttWindowSize size, int cols, int rows)
Create a new Window.
Definition: mutt_window.c:180
@ WT_STATUS_BAR
Status Bar containing extra info about the Index/Pager/etc.
Definition: mutt_window.h:102
@ MUTT_WIN_ORIENT_VERTICAL
Window uses all available vertical space.
Definition: mutt_window.h:38
#define MUTT_WIN_SIZE_UNLIMITED
Use as much space as possible.
Definition: mutt_window.h:52
@ MUTT_WIN_SIZE_FIXED
Window has a fixed size.
Definition: mutt_window.h:47
@ NT_WINDOW
MuttWindow has changed, NotifyWindow, EventWindow.
Definition: notify_type.h:55
@ NT_COLOR
Colour has changed, NotifyColor, EventColor.
Definition: notify_type.h:41
static struct SBarPrivateData * sbar_data_new(void)
Free the private data attached to the MuttWindow.
Definition: sbar.c:189
int(* repaint)(struct MuttWindow *win)
Definition: mutt_window.h:181
void * wdata
Private data.
Definition: mutt_window.h:145
struct Notify * notify
Notifications: NotifyWindow, EventWindow.
Definition: mutt_window.h:138
int(* recalc)(struct MuttWindow *win)
Definition: mutt_window.h:170
void(* wdata_free)(struct MuttWindow *win, void **ptr)
Definition: mutt_window.h:159
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:

◆ sbar_set_title()

void sbar_set_title ( struct MuttWindow win,
const char *  title 
)

Set the title for the Simple Bar.

Parameters
winWindow of the Simple Bar
titleString to set
Note
The title string will be copied

Definition at line 224 of file sbar.c.

225{
226 if (!win || !win->wdata || (win->type != WT_STATUS_BAR))
227 return;
228
229 struct SBarPrivateData *priv = win->wdata;
230 mutt_str_replace(&priv->display, title);
231
232 win->actions |= WA_REPAINT;
233}
char * mutt_str_replace(char **p, const char *s)
Replace one string with another.
Definition: string.c:326
#define WA_REPAINT
Redraw the contents of the Window.
Definition: mutt_window.h:111
WindowActionFlags actions
Actions to be performed, e.g. WA_RECALC.
Definition: mutt_window.h:132
enum WindowType type
Window type, e.g. WT_SIDEBAR.
Definition: mutt_window.h:144
char * display
Cached display string.
Definition: sbar.c:74
+ Here is the call graph for this function:
+ Here is the caller graph for this function: