X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=c%2B%2B%2Fcursesm.h;h=383c7e12507e7981d6d1eefa49e815615506164c;hp=d629e8eeae6ccc9cb06728dfc9f88bbd1e7ab0d2;hb=f67a188e71a0e6f80c1c45e50e7a7449c2d7bfb3;hpb=f3eb40315f9e5eff503a172aed6d325b4e1f20c6
diff --git a/c++/cursesm.h b/c++/cursesm.h
index d629e8ee..383c7e12 100644
--- a/c++/cursesm.h
+++ b/c++/cursesm.h
@@ -1,6 +1,7 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
+ * Copyright 2019,2020 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 *
@@ -31,7 +32,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesm.h,v 1.27 2011/09/17 21:37:01 tom Exp $
+// $Id: cursesm.h,v 1.34 2020/05/24 01:40:20 anonymous.maarten Exp $
#ifndef NCURSES_CURSESM_H_incl
#define NCURSES_CURSESM_H_incl 1
@@ -46,14 +47,14 @@ extern "C" {
// This wraps the ITEM type of
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP NCursesMenuItem
+class NCURSES_CXX_IMPEXP NCursesMenuItem
{
friend class NCursesMenu;
protected:
ITEM *item;
- inline void OnError (int err) const THROWS(NCursesMenuException) {
+ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
if (err != E_OK)
THROW(new NCursesMenuException (err));
}
@@ -85,7 +86,7 @@ public:
(void) rhs;
}
- virtual ~NCursesMenuItem ();
+ virtual ~NCursesMenuItem () THROWS(NCursesException);
// Release the items memory
inline const char* name () const {
@@ -152,7 +153,7 @@ typedef bool ITEMCALLBACK(NCursesMenuItem&);
// If you don't like to create a child class for individual items to
// overload action(), you may use this class and provide a callback
// function pointer for items.
-class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem
+class NCURSES_CXX_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem
{
private:
ITEMCALLBACK* p_fct;
@@ -179,7 +180,7 @@ public:
{
}
- virtual ~NCursesMenuCallbackItem();
+ virtual ~NCursesMenuCallbackItem() THROWS(NCursesException);
bool action();
};
@@ -199,7 +200,7 @@ extern "C" {
// This wraps the MENU type of
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP NCursesMenu : public NCursesPanel
+class NCURSES_CXX_IMPEXP NCursesMenu : public NCursesPanel
{
protected:
MENU *menu;
@@ -253,7 +254,7 @@ protected:
bool with_frame,
bool autoDeleteItems);
- inline void OnError (int err) const THROWS(NCursesMenuException) {
+ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
if (err != E_OK)
THROW(new NCursesMenuException (this, err));
}
@@ -332,7 +333,7 @@ public:
{
}
- virtual ~NCursesMenu ();
+ virtual ~NCursesMenu () THROWS(NCursesException);
// Retrieve the menus subwindow
inline NCursesWindow& subWindow() const {
@@ -358,7 +359,7 @@ public:
flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
}
- // Get the numer of rows and columns for this menu
+ // Get the number of rows and columns for this menu
inline void scale (int& mrows, int& mcols) const {
OnError (::scale_menu (menu, &mrows, &mcols));
}
@@ -595,7 +596,7 @@ public:
// to create a UserItem.
// -------------------------------------------------------------------------
//
-template class NCURSES_IMPEXP NCursesUserItem : public NCursesMenuItem
+template class NCURSES_CXX_IMPEXP NCursesUserItem : public NCursesMenuItem
{
public:
NCursesUserItem (const char* p_name,
@@ -606,7 +607,7 @@ public:
OnError (::set_item_userptr (item, const_cast(reinterpret_cast(p_UserData))));
}
- virtual ~NCursesUserItem() {}
+ virtual ~NCursesUserItem() THROWS(NCursesException) {}
inline const T* UserData (void) const {
return reinterpret_cast(::item_userptr (item));
@@ -622,7 +623,7 @@ public:
// The same mechanism is used to attach user data to a menu
// -------------------------------------------------------------------------
//
-template class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu
+template class NCURSES_CXX_IMPEXP NCursesUserMenu : public NCursesMenu
{
protected:
NCursesUserMenu( int nlines,
@@ -632,41 +633,41 @@ protected:
const T* p_UserData = STATIC_CAST(T*)(0))
: NCursesMenu(nlines,ncols,begin_y,begin_x) {
if (menu)
- set_user (const_cast(p_UserData));
+ set_user (const_cast(reinterpret_cast(p_UserData)));
}
public:
- NCursesUserMenu (NCursesMenuItem Items[],
+ NCursesUserMenu (NCursesMenuItem* Items[],
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Items=FALSE)
- : NCursesMenu (&Items, with_frame, autoDelete_Items) {
+ : NCursesMenu (Items, with_frame, autoDelete_Items) {
if (menu)
- set_user (const_cast(p_UserData));
+ set_user (const_cast(reinterpret_cast(p_UserData)));
};
- NCursesUserMenu (NCursesMenuItem Items[],
+ NCursesUserMenu (NCursesMenuItem* Items[],
int nlines,
int ncols,
int begin_y = 0,
int begin_x = 0,
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE)
- : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) {
+ : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
if (menu)
- set_user (const_cast(p_UserData));
+ set_user (const_cast(reinterpret_cast(p_UserData)));
};
- virtual ~NCursesUserMenu() {
+ virtual ~NCursesUserMenu() THROWS(NCursesException) {
};
- inline T* UserData (void) const {
+ inline T* UserData (void) {
return reinterpret_cast(get_user ());
};
inline virtual void setUserData (const T* p_UserData) {
if (menu)
- set_user (const_cast(p_UserData));
+ set_user (const_cast(reinterpret_cast(p_UserData)));
}
};