]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - c++/etip.h.in
ncurses 5.6
[ncurses.git] / c++ / etip.h.in
index 2ddc292adda09dab5a812f031fc4a7dd0867ebcc..482f8eb4b8519bfe09e890768aa06060ec265bd9 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc.         *
+ * Copyright (c) 1998-2003,2005 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            *
@@ -31,7 +31,7 @@
  *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
-// $Id: etip.h.in,v 1.25 2003/10/25 15:05:58 tom Exp $
+// $Id: etip.h.in,v 1.32 2005/08/06 19:55:57 tom Exp $
 
 #ifndef NCURSES_ETIP_H_incl
 #define NCURSES_ETIP_H_incl 1
 #define CPP_HAS_PARAM_INIT 0
 #endif
 
+#ifndef CPP_HAS_STATIC_CAST
+#define CPP_HAS_STATIC_CAST 0  // workaround for g++ 2.95.3
+#endif
+
 #ifndef USE_STRSTREAM_VSCAN
 #define USE_STRSTREAM_VSCAN 0
 #endif
 #  endif
 #elif defined (__SUNPRO_CC)
 #  include <generic.h>
-#  include <string.h>
-#else
-#  include <string.h>
 #endif
 
 #include <ncurses_dll.h>
@@ -135,6 +136,12 @@ extern "C" {
 #define NCURSES_PARAM_INIT(value) /*nothing*/
 #endif
 
+#if CPP_HAS_STATIC_CAST
+#define STATIC_CAST(s) static_cast<s>
+#else
+#define STATIC_CAST(s) (s)
+#endif
+
 // Forward Declarations
 class NCURSES_IMPEXP NCursesPanel;
 class NCURSES_IMPEXP NCursesMenu;
@@ -154,9 +161,24 @@ public:
     : message(msg), errorno (E_SYSTEM_ERROR)
     {};
 
+  NCursesException& operator=(const NCursesException& rhs)
+  {
+    errorno = rhs.errorno;
+    return *this;
+  }
+
+  NCursesException(const NCursesException& rhs)
+    : message(rhs.message), errorno(rhs.errorno)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesWindow";
   }
+
+  virtual ~NCursesException()
+  {
+  }
 };
 
 class NCURSES_IMPEXP NCursesPanelException : public NCursesException
@@ -166,7 +188,7 @@ public:
 
   NCursesPanelException (const char *msg, int err) :
     NCursesException (msg, err),
-    p ((NCursesPanel*)0)
+    p (NULL)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
@@ -178,7 +200,7 @@ public:
 
   NCursesPanelException (int err) :
     NCursesException ("panel library error", err),
-    p ((NCursesPanel*)0)
+    p (NULL)
     {};
 
   NCursesPanelException (const NCursesPanel* panel,
@@ -187,10 +209,27 @@ public:
     p (panel)
     {};
 
+  NCursesPanelException& operator=(const NCursesPanelException& rhs)
+  {
+    if (this != &rhs) {
+      NCursesException::operator=(rhs);
+      p = rhs.p;
+    }
+    return *this;
+  }
+
+  NCursesPanelException(const NCursesPanelException& rhs)
+    : NCursesException(rhs), p(rhs.p)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesPanel";
   }
 
+  virtual ~NCursesPanelException()
+  {
+  }
 };
 
 class NCURSES_IMPEXP NCursesMenuException : public NCursesException
@@ -200,7 +239,7 @@ public:
 
   NCursesMenuException (const char *msg, int err) :
     NCursesException (msg, err),
-    m ((NCursesMenu *)0)
+    m (NULL)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
@@ -212,7 +251,7 @@ public:
 
   NCursesMenuException (int err) :
     NCursesException ("menu library error", err),
-    m ((NCursesMenu *)0)
+    m (NULL)
     {};
 
   NCursesMenuException (const NCursesMenu* menu,
@@ -221,10 +260,27 @@ public:
     m (menu)
     {};
 
+  NCursesMenuException& operator=(const NCursesMenuException& rhs)
+  {
+    if (this != &rhs) {
+      NCursesException::operator=(rhs);
+      m = rhs.m;
+    }
+    return *this;
+  }
+
+  NCursesMenuException(const NCursesMenuException& rhs)
+    : NCursesException(rhs), m(rhs.m)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesMenu";
   }
 
+  virtual ~NCursesMenuException()
+  {
+  }
 };
 
 class NCURSES_IMPEXP NCursesFormException : public NCursesException
@@ -234,7 +290,7 @@ public:
 
   NCursesFormException (const char *msg, int err) :
     NCursesException (msg, err),
-    f ((NCursesForm*)0)
+    f (NULL)
     {};
 
   NCursesFormException (const NCursesForm* form,
@@ -246,7 +302,7 @@ public:
 
   NCursesFormException (int err) :
     NCursesException ("form library error", err),
-    f ((NCursesForm*)0)
+    f (NULL)
     {};
 
   NCursesFormException (const NCursesForm* form,
@@ -255,10 +311,27 @@ public:
     f (form)
     {};
 
+  NCursesFormException& operator=(const NCursesFormException& rhs)
+  {
+    if (this != &rhs) {
+      NCursesException::operator=(rhs);
+      f = rhs.f;
+    }
+    return *this;
+  }
+
+  NCursesFormException(const NCursesFormException& rhs)
+    : NCursesException(rhs), f(rhs.f)
+  {
+  }
+
   virtual const char *classname() const {
     return "NCursesForm";
   }
 
+  virtual ~NCursesFormException()
+  {
+  }
 };
 
 #if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
@@ -288,4 +361,4 @@ inline void THROW(const NCursesException *e) {
 
 #define THROWS(s)
 
-#endif // NCURSES_ETIP_H_incl
+#endif /* NCURSES_ETIP_H_incl */