/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
+ * Copyright 2020 Thomas E. Dickey *
+ * Copyright 1998-2009,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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Juergen Pfeifer 1996-1999,2008 *
****************************************************************************/
-/* $Id: panel.h,v 1.10 2006/05/27 19:49:40 tom Exp $ */
+/* $Id: panel.h,v 1.14 2020/07/04 20:38:43 tom Exp $ */
/* panel.h -- interface file for panels library */
#include <curses.h>
typedef struct panel
+#if !NCURSES_OPAQUE_PANEL
{
WINDOW *win;
struct panel *below;
struct panel *above;
NCURSES_CONST void *user;
-} PANEL;
+}
+#endif /* !NCURSES_OPAQUE_PANEL */
+PANEL;
#if defined(__cplusplus)
extern "C" {
#endif
-extern NCURSES_EXPORT(WINDOW*) panel_window (const PANEL *);
-extern NCURSES_EXPORT(void) update_panels (void);
-extern NCURSES_EXPORT(int) hide_panel (PANEL *);
-extern NCURSES_EXPORT(int) show_panel (PANEL *);
-extern NCURSES_EXPORT(int) del_panel (PANEL *);
-extern NCURSES_EXPORT(int) top_panel (PANEL *);
-extern NCURSES_EXPORT(int) bottom_panel (PANEL *);
-extern NCURSES_EXPORT(PANEL*) new_panel (WINDOW *);
-extern NCURSES_EXPORT(PANEL*) panel_above (const PANEL *);
-extern NCURSES_EXPORT(PANEL*) panel_below (const PANEL *);
-extern NCURSES_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *);
-extern NCURSES_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *);
-extern NCURSES_EXPORT(int) move_panel (PANEL *, int, int);
-extern NCURSES_EXPORT(int) replace_panel (PANEL *,WINDOW *);
-extern NCURSES_EXPORT(int) panel_hidden (const PANEL *);
+#if defined(BUILDING_PANEL)
+# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT
+#else
+# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT
+#endif
+
+#define PANEL_WRAPPED_VAR(type,name) extern PANEL_IMPEXP type NCURSES_PUBLIC_VAR(name)(void)
+
+#define PANEL_EXPORT(type) PANEL_IMPEXP type NCURSES_API
+#define PANEL_EXPORT_VAR(type) PANEL_IMPEXP type
+
+extern PANEL_EXPORT(WINDOW*) panel_window (const PANEL *);
+extern PANEL_EXPORT(void) update_panels (void);
+extern PANEL_EXPORT(int) hide_panel (PANEL *);
+extern PANEL_EXPORT(int) show_panel (PANEL *);
+extern PANEL_EXPORT(int) del_panel (PANEL *);
+extern PANEL_EXPORT(int) top_panel (PANEL *);
+extern PANEL_EXPORT(int) bottom_panel (PANEL *);
+extern PANEL_EXPORT(PANEL*) new_panel (WINDOW *);
+extern PANEL_EXPORT(PANEL*) panel_above (const PANEL *);
+extern PANEL_EXPORT(PANEL*) panel_below (const PANEL *);
+extern PANEL_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *);
+extern PANEL_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *);
+extern PANEL_EXPORT(int) move_panel (PANEL *, int, int);
+extern PANEL_EXPORT(int) replace_panel (PANEL *,WINDOW *);
+extern PANEL_EXPORT(int) panel_hidden (const PANEL *);
+
+#if NCURSES_SP_FUNCS
+extern PANEL_EXPORT(PANEL *) ground_panel(SCREEN *);
+extern PANEL_EXPORT(PANEL *) ceiling_panel(SCREEN *);
+
+extern PANEL_EXPORT(void) NCURSES_SP_NAME(update_panels) (SCREEN*);
+#endif
#if defined(__cplusplus)
}