NeoMutt  2024-11-14-34-g5aaf0d
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
simple.c File Reference

Simple Dialog. More...

#include "config.h"
#include <stdbool.h>
#include "mutt/lib.h"
#include "config/lib.h"
#include "core/lib.h"
#include "simple.h"
#include "menu/lib.h"
#include "dialog.h"
#include "mutt_window.h"
#include "sbar.h"
+ Include dependency graph for simple.c:

Go to the source code of this file.

Functions

static int simple_config_observer (struct NotifyCallback *nc)
 Notification that a Config Variable has changed - Implements observer_t -.
 
static int simple_window_observer (struct NotifyCallback *nc)
 Notification that a Window has changed - Implements observer_t -.
 
struct SimpleDialogWindows simple_dialog_new (enum MenuType mtype, enum WindowType wtype, const struct Mapping *help_data)
 Create a simple index Dialog.
 
void simple_dialog_free (struct MuttWindow **ptr)
 Destroy a simple index Dialog.
 

Detailed Description

Simple Dialog.

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_dialog_new()

struct SimpleDialogWindows simple_dialog_new ( enum MenuType  mtype,
enum WindowType  wtype,
const struct Mapping help_data 
)

Create a simple index Dialog.

Parameters
mtypeMenu type, e.g. MENU_ALIAS
wtypeDialog type, e.g. WT_DLG_ALIAS
help_dataData for the Help Bar
Return values
objSimpleDialogWindows Tuple containing Dialog, SimpleBar and Menu pointers

Definition at line 132 of file simple.c.

134{
138 dlg->help_menu = mtype;
139 dlg->help_data = help_data;
140
141 struct MuttWindow *win_menu = menu_window_new(mtype, NeoMutt->sub);
142 dlg->wdata = win_menu->wdata;
143
144 struct MuttWindow *win_sbar = sbar_new();
145 const bool c_status_on_top = cs_subset_bool(NeoMutt->sub, "status_on_top");
146 if (c_status_on_top)
147 {
148 mutt_window_add_child(dlg, win_sbar);
149 mutt_window_add_child(dlg, win_menu);
150 }
151 else
152 {
153 mutt_window_add_child(dlg, win_menu);
154 mutt_window_add_child(dlg, win_sbar);
155 }
156
159 dialog_push(dlg);
160
161 return (struct SimpleDialogWindows) { dlg, win_sbar, win_menu->wdata };
162}
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition: helpers.c:47
void dialog_push(struct MuttWindow *dlg)
Display a Window to the user.
Definition: dialog.c:109
static int simple_config_observer(struct NotifyCallback *nc)
Notification that a Config Variable has changed - Implements observer_t -.
Definition: simple.c:80
static int simple_window_observer(struct NotifyCallback *nc)
Notification that a Window has changed - Implements observer_t -.
Definition: simple.c:104
struct MuttWindow * menu_window_new(enum MenuType type, struct ConfigSubset *sub)
Create a new Menu Window.
Definition: window.c:140
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:191
void mutt_window_add_child(struct MuttWindow *parent, struct MuttWindow *child)
Add a child to Window.
Definition: mutt_window.c:445
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:181
@ 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_MAXIMISE
Window wants as much space as possible.
Definition: mutt_window.h:48
@ NT_WINDOW
MuttWindow has changed, NotifyWindow, EventWindow.
Definition: notify_type.h:57
@ NT_CONFIG
Config has changed, NotifyConfig, EventConfig.
Definition: notify_type.h:43
struct MuttWindow * sbar_new(void)
Add the Simple Bar (status)
Definition: sbar.c:203
struct Notify * notify
Notifications: NotifyConfig, EventConfig.
Definition: subset.h:52
const struct Mapping * help_data
Data for the Help Bar.
Definition: mutt_window.h:141
void * wdata
Private data.
Definition: mutt_window.h:144
struct Notify * notify
Notifications: NotifyWindow, EventWindow.
Definition: mutt_window.h:137
int help_menu
Menu for key bindings, e.g. MENU_PAGER.
Definition: mutt_window.h:140
Container for Accounts, Notifications.
Definition: neomutt.h:42
struct ConfigSubset * sub
Inherited config items.
Definition: neomutt.h:46
Tuple for the results of simple_dialog_new()
Definition: simple.h:35
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simple_dialog_free()

void simple_dialog_free ( struct MuttWindow **  ptr)

Destroy a simple index Dialog.

Parameters
ptrDialog Window to destroy

Definition at line 168 of file simple.c.

169{
170 if (!ptr || !*ptr)
171 return;
172
173 dialog_pop();
174 mutt_window_free(ptr);
175}
void dialog_pop(void)
Hide a Window from the user.
Definition: dialog.c:142
void mutt_window_free(struct MuttWindow **ptr)
Free a Window and its children.
Definition: mutt_window.c:201
+ Here is the call graph for this function:
+ Here is the caller graph for this function: