/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2016 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 *
#include "form.priv.h"
-MODULE_ID("$Id: fld_current.c,v 1.11 2004/12/25 22:40:13 tom Exp $")
+MODULE_ID("$Id: fld_current.c,v 1.14 2016/10/29 22:30:10 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
{
int err = E_OK;
- T((T_CALLED("set_current_field(%p,%p)"), form, field));
+ T((T_CALLED("set_current_field(%p,%p)"), (void *)form, (void *)field));
if (form == 0 || field == 0)
{
RETURN(E_BAD_ARGUMENT);
{
if (form->current != field)
{
- if (!_nc_Internal_Validation(form))
+ if (form->current && !_nc_Internal_Validation(form))
{
err = E_INVALID_FIELD;
}
RETURN(err);
}
+/*---------------------------------------------------------------------------
+| Facility : libnform
+| Function : int unfocus_current_field(FORM * form)
+|
+| Description : Removes focus from the current field.
+|
+| Return Values : E_OK - success
+| E_BAD_ARGUMENT - invalid form pointer
+| E_REQUEST_DENIED - there is no current field to unfocus
++--------------------------------------------------------------------------*/
+NCURSES_EXPORT(int)
+unfocus_current_field(FORM *const form)
+{
+ T((T_CALLED("unfocus_current_field(%p)"), (const void *)form));
+ if (form == 0)
+ {
+ RETURN(E_BAD_ARGUMENT);
+ }
+ else if (form->current == 0)
+ {
+ RETURN(E_REQUEST_DENIED);
+ }
+ _nc_Unset_Current_Field(form);
+ RETURN(E_OK);
+}
+
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : FIELD *current_field(const FORM * form)
NCURSES_EXPORT(FIELD *)
current_field(const FORM *form)
{
- T((T_CALLED("current_field(%p)"), form));
+ T((T_CALLED("current_field(%p)"), (const void *)form));
returnField(Normalize_Form(form)->current);
}
NCURSES_EXPORT(int)
field_index(const FIELD *field)
{
- T((T_CALLED("field_index(%p)"), field));
+ T((T_CALLED("field_index(%p)"), (const void *)field));
returnCode((field != 0 && field->form != 0) ? (int)field->index : -1);
}