]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - panel/panel.priv.h
ncurses 6.2 - patch 20210313
[ncurses.git] / panel / panel.priv.h
index ce4f98937fc91c7a5f6677d8cfdb29edf3e821f5..029a4f33cd8dd1292dbeb4309754a17d53f481f4 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * 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.30 2020/09/26 18:05:32 tom 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 *, int);
 #  ifdef TRACE_TXT
-#    define USER_PTR(ptr) _nc_visbuf((const char *)ptr)
+#    define USER_PTR(ptr,n) _nc_visbuf2(n, (const char *)ptr)
 #  else
-#    define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
+#    define USER_PTR(ptr,n) _nc_my_visbuf((const char *)ptr, n)
 #  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)
@@ -89,7 +86,7 @@ struct screen;              /* forward declaration */
 #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)
@@ -160,7 +157,7 @@ struct screen;              /* forward declaration */
 ---------------------------------------------------------------------------*/
 #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);\
@@ -208,7 +205,8 @@ struct screen;              /* forward declaration */
 
 #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 */