Thanks to visit codestin.com
Credit goes to code.neomutt.org

NeoMutt  2025-12-11-189-gceedb6
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
rootwin.h File Reference

Root Window. More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void rootwin_cleanup (void)
 Free all the default Windows.
 
void rootwin_new (void)
 Create the default Windows.
 
void rootwin_set_size (int cols, int rows)
 Set the dimensions of the Root Window.
 

Variables

struct MuttWindowRootWindow
 Parent of all Windows.
 

Detailed Description

Root Window.

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 rootwin.h.

Function Documentation

◆ rootwin_cleanup()

void rootwin_cleanup ( void )

Free all the default Windows.

Definition at line 209 of file rootwin.c.

210{
211 AllDialogsWindow = NULL;
212 MessageContainer = NULL;
214}
struct MuttWindow * AllDialogsWindow
Parent of all Dialogs.
Definition dialog.c:80
struct MuttWindow * MessageContainer
Window acting as a stack for the message windows.
Definition msgcont.c:40
void mutt_window_free(struct MuttWindow **ptr)
Free a Window and its children.
struct MuttWindow * RootWindow
Parent of all Windows.
Definition rootwin.c:106
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rootwin_new()

void rootwin_new ( void )

Create the default Windows.

Create the Help, Index, Status, Message and Sidebar Windows.

Definition at line 221 of file rootwin.c.

222{
224 MUTT_WIN_SIZE_FIXED, 0, 0);
226 RootWindow = win_root;
227
228 struct MuttWindow *win_helpbar = helpbar_new();
229 struct MuttWindow *win_alldlgs = alldialogs_new();
230
231 const bool c_status_on_top = cs_subset_bool(NeoMutt->sub, "status_on_top");
232 if (c_status_on_top)
233 {
234 mutt_window_add_child(win_root, win_alldlgs);
235 mutt_window_add_child(win_root, win_helpbar);
236 }
237 else
238 {
239 mutt_window_add_child(win_root, win_helpbar);
240 mutt_window_add_child(win_root, win_alldlgs);
241 }
242
243 struct MuttWindow *win_cont = msgcont_new();
244 struct MuttWindow *win_msg = msgwin_new(false);
245 mutt_window_add_child(win_cont, win_msg);
246 mutt_window_add_child(win_root, win_cont);
247
251}
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition helpers.c:47
struct MuttWindow * alldialogs_new(void)
Create the AllDialogs Window.
Definition dialog.c:212
static int rootwin_config_observer(struct NotifyCallback *nc)
Notification that a Config Variable has changed - Implements observer_t -.
Definition rootwin.c:113
static int rootwin_resize_observer(struct NotifyCallback *nc)
Notification that the terminal has been resized - Implements observer_t -.
Definition rootwin.c:160
static int rootwin_window_observer(struct NotifyCallback *nc)
Notification that a Window has changed - Implements observer_t -.
Definition rootwin.c:181
struct MuttWindow * helpbar_new(void)
Create the Help Bar Window.
Definition helpbar.c:316
struct MuttWindow * msgcont_new(void)
Create a new Message Container.
Definition msgcont.c:46
struct MuttWindow * msgwin_new(bool interactive)
Create the Message Window.
Definition msgwin.c:370
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 notify_set_parent(struct Notify *notify, struct Notify *parent)
Set the parent notification handler.
Definition notify.c:95
void mutt_window_add_child(struct MuttWindow *parent, struct MuttWindow *child)
Add a child to Window.
struct MuttWindow * mutt_window_new(enum WindowType type, enum MuttWindowOrientation orient, enum MuttWindowSize size, int cols, int rows)
Create a new Window.
@ WT_ROOT
Parent of All Windows.
Definition mutt_window.h:73
@ MUTT_WIN_ORIENT_VERTICAL
Window uses all available vertical space.
Definition mutt_window.h:39
@ MUTT_WIN_SIZE_FIXED
Window has a fixed size.
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
@ NT_RESIZE
Window has been resized.
Definition notify_type.h:52
struct Notify * notify
Notifications: NotifyConfig, EventConfig.
Definition subset.h:51
struct Notify * notify
Notifications: NotifyWindow, EventWindow.
Container for Accounts, Notifications.
Definition neomutt.h:128
struct Notify * notify_resize
Window resize notifications handler.
Definition neomutt.h:131
struct Notify * notify
Notifications handler.
Definition neomutt.h:130
struct ConfigSubset * sub
Inherited config items.
Definition neomutt.h:134
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rootwin_set_size()

void rootwin_set_size ( int cols,
int rows )

Set the dimensions of the Root Window.

Parameters
rowsNumber of rows on the screen
colsNumber of columns on the screen

This function is called after NeoMutt receives a SIGWINCH signal.

Definition at line 260 of file rootwin.c.

261{
262 if (!RootWindow)
263 return;
264
265 bool changed = false;
266
267 if (RootWindow->state.rows != rows)
268 {
269 RootWindow->state.rows = rows;
270 changed = true;
271 }
272
273 if (RootWindow->state.cols != cols)
274 {
275 RootWindow->state.cols = cols;
276 changed = true;
277 }
278
279 if (changed)
280 {
282 }
283}
void mutt_window_reflow(struct MuttWindow *win)
Resize a Window and its children.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ RootWindow

struct MuttWindow* RootWindow
extern

Parent of all Windows.

Definition at line 106 of file rootwin.c.