]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - c++/cursesapp.h
ncurses 6.1 - patch 20191221
[ncurses.git] / c++ / cursesapp.h
index 998f14f1ce37a49eac1bfd8800c99d028fc6aac2..a3d0aaf3c3604b9167db5799478ab9d84b9dc816 100644 (file)
@@ -1,6 +1,6 @@
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
 // * This makes emacs happy -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2011,2019 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1997             *
+ *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
  ****************************************************************************/
 
-// $Id: cursesapp.h,v 1.3 1998/02/11 12:13:41 tom Exp $
+// $Id: cursesapp.h,v 1.13 2019/07/28 19:55:27 tom Exp $
 
 
-#ifndef _CURSESAPP_H
-#define _CURSESAPP_H
+#ifndef NCURSES_CURSESAPP_H_incl
+#define NCURSES_CURSESAPP_H_incl
 
 #include <cursslk.h>
 
 
 #include <cursslk.h>
 
-class NCursesApplication {
+class NCURSES_IMPEXP NCursesApplication {
 public:
   typedef struct _slk_link {          // This structure is used to maintain
     struct _slk_link* prev;           // a stack of SLKs
 public:
   typedef struct _slk_link {          // This structure is used to maintain
     struct _slk_link* prev;           // a stack of SLKs
@@ -80,19 +80,33 @@ protected:
   // This method is called to initialize the SLKs. Default is nothing.
   // You may rewrite this in your derived class
   virtual void init_labels(Soft_Label_Key_Set& S) const {
   // This method is called to initialize the SLKs. Default is nothing.
   // You may rewrite this in your derived class
   virtual void init_labels(Soft_Label_Key_Set& S) const {
+    (void) S;
   }
 
   // Your derived class must implement this method. The return value must
   // be the exit value of your application.
   virtual int run() = 0;
 
   }
 
   // Your derived class must implement this method. The return value must
   // be the exit value of your application.
   virtual int run() = 0;
 
-
   // The constructor is protected, so you may use it in your derived
   // class constructor. The argument tells whether or not you want colors.
   NCursesApplication(bool wantColors = FALSE);
 
   // The constructor is protected, so you may use it in your derived
   // class constructor. The argument tells whether or not you want colors.
   NCursesApplication(bool wantColors = FALSE);
 
+  NCursesApplication& operator=(const NCursesApplication& rhs)
+  {
+    if (this != &rhs) {
+      *this = rhs;
+    }
+    return *this;
+  }
+
+  NCursesApplication(const NCursesApplication& rhs)
+    : b_Colors(rhs.b_Colors),
+      Root_Window(rhs.Root_Window)
+  {
+  }
+
 public:
 public:
-  virtual ~NCursesApplication();
+  virtual ~NCursesApplication() THROWS(NCursesException);
 
   // Get a pointer to the current application object
   static NCursesApplication* getApplication() {
 
   // Get a pointer to the current application object
   static NCursesApplication* getApplication() {
@@ -105,6 +119,8 @@ public:
   // Process the commandline arguments. The default implementation simply
   // ignores them. Your derived class may rewrite this.
   virtual void handleArgs(int argc, char* argv[]) {
   // Process the commandline arguments. The default implementation simply
   // ignores them. Your derived class may rewrite this.
   virtual void handleArgs(int argc, char* argv[]) {
+    (void) argc;
+    (void) argv;
   }
 
   // Does this application use colors?
   }
 
   // Does this application use colors?
@@ -125,39 +141,39 @@ public:
 
   // Attributes to use for menu and forms foregrounds
   virtual chtype foregrounds() const {
 
   // Attributes to use for menu and forms foregrounds
   virtual chtype foregrounds() const {
-    return b_Colors ? COLOR_PAIR(1) : A_BOLD;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(1)) : A_BOLD;
   }
 
   // Attributes to use for menu and forms backgrounds
   virtual chtype backgrounds() const {
   }
 
   // Attributes to use for menu and forms backgrounds
   virtual chtype backgrounds() const {
-    return b_Colors ? COLOR_PAIR(2) : A_NORMAL;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(2)) : A_NORMAL;
   }
 
   // Attributes to use for inactive (menu) elements
   virtual chtype inactives() const {
   }
 
   // Attributes to use for inactive (menu) elements
   virtual chtype inactives() const {
-    return b_Colors ? (COLOR_PAIR(3)|A_DIM) : A_DIM;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(3)|A_DIM) : A_DIM;
   }
 
   // Attributes to use for (form) labels and SLKs
   virtual chtype labels() const {
   }
 
   // Attributes to use for (form) labels and SLKs
   virtual chtype labels() const {
-    return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(4)) : A_NORMAL;
   }
 
   // Attributes to use for form backgrounds
   virtual chtype dialog_backgrounds() const {
   }
 
   // Attributes to use for form backgrounds
   virtual chtype dialog_backgrounds() const {
-    return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(4)) : A_NORMAL;
   }
 
   // Attributes to use as default for (form) window backgrounds
   virtual chtype window_backgrounds() const {
   }
 
   // Attributes to use as default for (form) window backgrounds
   virtual chtype window_backgrounds() const {
-    return b_Colors ? COLOR_PAIR(5) : A_NORMAL;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(5)) : A_NORMAL;
   }
 
   // Attributes to use for the title window
   virtual chtype screen_titles() const {
   }
 
   // Attributes to use for the title window
   virtual chtype screen_titles() const {
-    return b_Colors ? COLOR_PAIR(6) : A_BOLD;
+    return b_Colors ? static_cast<chtype>(COLOR_PAIR(6)) : A_BOLD;
   }
 
 };
  
   }
 
 };
  
-#endif // _CURSESAPP_H
+#endif /* NCURSES_CURSESAPP_H_incl */