X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=panel%2Fpanel.priv.h;h=4fb8144e1b7732c3f5ed20cb2c2a58cefb0b8aa3;hp=57bf793a007e6b101edd2c73e46a5b1ce22d10a4;hb=76af49c338ca828b39306fcf93c6d49dfaf11dfc;hpb=b1f61d9f3aa244512045a6b02e759825d7049d34 diff --git a/panel/panel.priv.h b/panel/panel.priv.h index 57bf793a..4fb8144e 100644 --- a/panel/panel.priv.h +++ b/panel/panel.priv.h @@ -1,7 +1,35 @@ -/* $Id: panel.priv.h,v 1.13 2000/01/15 20:39:53 juergen Exp $ */ - -#ifndef _PANEL_PRIV_H -#define _PANEL_PRIV_H +/**************************************************************************** + * Copyright (c) 1998-2005,2008 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 * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* $Id: panel.priv.h,v 1.22 2008/09/27 22:36:11 tom Exp $ */ + +#ifndef NCURSES_PANEL_PRIV_H +#define NCURSES_PANEL_PRIV_H 1 #if HAVE_CONFIG_H # include @@ -11,24 +39,11 @@ #include #include -#if HAVE_LIBDMALLOC -# include /* Gray Watson's library */ -#endif - -#if HAVE_LIBDBMALLOC -# include /* Conor Cahill's library */ -#endif - -#include +#include "curses.priv.h" #include "panel.h" +#include -#if ( CC_HAS_INLINE_FUNCS && !defined(TRACE) ) -# define INLINE inline -#else -# define INLINE -#endif - -#ifdef USE_RCS_IDS +#if USE_RCS_IDS # define MODULE_ID(id) static const char Ident[] = id; #else # define MODULE_ID(id) /*nothing*/ @@ -36,18 +51,21 @@ #ifdef TRACE - extern const char *_nc_my_visbuf(const void *); + extern NCURSES_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 - extern void _nc_dPanel(const char*, const PANEL*); - extern void _nc_dStack(const char*, int, const PANEL*); - extern void _nc_Wnoutrefresh(const PANEL*); - extern void _nc_Touchpan(const PANEL*); - extern void _nc_Touchline(const PANEL*, int, int); +# define returnPanel(code) TRACE_RETURN(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); # define dBug(x) _tracef x # define dPanel(text,pan) _nc_dPanel(text,pan) @@ -56,6 +74,7 @@ # define Touchpan(pan) _nc_Touchpan(pan) # define Touchline(pan,start,count) _nc_Touchline(pan,start,count) #else /* !TRACE */ +# define returnPanel(code) return code # define dBug(x) # define dPanel(text,pan) # define dStack(fmt,num,pan) @@ -69,19 +88,10 @@ #define _nc_bottom_panel _nc_panelhook()->bottom_panel #define EMPTY_STACK() (_nc_top_panel==_nc_bottom_panel) -#define Is_Bottom(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p))) +#define Is_Bottom(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p))) #define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p))) #define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel)) -/* borrowed from curses.priv.h */ -#define CHANGED_RANGE(line,start,end) \ - if (line->firstchar == _NOCHANGE \ - || line->firstchar > (start)) \ - line->firstchar = start; \ - if (line->lastchar == _NOCHANGE \ - || line->lastchar < (end)) \ - line->lastchar = end - /*+------------------------------------------------------------------------- IS_LINKED(pan) - check to see if panel is in the stack --------------------------------------------------------------------------*/ @@ -118,14 +128,12 @@ /*+------------------------------------------------------------------------- Walk through the panel stack starting at the given location and check for intersections; overlapping panels are "touched", so they - are incrementally overwriting cells that should be hidden. + are incrementally overwriting cells that should be hidden. If the "touch" flag is set, the panel gets touched before it is - updated. + updated. ---------------------------------------------------------------------------*/ -#define PANEL_UPDATE(pan,panstart,touch)\ +#define PANEL_UPDATE(pan,panstart)\ { PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\ - if (touch)\ - Touchpan(pan);\ while(pan2) {\ if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\ int y,ix1,ix2,iy1,iy2;\ @@ -164,12 +172,12 @@ #define HIDE_PANEL(pan,err,err_if_unlinked)\ if (IS_LINKED(pan)) {\ - PANEL_UPDATE(pan,(PANEL*)0,TRUE);\ + Touchpan(pan);\ + PANEL_UPDATE(pan,(PANEL*)0);\ PANEL_UNLINK(pan,err);\ } \ else {\ - if (err_if_unlinked)\ - err = ERR;\ + err = err_if_unlinked;\ } -#endif /* _PANEL_PRIV_H */ +#endif /* NCURSES_PANEL_PRIV_H */