10e3d5408SPeter Wemm /**************************************************************************** 24a1a9510SRong-En Fan * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. * 30e3d5408SPeter Wemm * * 40e3d5408SPeter Wemm * Permission is hereby granted, free of charge, to any person obtaining a * 50e3d5408SPeter Wemm * copy of this software and associated documentation files (the * 60e3d5408SPeter Wemm * "Software"), to deal in the Software without restriction, including * 70e3d5408SPeter Wemm * without limitation the rights to use, copy, modify, merge, publish, * 80e3d5408SPeter Wemm * distribute, distribute with modifications, sublicense, and/or sell * 90e3d5408SPeter Wemm * copies of the Software, and to permit persons to whom the Software is * 100e3d5408SPeter Wemm * furnished to do so, subject to the following conditions: * 110e3d5408SPeter Wemm * * 120e3d5408SPeter Wemm * The above copyright notice and this permission notice shall be included * 130e3d5408SPeter Wemm * in all copies or substantial portions of the Software. * 140e3d5408SPeter Wemm * * 150e3d5408SPeter Wemm * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 160e3d5408SPeter Wemm * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 170e3d5408SPeter Wemm * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 180e3d5408SPeter Wemm * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 190e3d5408SPeter Wemm * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 200e3d5408SPeter Wemm * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 210e3d5408SPeter Wemm * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 220e3d5408SPeter Wemm * * 230e3d5408SPeter Wemm * Except as contained in this notice, the name(s) of the above copyright * 240e3d5408SPeter Wemm * holders shall not be used in advertising or otherwise to promote the * 250e3d5408SPeter Wemm * sale, use or other dealings in this Software without prior written * 260e3d5408SPeter Wemm * authorization. * 270e3d5408SPeter Wemm ****************************************************************************/ 280e3d5408SPeter Wemm 290e3d5408SPeter Wemm /**************************************************************************** 300e3d5408SPeter Wemm * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 * 310e3d5408SPeter Wemm * and: Eric S. Raymond <esr@snark.thyrsus.com> * 320e3d5408SPeter Wemm ****************************************************************************/ 330e3d5408SPeter Wemm 340e3d5408SPeter Wemm /* panel.c -- implementation of panels library, some core routines */ 350e3d5408SPeter Wemm #include "panel.priv.h" 360e3d5408SPeter Wemm 374a1a9510SRong-En Fan MODULE_ID("$Id: panel.c,v 1.23 2005/02/19 18:04:31 tom Exp $") 380e3d5408SPeter Wemm 394a1a9510SRong-En Fan /*+------------------------------------------------------------------------- 404a1a9510SRong-En Fan _nc_retrace_panel (pan) 414a1a9510SRong-En Fan --------------------------------------------------------------------------*/ 424a1a9510SRong-En Fan #ifdef TRACE 434a1a9510SRong-En Fan NCURSES_EXPORT(PANEL *) 444a1a9510SRong-En Fan _nc_retrace_panel(PANEL * pan) 454a1a9510SRong-En Fan { 464a1a9510SRong-En Fan T((T_RETURN("%p"), pan)); 474a1a9510SRong-En Fan return pan; 484a1a9510SRong-En Fan } 494a1a9510SRong-En Fan #endif 504a1a9510SRong-En Fan 514a1a9510SRong-En Fan /*+------------------------------------------------------------------------- 524a1a9510SRong-En Fan _nc_my_visbuf(ptr) 534a1a9510SRong-En Fan --------------------------------------------------------------------------*/ 540e3d5408SPeter Wemm #ifdef TRACE 550e3d5408SPeter Wemm #ifndef TRACE_TXT 567a69bbfbSPeter Wemm NCURSES_EXPORT(const char *) 577a69bbfbSPeter Wemm _nc_my_visbuf(const void *ptr) 580e3d5408SPeter Wemm { 590e3d5408SPeter Wemm char temp[32]; 604a1a9510SRong-En Fan 610e3d5408SPeter Wemm if (ptr != 0) 620e3d5408SPeter Wemm sprintf(temp, "ptr:%p", ptr); 630e3d5408SPeter Wemm else 640e3d5408SPeter Wemm strcpy(temp, "<null>"); 650e3d5408SPeter Wemm return _nc_visbuf(temp); 660e3d5408SPeter Wemm } 670e3d5408SPeter Wemm #endif 680e3d5408SPeter Wemm #endif 690e3d5408SPeter Wemm 700e3d5408SPeter Wemm /*+------------------------------------------------------------------------- 710e3d5408SPeter Wemm dPanel(text,pan) 720e3d5408SPeter Wemm --------------------------------------------------------------------------*/ 730e3d5408SPeter Wemm #ifdef TRACE 747a69bbfbSPeter Wemm NCURSES_EXPORT(void) 754a1a9510SRong-En Fan _nc_dPanel(const char *text, const PANEL * pan) 760e3d5408SPeter Wemm { 770e3d5408SPeter Wemm _tracef("%s id=%s b=%s a=%s y=%d x=%d", 780e3d5408SPeter Wemm text, USER_PTR(pan->user), 790e3d5408SPeter Wemm (pan->below) ? USER_PTR(pan->below->user) : "--", 800e3d5408SPeter Wemm (pan->above) ? USER_PTR(pan->above->user) : "--", 811759abf3SPeter Wemm PSTARTY(pan), PSTARTX(pan)); 820e3d5408SPeter Wemm } 830e3d5408SPeter Wemm #endif 840e3d5408SPeter Wemm 850e3d5408SPeter Wemm /*+------------------------------------------------------------------------- 860e3d5408SPeter Wemm dStack(fmt,num,pan) 870e3d5408SPeter Wemm --------------------------------------------------------------------------*/ 880e3d5408SPeter Wemm #ifdef TRACE 897a69bbfbSPeter Wemm NCURSES_EXPORT(void) 904a1a9510SRong-En Fan _nc_dStack(const char *fmt, int num, const PANEL * pan) 910e3d5408SPeter Wemm { 920e3d5408SPeter Wemm char s80[80]; 930e3d5408SPeter Wemm 940e3d5408SPeter Wemm sprintf(s80, fmt, num, pan); 950e3d5408SPeter Wemm _tracef("%s b=%s t=%s", s80, 960e3d5408SPeter Wemm (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--", 970e3d5408SPeter Wemm (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--"); 980e3d5408SPeter Wemm if (pan) 990e3d5408SPeter Wemm _tracef("pan id=%s", USER_PTR(pan->user)); 1000e3d5408SPeter Wemm pan = _nc_bottom_panel; 1010e3d5408SPeter Wemm while (pan) 1020e3d5408SPeter Wemm { 1030e3d5408SPeter Wemm dPanel("stk", pan); 1040e3d5408SPeter Wemm pan = pan->above; 1050e3d5408SPeter Wemm } 1060e3d5408SPeter Wemm } 1070e3d5408SPeter Wemm #endif 1080e3d5408SPeter Wemm 1090e3d5408SPeter Wemm /*+------------------------------------------------------------------------- 1100e3d5408SPeter Wemm Wnoutrefresh(pan) - debugging hook for wnoutrefresh 1110e3d5408SPeter Wemm --------------------------------------------------------------------------*/ 1120e3d5408SPeter Wemm #ifdef TRACE 1137a69bbfbSPeter Wemm NCURSES_EXPORT(void) 1140e3d5408SPeter Wemm _nc_Wnoutrefresh(const PANEL * pan) 1150e3d5408SPeter Wemm { 1160e3d5408SPeter Wemm dPanel("wnoutrefresh", pan); 1170e3d5408SPeter Wemm wnoutrefresh(pan->win); 1180e3d5408SPeter Wemm } 1190e3d5408SPeter Wemm #endif 1200e3d5408SPeter Wemm 1210e3d5408SPeter Wemm /*+------------------------------------------------------------------------- 1220e3d5408SPeter Wemm Touchpan(pan) 1230e3d5408SPeter Wemm --------------------------------------------------------------------------*/ 1240e3d5408SPeter Wemm #ifdef TRACE 1257a69bbfbSPeter Wemm NCURSES_EXPORT(void) 1260e3d5408SPeter Wemm _nc_Touchpan(const PANEL * pan) 1270e3d5408SPeter Wemm { 1280e3d5408SPeter Wemm dPanel("Touchpan", pan); 1290e3d5408SPeter Wemm touchwin(pan->win); 1300e3d5408SPeter Wemm } 1310e3d5408SPeter Wemm #endif 1320e3d5408SPeter Wemm 1330e3d5408SPeter Wemm /*+------------------------------------------------------------------------- 1340e3d5408SPeter Wemm Touchline(pan,start,count) 1350e3d5408SPeter Wemm --------------------------------------------------------------------------*/ 1360e3d5408SPeter Wemm #ifdef TRACE 1377a69bbfbSPeter Wemm NCURSES_EXPORT(void) 1384a1a9510SRong-En Fan _nc_Touchline(const PANEL * pan, int start, int count) 1390e3d5408SPeter Wemm { 1400e3d5408SPeter Wemm char s80[80]; 1414a1a9510SRong-En Fan 1420e3d5408SPeter Wemm sprintf(s80, "Touchline s=%d c=%d", start, count); 1430e3d5408SPeter Wemm dPanel(s80, pan); 1440e3d5408SPeter Wemm touchline(pan->win, start, count); 1450e3d5408SPeter Wemm } 1460e3d5408SPeter Wemm #endif 1470e3d5408SPeter Wemm 1481759abf3SPeter Wemm #ifndef TRACE 1491759abf3SPeter Wemm # ifndef __GNUC__ 1501759abf3SPeter Wemm /* Some C compilers need something defined in a source file */ 1514a1a9510SRong-En Fan extern void _nc_dummy_panel(void); 1524a1a9510SRong-En Fan void 1534a1a9510SRong-En Fan _nc_dummy_panel(void) 1544a1a9510SRong-En Fan { 1554a1a9510SRong-En Fan } 1560e3d5408SPeter Wemm # endif 1571759abf3SPeter Wemm #endif 158