// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
+ * Copyright (c) 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 *
#ifndef NCURSES_CURSESP_H_incl
#define NCURSES_CURSESP_H_incl 1
-// $Id: cursesp.h,v 1.27 2007/04/07 17:12:54 tom Exp $
+// $Id: cursesp.h,v 1.31 2014/08/09 22:06:26 Adam.Jiang Exp $
#include <cursesw.h>
void set_user(void *user)
{
UserHook* uptr = UserPointer();
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
- uptr->m_user = user;
+ 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();
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
- return uptr->m_user;
+ 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)
+ void OnError (int err) const THROW2(NCursesException const, NCursesPanelException)
{
if (err==ERR)
THROW(new NCursesPanelException (this, err));
: 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()
{
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() {};
- T* UserData (void) const
+ T* UserData (void)
{
return reinterpret_cast<T*>(get_user ());
};
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.
};