]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - menu/m_item_opt.c
ncurses 5.9 - patch 20140712
[ncurses.git] / menu / m_item_opt.c
index 14a52b4438563ba2994212cd0297741bf12dd334..91385da1217c16dd4858f5530724fae9ee8f16cf 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2004,2010 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            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
  ****************************************************************************/
 
 /****************************************************************************
- *   Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1995,1997        *
+ *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
 /***************************************************************************
  ****************************************************************************/
 
 /***************************************************************************
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_item_opt.c,v 1.6 1998/02/11 12:13:49 tom Exp $")
+MODULE_ID("$Id: m_item_opt.c,v 1.18 2010/01/23 21:20:10 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -50,32 +50,37 @@ MODULE_ID("$Id: m_item_opt.c,v 1.6 1998/02/11 12:13:49 tom Exp $")
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid item options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid item options
 +--------------------------------------------------------------------------*/
-int set_item_opts(ITEM *item, Item_Options opts)
-{ 
+NCURSES_EXPORT(int)
+set_item_opts(ITEM * item, Item_Options opts)
+{
+  T((T_CALLED("set_menu_opts(%p,%d)"), (void *)item, opts));
+
+  opts &= ALL_ITEM_OPTS;
+
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
-  
+
   if (item)
     {
       if (item->opt != opts)
   if (item)
     {
       if (item->opt != opts)
-       {               
+       {
          MENU *menu = item->imenu;
          MENU *menu = item->imenu;
-         
+
          item->opt = opts;
          item->opt = opts;
-         
+
          if ((!(opts & O_SELECTABLE)) && item->value)
            item->value = FALSE;
          if ((!(opts & O_SELECTABLE)) && item->value)
            item->value = FALSE;
-         
+
          if (menu && (menu->status & _POSTED))
            {
          if (menu && (menu->status & _POSTED))
            {
-             Move_And_Post_Item( menu, item );
+             Move_And_Post_Item(menu, item);
              _nc_Show_Menu(menu);
            }
        }
     }
   else
     _nc_Default_Item.opt = opts;
              _nc_Show_Menu(menu);
            }
        }
     }
   else
     _nc_Default_Item.opt = opts;
-  
+
   RETURN(E_OK);
 }
 
   RETURN(E_OK);
 }
 
@@ -88,18 +93,22 @@ int set_item_opts(ITEM *item, Item_Options opts)
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
-int item_opts_off(ITEM *item, Item_Options  opts)
-{ 
-  ITEM *citem = item; /* use a copy because set_item_opts must detect
-                         NULL item itself to adjust its behaviour */
+NCURSES_EXPORT(int)
+item_opts_off(ITEM * item, Item_Options opts)
+{
+  ITEM *citem = item;          /* use a copy because set_item_opts must detect
+
+                                  NULL item itself to adjust its behavior */
+
+  T((T_CALLED("item_opts_off(%p,%d)"), (void *)item, opts));
 
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
       Normalize_Item(citem);
 
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
       Normalize_Item(citem);
-      opts = citem->opt & ~opts;
-      return set_item_opts( item, opts );
+      opts = citem->opt & ~(opts & ALL_ITEM_OPTS);
+      returnCode(set_item_opts(item, opts));
     }
 }
 
     }
 }
 
@@ -112,18 +121,23 @@ int item_opts_off(ITEM *item, Item_Options  opts)
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
 |   Return Values :  E_OK            - success
 |                    E_BAD_ARGUMENT  - invalid options
 +--------------------------------------------------------------------------*/
-int item_opts_on(ITEM *item, Item_Options opts)
+NCURSES_EXPORT(int)
+item_opts_on(ITEM * item, Item_Options opts)
 {
 {
-  ITEM *citem = item; /* use a copy because set_item_opts must detect
-                         NULL item itself to adjust its behaviour */
-  
+  ITEM *citem = item;          /* use a copy because set_item_opts must detect
+
+                                  NULL item itself to adjust its behavior */
+
+  T((T_CALLED("item_opts_on(%p,%d)"), (void *)item, opts));
+
+  opts &= ALL_ITEM_OPTS;
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
       Normalize_Item(citem);
       opts = citem->opt | opts;
   if (opts & ~ALL_ITEM_OPTS)
     RETURN(E_BAD_ARGUMENT);
   else
     {
       Normalize_Item(citem);
       opts = citem->opt | opts;
-      return set_item_opts( item, opts );
+      returnCode(set_item_opts(item, opts));
     }
 }
 
     }
 }
 
@@ -135,9 +149,11 @@ int item_opts_on(ITEM *item, Item_Options opts)
 |
 |   Return Values :  Items options
 +--------------------------------------------------------------------------*/
 |
 |   Return Values :  Items options
 +--------------------------------------------------------------------------*/
-Item_Options item_opts(const ITEM * item)
+NCURSES_EXPORT(Item_Options)
+item_opts(const ITEM * item)
 {
 {
-  return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
+  T((T_CALLED("item_opts(%p)"), (const void *)item));
+  returnItemOpts(ALL_ITEM_OPTS & Normalize_Item(item)->opt);
 }
 
 /* m_item_opt.c ends here */
 }
 
 /* m_item_opt.c ends here */