150276Speter/****************************************************************************
2166124Srafan * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
350276Speter *                                                                          *
450276Speter * Permission is hereby granted, free of charge, to any person obtaining a  *
550276Speter * copy of this software and associated documentation files (the            *
650276Speter * "Software"), to deal in the Software without restriction, including      *
750276Speter * without limitation the rights to use, copy, modify, merge, publish,      *
850276Speter * distribute, distribute with modifications, sublicense, and/or sell       *
950276Speter * copies of the Software, and to permit persons to whom the Software is    *
1050276Speter * furnished to do so, subject to the following conditions:                 *
1150276Speter *                                                                          *
1250276Speter * The above copyright notice and this permission notice shall be included  *
1350276Speter * in all copies or substantial portions of the Software.                   *
1450276Speter *                                                                          *
1550276Speter * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
1650276Speter * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
1750276Speter * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
1850276Speter * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
1950276Speter * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
2050276Speter * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
2150276Speter * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
2250276Speter *                                                                          *
2350276Speter * Except as contained in this notice, the name(s) of the above copyright   *
2450276Speter * holders shall not be used in advertising or otherwise to promote the     *
2550276Speter * sale, use or other dealings in this Software without prior written       *
2650276Speter * authorization.                                                           *
2750276Speter ****************************************************************************/
2850276Speter
2950276Speter/****************************************************************************
3050276Speter *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
3150276Speter *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
3250276Speter ****************************************************************************/
3350276Speter
3450276Speter/* panel.c -- implementation of panels library, some core routines */
3550276Speter#include "panel.priv.h"
3650276Speter
37166124SrafanMODULE_ID("$Id: panel.c,v 1.23 2005/02/19 18:04:31 tom Exp $")
3850276Speter
39166124Srafan/*+-------------------------------------------------------------------------
40166124Srafan	_nc_retrace_panel (pan)
41166124Srafan--------------------------------------------------------------------------*/
4250276Speter#ifdef TRACE
43166124SrafanNCURSES_EXPORT(PANEL *)
44166124Srafan_nc_retrace_panel(PANEL * pan)
45166124Srafan{
46166124Srafan  T((T_RETURN("%p"), pan));
47166124Srafan  return pan;
48166124Srafan}
49166124Srafan#endif
50166124Srafan
51166124Srafan/*+-------------------------------------------------------------------------
52166124Srafan	_nc_my_visbuf(ptr)
53166124Srafan--------------------------------------------------------------------------*/
54166124Srafan#ifdef TRACE
5550276Speter#ifndef TRACE_TXT
5676726SpeterNCURSES_EXPORT(const char *)
57166124Srafan_nc_my_visbuf(const void *ptr)
5850276Speter{
59166124Srafan  char temp[32];
60166124Srafan
61166124Srafan  if (ptr != 0)
62166124Srafan    sprintf(temp, "ptr:%p", ptr);
63166124Srafan  else
64166124Srafan    strcpy(temp, "<null>");
65166124Srafan  return _nc_visbuf(temp);
6650276Speter}
6750276Speter#endif
6850276Speter#endif
6950276Speter
7050276Speter/*+-------------------------------------------------------------------------
7150276Speter	dPanel(text,pan)
7250276Speter--------------------------------------------------------------------------*/
7350276Speter#ifdef TRACE
7476726SpeterNCURSES_EXPORT(void)
75166124Srafan_nc_dPanel(const char *text, const PANEL * pan)
7650276Speter{
77166124Srafan  _tracef("%s id=%s b=%s a=%s y=%d x=%d",
78166124Srafan	  text, USER_PTR(pan->user),
79166124Srafan	  (pan->below) ? USER_PTR(pan->below->user) : "--",
80166124Srafan	  (pan->above) ? USER_PTR(pan->above->user) : "--",
81166124Srafan	  PSTARTY(pan), PSTARTX(pan));
8250276Speter}
8350276Speter#endif
8450276Speter
8550276Speter/*+-------------------------------------------------------------------------
8650276Speter	dStack(fmt,num,pan)
8750276Speter--------------------------------------------------------------------------*/
8850276Speter#ifdef TRACE
8976726SpeterNCURSES_EXPORT(void)
90166124Srafan_nc_dStack(const char *fmt, int num, const PANEL * pan)
9150276Speter{
9250276Speter  char s80[80];
9350276Speter
94166124Srafan  sprintf(s80, fmt, num, pan);
95166124Srafan  _tracef("%s b=%s t=%s", s80,
96166124Srafan	  (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
97166124Srafan	  (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
98166124Srafan  if (pan)
9950276Speter    _tracef("pan id=%s", USER_PTR(pan->user));
10050276Speter  pan = _nc_bottom_panel;
101166124Srafan  while (pan)
10250276Speter    {
103166124Srafan      dPanel("stk", pan);
10450276Speter      pan = pan->above;
10550276Speter    }
10650276Speter}
10750276Speter#endif
10850276Speter
10950276Speter/*+-------------------------------------------------------------------------
11050276Speter	Wnoutrefresh(pan) - debugging hook for wnoutrefresh
11150276Speter--------------------------------------------------------------------------*/
11250276Speter#ifdef TRACE
11376726SpeterNCURSES_EXPORT(void)
114166124Srafan_nc_Wnoutrefresh(const PANEL * pan)
11550276Speter{
116166124Srafan  dPanel("wnoutrefresh", pan);
11750276Speter  wnoutrefresh(pan->win);
11850276Speter}
11950276Speter#endif
12050276Speter
12150276Speter/*+-------------------------------------------------------------------------
12250276Speter	Touchpan(pan)
12350276Speter--------------------------------------------------------------------------*/
12450276Speter#ifdef TRACE
12576726SpeterNCURSES_EXPORT(void)
126166124Srafan_nc_Touchpan(const PANEL * pan)
12750276Speter{
128166124Srafan  dPanel("Touchpan", pan);
12950276Speter  touchwin(pan->win);
13050276Speter}
13150276Speter#endif
13250276Speter
13350276Speter/*+-------------------------------------------------------------------------
13450276Speter	Touchline(pan,start,count)
13550276Speter--------------------------------------------------------------------------*/
13650276Speter#ifdef TRACE
13776726SpeterNCURSES_EXPORT(void)
138166124Srafan_nc_Touchline(const PANEL * pan, int start, int count)
13950276Speter{
14050276Speter  char s80[80];
141166124Srafan
142166124Srafan  sprintf(s80, "Touchline s=%d c=%d", start, count);
143166124Srafan  dPanel(s80, pan);
144166124Srafan  touchline(pan->win, start, count);
14550276Speter}
14650276Speter#endif
14750276Speter
14856639Speter#ifndef TRACE
14956639Speter#  ifndef __GNUC__
15056639Speter     /* Some C compilers need something defined in a source file */
151166124Srafanextern void _nc_dummy_panel(void);
152166124Srafanvoid
153166124Srafan_nc_dummy_panel(void)
154166124Srafan{
155166124Srafan}
15656639Speter#  endif
15750276Speter#endif
158