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

Dump the details of the nested Windows. More...

#include "config.h"
#include <stdbool.h>
#include <stddef.h>
#include "mutt/lib.h"
#include "core/lib.h"
#include "gui/lib.h"
#include "gui/module_data.h"
#include "lib.h"
+ Include dependency graph for window.c:

Go to the source code of this file.

Functions

static void win_dump (struct MuttWindow *win, int indent)
 Recursively dump window structure.
 
void debug_win_dump (void)
 Dump all windows to debug output.
 

Variables

static struct MuttWindowWinFocus = NULL
 The Window that is currently focused.
 

Detailed Description

Dump the details of the nested Windows.

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

Function Documentation

◆ win_dump()

static void win_dump ( struct MuttWindow * win,
int indent )
static

Recursively dump window structure.

Parameters
winWindow to dump
indentIndentation level

Definition at line 49 of file window.c.

50{
51 bool visible = mutt_window_is_visible(win);
52
53 mutt_debug(LL_DEBUG1, "%*s%s[%d,%d] %s-%c \033[1;33m%s\033[0m (%d,%d)%s%s\n",
54 indent, "", visible ? "✓" : "✗\033[1;30m", win->state.col_offset,
56 (win->orient == MUTT_WIN_ORIENT_VERTICAL) ? 'V' : 'H',
57 mutt_window_win_name(win), win->state.cols, win->state.rows,
58 visible ? "" : "\033[0m",
59 (win == WinFocus) ? " <-- \033[1;31mFOCUS\033[0m" : "");
60
61 struct MuttWindow **wp = NULL;
62 ARRAY_FOREACH(wp, &win->children)
63 {
64 win_dump(*wp, indent + 4);
65 }
66}
#define ARRAY_FOREACH(elem, head)
Iterate over all elements of the array.
Definition array.h:223
const char * name_window_size(const struct MuttWindow *win)
Get the name of a window size.
Definition names.c:418
static void win_dump(struct MuttWindow *win, int indent)
Recursively dump window structure.
Definition window.c:49
static struct MuttWindow * WinFocus
The Window that is currently focused.
Definition window.c:42
#define mutt_debug(LEVEL,...)
Definition logging2.h:91
@ LL_DEBUG1
Log at debug level 1.
Definition logging2.h:45
bool mutt_window_is_visible(struct MuttWindow *win)
Is the Window visible?
const char * mutt_window_win_name(const struct MuttWindow *win)
Get the name of a Window.
@ MUTT_WIN_ORIENT_VERTICAL
Window uses all available vertical space.
Definition mutt_window.h:38
struct MuttWindowArray children
Children Windows.
struct WindowState state
Current state of the Window.
enum MuttWindowOrientation orient
Which direction the Window will expand.
short cols
Number of columns, can be MUTT_WIN_SIZE_UNLIMITED.
Definition mutt_window.h:60
short row_offset
Absolute on-screen row.
Definition mutt_window.h:63
short col_offset
Absolute on-screen column.
Definition mutt_window.h:62
short rows
Number of rows, can be MUTT_WIN_SIZE_UNLIMITED.
Definition mutt_window.h:61
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ debug_win_dump()

void debug_win_dump ( void )

Dump all windows to debug output.

Definition at line 116 of file window.c.

117{
119 struct MuttWindow *win_root = gui_data ? gui_data->root_window : NULL;
120
122 mutt_debug(LL_DEBUG1, "\n");
123 win_dump(win_root, 0);
124 mutt_debug(LL_DEBUG1, "\n");
125#ifdef DEBUG_SHOW_SERIALISE
126 struct Buffer buf = buf_pool_get();
127 win_serialise(win_root, buf);
128 mutt_debug(LL_DEBUG1, "%s\n", buf_string(buf));
129 buf_pool_release(&buf);
130#endif
131 WinFocus = NULL;
132}
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition buffer.h:96
@ MODULE_ID_GUI
ModuleGui, Graphical code
Definition module_api.h:45
struct MuttWindow * window_get_focus(void)
Get the currently focused Window.
void * neomutt_get_module_data(struct NeoMutt *n, enum ModuleId id)
Get the private data for a Module.
Definition neomutt.c:663
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
String manipulation buffer.
Definition buffer.h:36
Gui private Module data.
Definition module_data.h:32
struct MuttWindow * root_window
Parent of all Windows.
Definition module_data.h:41
Container for Accounts, Notifications.
Definition neomutt.h:41
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ WinFocus

struct MuttWindow* WinFocus = NULL
static

The Window that is currently focused.

The focus spans from the Root Window through MuttWindow.focus

Definition at line 42 of file window.c.