]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - c++/cursesp.h
ncurses 6.5 - patch 20240504
[ncurses.git] / c++ / cursesp.h
index 9b63d6d671bfd6be7ad516a991c31a8f1db311f6..f0bd5c9cdfffabf9c25c1d88a159bd4bd1b47a87 100644 (file)
@@ -1,6 +1,8 @@
 // * This makes emacs happy -*-Mode: C++;-*-
+// vile:cppmode
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright 2019-2021,2022 Thomas E. Dickey                                *
+ * Copyright 1998-2012,2014 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            *
@@ -34,7 +36,7 @@
 #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 $
+// $Id: cursesp.h,v 1.36 2022/08/20 20:52:15 tom Exp $
 
 #include <cursesw.h>
 
@@ -42,7 +44,7 @@ extern "C" {
 #  include <panel.h>
 }
 
-class NCURSES_IMPEXP NCursesPanel
+class NCURSES_CXX_IMPEXP NCursesPanel
   : public NCursesWindow
 {
 protected:
@@ -86,7 +88,7 @@ protected:
     return result;
   }
 
-  void OnError (int err) const THROWS(NCursesPanelException)
+  void OnError (int err) const THROW2(NCursesException const, NCursesPanelException)
   {
     if (err==ERR)
       THROW(new NCursesPanelException (this, err));
@@ -131,7 +133,7 @@ public:
   {
   }
 
-  virtual ~NCursesPanel();
+  virtual ~NCursesPanel() THROWS(NCursesException);
 
   // basic manipulation
   inline void hide()
@@ -160,7 +162,7 @@ public:
   // 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)
+  virtual int mvwin(int y, int x) NCURSES_OVERRIDE
   {
     OnError(::move_panel(p, y, x));
     return OK;
@@ -193,11 +195,11 @@ public:
 
   // Those two are rewrites of the corresponding virtual members of
   // NCursesWindow
-  virtual int refresh();
+  virtual int refresh() NCURSES_OVERRIDE;
   // Propagate all panel changes to the virtual screen and update the
   // physical screen.
 
-  virtual int noutrefresh();
+  virtual int noutrefresh() NCURSES_OVERRIDE;
   // Propagate all panel changes to the virtual screen.
 
   static void redraw();
@@ -236,22 +238,23 @@ public:
     : NCursesPanel (nlines, ncols, begin_y, begin_x)
   {
       if (p)
-       set_user (const_cast<void *>(p_UserData));
+       set_user (const_cast<void *>(reinterpret_cast<const 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()
+  explicit NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
   {
     if (p)
-      set_user(const_cast<void *>(p_UserData));
+      set_user(const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
   };
   // This creates an user panel associated with the ::stdscr and user data
   // pointed to by p_UserData.
 
-  virtual ~NCursesUserPanel() {};
+  virtual ~NCursesUserPanel() THROWS(NCursesException) {};
 
-  T* UserData (void) const
+  T* UserData (void)
   {
     return reinterpret_cast<T*>(get_user ());
   };
@@ -260,7 +263,7 @@ public:
   virtual void setUserData (const T* p_UserData)
   {
     if (p)
-      set_user (const_cast<void *>(p_UserData));
+      set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
   }
   // Associate the user panel with the user data pointed to by p_UserData.
 };