aboutsummaryrefslogtreecommitdiff
path: root/c++/cursesp.h
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2014-02-28 19:12:44 +0000
committerXin LI <delphij@FreeBSD.org>2014-02-28 19:12:44 +0000
commit4b819fa20a8d007a10f2d3e8d6a5dedf7f18fc9a (patch)
treeb8f6e12b479a78216f3bffb8e1258d54087268de /c++/cursesp.h
parente07762606a5bf651a501cb095c98cba90e4a8fe2 (diff)
downloadsrc-4b819fa20a8d007a10f2d3e8d6a5dedf7f18fc9a.tar.gz
src-4b819fa20a8d007a10f2d3e8d6a5dedf7f18fc9a.zip
Undo two previous imports which was never done in preparation of doing a
new import.
Notes
Notes: svn path=/vendor/ncurses/dist/; revision=262616
Diffstat (limited to 'c++/cursesp.h')
-rw-r--r--c++/cursesp.h268
1 files changed, 0 insertions, 268 deletions
diff --git a/c++/cursesp.h b/c++/cursesp.h
deleted file mode 100644
index 9b63d6d671bf..000000000000
--- a/c++/cursesp.h
+++ /dev/null
@@ -1,268 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1998-2007,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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- ****************************************************************************/
-
-#ifndef NCURSES_CURSESP_H_incl
-#define NCURSES_CURSESP_H_incl 1
-
-// $Id: cursesp.h,v 1.29 2008/08/16 17:20:23 tom Exp $
-
-#include <cursesw.h>
-
-extern "C" {
-# include <panel.h>
-}
-
-class NCURSES_IMPEXP NCursesPanel
- : public NCursesWindow
-{
-protected:
- PANEL *p;
- static NCursesPanel *dummy;
-
-private:
- // This structure is used for the panel's user data field to link the
- // PANEL* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesPanel* m_back; // backward pointer to C++ object
- const PANEL* m_owner; // the panel itself
- } UserHook;
-
- inline UserHook *UserPointer()
- {
- UserHook* uptr = reinterpret_cast<UserHook*>(
- const_cast<void *>(::panel_userptr (p)));
- return uptr;
- }
-
- void init(); // Initialize the panel object
-
-protected:
- void set_user(void *user)
- {
- UserHook* uptr = UserPointer();
- if (uptr != 0 && uptr->m_back==this && uptr->m_owner==p) {
- uptr->m_user = user;
- }
- }
- // Set the user pointer of the panel.
-
- void *get_user()
- {
- UserHook* uptr = UserPointer();
- void *result = 0;
- if (uptr != 0 && uptr->m_back==this && uptr->m_owner==p)
- result = uptr->m_user;
- return result;
- }
-
- void OnError (int err) const THROWS(NCursesPanelException)
- {
- if (err==ERR)
- THROW(new NCursesPanelException (this, err));
- }
- // If err is equal to the curses error indicator ERR, an error handler
- // is called.
-
- // Get a keystroke. Default implementation calls getch()
- virtual int getKey(void);
-
-public:
- NCursesPanel(int nlines,
- int ncols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesWindow(nlines,ncols,begin_y,begin_x), p(0)
- {
- init();
- }
- // Create a panel with this size starting at the requested position.
-
- NCursesPanel()
- : NCursesWindow(::stdscr), p(0)
- {
- init();
- }
- // This constructor creates the default Panel associated with the
- // ::stdscr window
-
- NCursesPanel& operator=(const NCursesPanel& rhs)
- {
- if (this != &rhs) {
- *this = rhs;
- NCursesWindow::operator=(rhs);
- }
- return *this;
- }
-
- NCursesPanel(const NCursesPanel& rhs)
- : NCursesWindow(rhs),
- p(rhs.p)
- {
- }
-
- virtual ~NCursesPanel();
-
- // basic manipulation
- inline void hide()
- {
- OnError (::hide_panel(p));
- }
- // Hide the panel. It stays in the stack but becomes invisible.
-
- inline void show()
- {
- OnError (::show_panel(p));
- }
- // Show the panel, i.e. make it visible.
-
- inline void top()
- {
- OnError (::top_panel(p));
- }
- // Make this panel the top panel in the stack.
-
- inline void bottom()
- {
- OnError (::bottom_panel(p));
- }
- // Make this panel the bottom panel in the stack.
- // N.B.: The panel associated with ::stdscr is always on the bottom. So
- // actually bottom() makes the panel the first above ::stdscr.
-
- virtual int mvwin(int y, int x)
- {
- OnError(::move_panel(p, y, x));
- return OK;
- }
-
- inline bool hidden() const
- {
- return (::panel_hidden (p) ? TRUE : FALSE);
- }
- // Return TRUE if the panel is hidden, FALSE otherwise.
-
-/* The functions panel_above() and panel_below() are not reflected in
- the NCursesPanel class. The reason for this is, that we cannot
- assume that a panel retrieved by those operations is one wrapped
- by a C++ class. Although this situation might be handled, we also
- need a reverse mapping from PANEL to NCursesPanel which needs some
- redesign of the low level stuff. At the moment, we define them in the
- interface but they will always produce an error. */
- inline NCursesPanel& above() const
- {
- OnError(ERR);
- return *dummy;
- }
-
- inline NCursesPanel& below() const
- {
- OnError(ERR);
- return *dummy;
- }
-
- // Those two are rewrites of the corresponding virtual members of
- // NCursesWindow
- virtual int refresh();
- // Propagate all panel changes to the virtual screen and update the
- // physical screen.
-
- virtual int noutrefresh();
- // Propagate all panel changes to the virtual screen.
-
- static void redraw();
- // Redraw all panels.
-
- // decorations
- virtual void frame(const char* title=NULL,
- const char* btitle=NULL);
- // Put a frame around the panel and put the title centered in the top line
- // and btitle in the bottom line.
-
- virtual void boldframe(const char* title=NULL,
- const char* btitle=NULL);
- // Same as frame(), but use highlighted attributes.
-
- virtual void label(const char* topLabel,
- const char* bottomLabel);
- // Put the title centered in the top line and btitle in the bottom line.
-
- virtual void centertext(int row,const char* label);
- // Put the label text centered in the specified row.
-};
-
-/* We use templates to provide a typesafe mechanism to associate
- * user data with a panel. A NCursesUserPanel<T> is a panel
- * associated with some user data of type T.
- */
-template<class T> class NCursesUserPanel : public NCursesPanel
-{
-public:
- NCursesUserPanel (int nlines,
- int ncols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = STATIC_CAST(T*)(0))
- : NCursesPanel (nlines, ncols, begin_y, begin_x)
- {
- if (p)
- set_user (const_cast<void *>(p_UserData));
- };
- // This creates an user panel of the requested size with associated
- // user data pointed to by p_UserData.
-
- NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
- {
- if (p)
- set_user(const_cast<void *>(p_UserData));
- };
- // This creates an user panel associated with the ::stdscr and user data
- // pointed to by p_UserData.
-
- virtual ~NCursesUserPanel() {};
-
- T* UserData (void) const
- {
- return reinterpret_cast<T*>(get_user ());
- };
- // Retrieve the user data associated with the panel.
-
- virtual void setUserData (const T* p_UserData)
- {
- if (p)
- set_user (const_cast<void *>(p_UserData));
- }
- // Associate the user panel with the user data pointed to by p_UserData.
-};
-
-#endif /* NCURSES_CURSESP_H_incl */