/****************************************************************************
- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
+ * Copyright 2020 Thomas E. Dickey *
+ * Copyright 1998-2014,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************/
-/* $Id: panel.priv.h,v 1.23 2009/04/11 20:33:55 tom Exp $ */
+/* $Id: panel.priv.h,v 1.29 2020/05/24 01:40:20 anonymous.maarten Exp $ */
#ifndef NCURSES_PANEL_PRIV_H
#define NCURSES_PANEL_PRIV_H 1
+/* *INDENT-OFF* */
#if HAVE_CONFIG_H
# include <ncurses_cfg.h>
struct screen; /* forward declaration */
#include "curses.priv.h" /* includes nc_panel.h */
-#include "panel.h"
-
-#if USE_RCS_IDS
-# define MODULE_ID(id) static const char Ident[] = id;
-#else
-# define MODULE_ID(id) /*nothing*/
-#endif
+#define NCURSES_OPAQUE_PANEL 0
+#include "panel.h"
#ifdef TRACE
- extern NCURSES_EXPORT(const char *) _nc_my_visbuf (const void *);
+ extern PANEL_EXPORT(const char *) _nc_my_visbuf (const void *);
# ifdef TRACE_TXT
# define USER_PTR(ptr) _nc_visbuf((const char *)ptr)
# else
# define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
# endif
-# define returnPanel(code) TRACE_RETURN(code,panel)
+# define returnPanel(code) TRACE_RETURN1(code,panel)
- extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
- extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
- extern NCURSES_EXPORT(void) _nc_dStack (const char*, int, const PANEL*);
- extern NCURSES_EXPORT(void) _nc_Wnoutrefresh (const PANEL*);
- extern NCURSES_EXPORT(void) _nc_Touchpan (const PANEL*);
- extern NCURSES_EXPORT(void) _nc_Touchline (const PANEL*, int, int);
+ extern PANEL_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
+ extern PANEL_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
+ extern PANEL_EXPORT(void) _nc_dStack (const char*, int, const PANEL*);
+ extern PANEL_EXPORT(void) _nc_Wnoutrefresh (const PANEL*);
+ extern PANEL_EXPORT(void) _nc_Touchpan (const PANEL*);
+ extern PANEL_EXPORT(void) _nc_Touchline (const PANEL*, int, int);
# define dBug(x) _tracef x
# define dPanel(text,pan) _nc_dPanel(text,pan)
#define GetScreenHook(sp) \
struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp)
#define GetPanelHook(pan) \
- GetScreenHook(_nc_screen_of((pan)->win))
+ GetScreenHook(pan ? _nc_screen_of((pan)->win) : 0)
#define GetWindowHook(win) \
SCREEN* sp = _nc_screen_of(win); \
GetScreenHook(sp)
---------------------------------------------------------------------------*/
#define PANEL_UPDATE(pan,panstart)\
{ PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
- while(pan2) {\
+ while(pan2 && pan2->win) {\
if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
int y, ix1, ix2, iy1, iy2;\
COMPUTE_INTERSECTION(pan, pan2, ix1, ix2, iy1, iy2);\
#if NCURSES_SP_FUNCS
/* These may become later renamed and part of panel.h and the public API */
-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*);
+extern PANEL_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*);
#endif
+/* *INDENT-ON* */
#endif /* NCURSES_PANEL_PRIV_H */