X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=form%2Fform.priv.h;h=048d9f84592e3f9b468e811703ad2c3fcc78a0ff;hp=49250b4e5b3b15f714babe218bf7dd9204f6ec9b;hb=45a2b5bc1a4536173178e9907feb268c708797c7;hpb=f5da57ad7eb397b1001e2fca9cb0e278a6564716 diff --git a/form/form.priv.h b/form/form.priv.h index 49250b4e..048d9f84 100644 --- a/form/form.priv.h +++ b/form/form.priv.h @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 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 * @@ -30,12 +31,15 @@ * Author: Juergen Pfeifer, 1995,1997 * ****************************************************************************/ -/* $Id: form.priv.h,v 0.32 2009/11/07 21:26:43 tom Exp $ */ +/* $Id: form.priv.h,v 0.47 2020/12/11 23:20:11 tom Exp $ */ #ifndef FORM_PRIV_H #define FORM_PRIV_H 1 - +/* *INDENT-OFF*/ #include "curses.priv.h" + +#define NCURSES_OPAQUE_FORM 0 + #include "mf_common.h" #if USE_WIDEC_SUPPORT @@ -65,9 +69,9 @@ /*********************** * Default objects * ***********************/ -extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form; -extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field; -extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType; +extern FORM_EXPORT_VAR(FORM *) _nc_Default_Form; +extern FORM_EXPORT_VAR(FIELD *) _nc_Default_Field; +extern FORM_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType; /* form status values */ #define _OVLMODE (0x04U) /* Form is in overlay mode */ @@ -106,7 +110,7 @@ extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType; #define Get_Form_Screen(form) CURRENT_SCREEN #endif -/* Retrieve forms window */ +/* Retrieve form's window */ #define Get_Form_Window(form) \ ((form)->sub \ ? (form)->sub \ @@ -119,12 +123,14 @@ extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType; /* Calculate the total size of all buffers for this field */ #define Total_Buffer_Size(field) \ - ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) * sizeof(FIELD_CELL) ) + ( (size_t)(Buffer_Length(field) + 1) * (size_t)(1+(field)->nbuf) * sizeof(FIELD_CELL) ) /* Logic to determine whether or not a field is single lined */ #define Single_Line_Field(field) \ (((field)->rows + (field)->nrow) == 1) +#define Field_Has_Option(f,o) ((((unsigned)(f)->opts) & o) != 0) + /* Logic to determine whether or not a field is selectable */ #define Field_Is_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)==O_SELECTABLE) #define Field_Is_Not_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)!=O_SELECTABLE) @@ -146,7 +152,7 @@ TypeArgument; O_NL_OVERLOAD |\ O_BS_OVERLOAD ) -#define ALL_FIELD_OPTS (Field_Options)( \ +#define STD_FIELD_OPTS (Field_Options)( \ O_VISIBLE |\ O_ACTIVE |\ O_PUBLIC |\ @@ -156,38 +162,46 @@ TypeArgument; O_AUTOSKIP|\ O_NULLOK |\ O_PASSOK |\ - O_STATIC ) + O_STATIC) + +#define ALL_FIELD_OPTS (Field_Options)( \ + STD_FIELD_OPTS |\ + O_DYNAMIC_JUSTIFY |\ + O_NO_LEFT_STRIP |\ + O_EDGE_INSERT_STAY |\ + O_INPUT_LIMIT) #define C_BLANK ' ' #define is_blank(c) ((c)==C_BLANK) #define C_ZEROS '\0' -extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*); -extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*); -extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*); -extern NCURSES_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *); -extern NCURSES_EXPORT(void) _nc_Free_Type (FIELD *); - -extern NCURSES_EXPORT(int) _nc_Synchronize_Attributes (FIELD*); -extern NCURSES_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options); -extern NCURSES_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*); -extern NCURSES_EXPORT(int) _nc_Refresh_Current_Field (FORM*); -extern NCURSES_EXPORT(FIELD *) _nc_First_Active_Field (FORM*); -extern NCURSES_EXPORT(bool) _nc_Internal_Validation (FORM*); -extern NCURSES_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*); -extern NCURSES_EXPORT(int) _nc_Position_Form_Cursor (FORM*); +extern FORM_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*); +extern FORM_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*); +extern FORM_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*); +extern FORM_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *); +extern FORM_EXPORT(void) _nc_Free_Type (FIELD *); + +extern FORM_EXPORT(int) _nc_Synchronize_Attributes (FIELD*); +extern FORM_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options); +extern FORM_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*); +extern FORM_EXPORT(int) _nc_Refresh_Current_Field (FORM*); +extern FORM_EXPORT(FIELD *) _nc_First_Active_Field (FORM*); +extern FORM_EXPORT(bool) _nc_Internal_Validation (FORM*); +extern FORM_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*); +extern FORM_EXPORT(int) _nc_Position_Form_Cursor (FORM*); +extern FORM_EXPORT(void) _nc_Unset_Current_Field(FORM *form); #if NCURSES_INTEROP_FUNCS -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_INTEGER(void); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ALNUM(void); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ALPHA(void); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_NUMERIC(void); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void); - -extern NCURSES_EXPORT(FIELDTYPE *) +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_INTEGER(void); +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ALNUM(void); +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ALPHA(void); +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void); +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_NUMERIC(void); +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void); +extern FORM_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void); + +extern FORM_EXPORT(FIELDTYPE *) _nc_generic_fieldtype(bool (*const field_check) (FORM*, FIELD *, const void *), @@ -198,33 +212,33 @@ _nc_generic_fieldtype(bool (*const field_check) (FORM*, bool (*const next)(FORM*,FIELD*,const void*), bool (*const prev)(FORM*,FIELD*,const void*), void (*freecallback)(void*)); -extern NCURSES_EXPORT(int) _nc_set_generic_fieldtype(FIELD*, FIELDTYPE*, int (*)(void**)); -extern NCURSES_EXPORT(WINDOW*) _nc_form_cursor(const FORM* , int* , int* ); +extern FORM_EXPORT(int) _nc_set_generic_fieldtype(FIELD*, FIELDTYPE*, int (*)(void**)); +extern FORM_EXPORT(WINDOW*) _nc_form_cursor(const FORM* , int* , int* ); #define INIT_FT_FUNC(func) {func} #else #define INIT_FT_FUNC(func) func #endif -extern NCURSES_EXPORT(void) _nc_get_fieldbuffer(FORM*, FIELD*, FIELD_CELL*); +extern FORM_EXPORT(void) _nc_get_fieldbuffer(FORM*, FIELD*, FIELD_CELL*); #if USE_WIDEC_SUPPORT -extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *); +extern FORM_EXPORT(wchar_t *) _nc_Widen_String(char *, int *); #endif #ifdef TRACE -#define returnField(code) TRACE_RETURN(code,field) -#define returnFieldPtr(code) TRACE_RETURN(code,field_ptr) -#define returnForm(code) TRACE_RETURN(code,form) -#define returnFieldType(code) TRACE_RETURN(code,field_type) -#define returnFormHook(code) TRACE_RETURN(code,form_hook) +#define returnField(code) TRACE_RETURN1(code,field) +#define returnFieldPtr(code) TRACE_RETURN1(code,field_ptr) +#define returnForm(code) TRACE_RETURN1(code,form) +#define returnFieldType(code) TRACE_RETURN1(code,field_type) +#define returnFormHook(code) TRACE_RETURN1(code,form_hook) -extern NCURSES_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **); -extern NCURSES_EXPORT(FIELD *) _nc_retrace_field (FIELD *); -extern NCURSES_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *); -extern NCURSES_EXPORT(FORM *) _nc_retrace_form (FORM *); -extern NCURSES_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook); +extern FORM_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **); +extern FORM_EXPORT(FIELD *) _nc_retrace_field (FIELD *); +extern FORM_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *); +extern FORM_EXPORT(FORM *) _nc_retrace_form (FORM *); +extern FORM_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook); #else /* !TRACE */ @@ -293,5 +307,6 @@ extern NCURSES_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook); result = ((*buffer || (l < width)) ? FALSE : TRUE); \ } #endif +/* *INDENT-ON*/ #endif /* FORM_PRIV_H */