NeoMutt  2021-02-05-666-ge300cd
Teaching an old dog new tricks
DOXYGEN
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_free (void)
 Free all the default Windows. More...
 
void rootwin_new (void)
 Create the default Windows. More...
 
void rootwin_set_size (int cols, int rows)
 Set the dimensions of the Root Window. More...
 

Variables

struct MuttWindowRootWindow
 Parent of all Windows. More...
 

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

void rootwin_free ( void  )

Free all the default Windows.

Definition at line 176 of file rootwin.c.

177 {
179 }
void mutt_window_free(struct MuttWindow **ptr)
Free a Window and its children.
Definition: mutt_window.c:200
struct MuttWindow * RootWindow
Parent of all Windows.
Definition: rootwin.c:105
+ 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 186 of file rootwin.c.

187 {
188  struct MuttWindow *win_root =
190  notify_set_parent(win_root->notify, NeoMutt->notify);
191  RootWindow = win_root;
192 
193  struct MuttWindow *win_helpbar = helpbar_new();
194  struct MuttWindow *win_alldlgs = alldialogs_new();
195  struct MuttWindow *win_msg = msgwin_new();
196 
197  const bool c_status_on_top = cs_subset_bool(NeoMutt->sub, "status_on_top");
198  if (c_status_on_top)
199  {
200  mutt_window_add_child(win_root, win_alldlgs);
201  mutt_window_add_child(win_root, win_helpbar);
202  }
203  else
204  {
205  mutt_window_add_child(win_root, win_helpbar);
206  mutt_window_add_child(win_root, win_alldlgs);
207  }
208 
209  mutt_window_add_child(win_root, win_msg);
210 
213 }
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition: helpers.c:73
struct MuttWindow * alldialogs_new(void)
Create the AllDialogs Window.
Definition: dialog.c:207
Window uses all available vertical space.
Definition: mutt_window.h:38
Parent of All Windows.
Definition: mutt_window.h:72
struct MuttWindow * helpbar_new(void)
Create the Help Bar Window.
Definition: helpbar.c:327
struct MuttWindow * msgwin_new(void)
Create the Message Window.
Definition: msgwin.c:197
Container for Accounts, Notifications.
Definition: neomutt.h:36
MuttWindow has changed, NotifyWindow, EventWindow.
Definition: notify_type.h:53
struct Notify * notify
Notifications: NotifyWindow, EventWindow.
Definition: mutt_window.h:138
static int rootwin_config_observer(struct NotifyCallback *nc)
Notification that a Config Variable has changed - Implements observer_t.
Definition: rootwin.c:112
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
Window has a fixed size.
Definition: mutt_window.h:47
static int rootwin_window_observer(struct NotifyCallback *nc)
Notification that a Window has changed - Implements observer_t.
Definition: rootwin.c:152
struct Notify * notify
Notifications handler.
Definition: neomutt.h:38
void mutt_window_add_child(struct MuttWindow *parent, struct MuttWindow *child)
Add a child to Window.
Definition: mutt_window.c:468
Config has changed, NotifyConfig, EventConfig.
Definition: notify_type.h:42
struct MuttWindow * RootWindow
Parent of all Windows.
Definition: rootwin.c:105
void notify_set_parent(struct Notify *notify, struct Notify *parent)
Set the parent notification handler.
Definition: notify.c:93
struct ConfigSubset * sub
Inherited config items.
Definition: neomutt.h:39
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
+ 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 222 of file rootwin.c.

223 {
224  if (!RootWindow)
225  return;
226 
227  bool changed = false;
228 
229  if (RootWindow->state.rows != rows)
230  {
231  RootWindow->state.rows = rows;
232  changed = true;
233  }
234 
235  if (RootWindow->state.cols != cols)
236  {
237  RootWindow->state.cols = cols;
238  changed = true;
239  }
240 
241  if (changed)
242  {
244  }
245 }
short cols
Number of columns, can be MUTT_WIN_SIZE_UNLIMITED.
Definition: mutt_window.h:60
struct WindowState state
Current state of the Window.
Definition: mutt_window.h:127
short rows
Number of rows, can be MUTT_WIN_SIZE_UNLIMITED.
Definition: mutt_window.h:61
struct MuttWindow * RootWindow
Parent of all Windows.
Definition: rootwin.c:105
void mutt_window_reflow(struct MuttWindow *win)
Resize a Window and its children.
Definition: mutt_window.c:361
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ RootWindow

struct MuttWindow* RootWindow

Parent of all Windows.

Definition at line 105 of file rootwin.c.