ncurses 5.9 - patch 20130805
[ncurses.git] / c++ / cursesp.cc
index 9b3b204cafa40c434493e1fbc7b7b7eacd5b0922..9c4eab6954ec5c156df3560dac42c5022a163f22 100644 (file)
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 1998 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            *
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1993,1997        *
+ *   Author: Juergen Pfeifer, 1993, 1997                                    *
  ****************************************************************************/
 
-#include "cursesp.h"
 #include "internal.h"
+#include "cursesp.h"
 
-MODULE_ID("$Id: cursesp.cc,v 1.11 1998/02/17 09:04:12 juergen Exp $")
+MODULE_ID("$Id: cursesp.cc,v 1.25 2005/08/06 22:12:36 tom Exp $")
 
-NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
+NCursesPanel* NCursesPanel::dummy = static_cast<NCursesPanel*>(0);
 
-void NCursesPanel::init() {
+void NCursesPanel::init()
+{
   p = ::new_panel(w);
   if (!p)
     OnError(ERR);
-  
+
   UserHook* hook = new UserHook;
   hook->m_user  = NULL;
   hook->m_back  = this;
   hook->m_owner = p;
-  ::set_panel_userptr(p, (void *)hook);
-}  
+  ::set_panel_userptr(p, reinterpret_cast<void *>(hook));
+}
 
-NCursesPanel::~NCursesPanel() {
-  UserHook* hook = (UserHook*)::panel_userptr(p);
-  assert(hook && hook->m_back==this && hook->m_owner==p);
+NCursesPanel::~NCursesPanel()
+{
+  UserHook* hook = UserPointer();
+  assert(hook != 0 && hook->m_back==this && hook->m_owner==p);
   delete hook;
   ::del_panel(p);
   ::update_panels();
-  ::doupdate();
 }
 
 void
-NCursesPanel::redraw() {
+NCursesPanel::redraw()
+{
   PANEL *pan;
-  
+
   pan = ::panel_above(NULL);
   while (pan) {
     ::touchwin(panel_window(pan));
@@ -73,52 +75,64 @@ NCursesPanel::redraw() {
 }
 
 int
-NCursesPanel::refresh() {
+NCursesPanel::refresh()
+{
   ::update_panels();
-  return doupdate();
+  return ::doupdate();
 }
 
 int
-NCursesPanel::noutrefresh() {
+NCursesPanel::noutrefresh()
+{
   ::update_panels();
   return OK;
 }
 
 void
-NCursesPanel::boldframe(const char *title, const char* btitle) {
+NCursesPanel::boldframe(const char *title, const char* btitle)
+{
   standout();
   frame(title, btitle);
   standend();
 }
 
 void
-NCursesPanel::frame(const char *title,const char *btitle) {
+NCursesPanel::frame(const char *title,const char *btitle)
+{
   int err = OK;
   if (!title && !btitle) {
     err = box();
-  } 
+  }
   else {
     err = box();
     if (err==OK)
-      label(title,btitle); 
+      label(title,btitle);
   }
   OnError(err);
 }
 
 void
-NCursesPanel::label(const char *tLabel, const char *bLabel) {
-  if (tLabel) 
+NCursesPanel::label(const char *tLabel, const char *bLabel)
+{
+  if (tLabel)
     centertext(0,tLabel);
-  if (bLabel) 
+  if (bLabel)
     centertext(maxy(),bLabel);
 }
 
 void
-NCursesPanel::centertext(int row,const char *label) {
-  if (label) {
-    int x = (maxx() - strlen(label)) / 2;
+NCursesPanel::centertext(int row,const char *labelText)
+{
+  if (labelText) {
+    int x = (maxx() - ::strlen(labelText)) / 2;
     if (x<0)
       x=0;
-    OnError(addstr(row, x, label, width()));
+    OnError(addstr(row, x, labelText, width()));
   }
 }
+
+int
+NCursesPanel::getKey(void)
+{
+  return getch();
+}