Condividi tramite


_EdIndent( ) API Library Routine

Indents the selected text in the file in the specified window the specified number of tab stops.

void _EdIndent(WHANDLE wh, int tabstops)
WHANDLE wh;            /* Handle of editing window. */
int tabstops;                  /* Number of tab stops. */

Remarks

You can specify a negative number for tabstops to cause a hanging indent for the selection.

For more information on how to create an API library and integrate it with Visual FoxPro, see Accessing the Visual FoxPro API.

Example

The following example opens an editing session for a file specified by a parameter, and indents lines 13 and 15 in the file by a single tab stop.

Visual FoxPro Code

SET LIBRARY TO EDINDENT
= EDINDENT("x")

C Code

#include <pro_ext.h>

FAR Example(ParamBlk FAR *parm)
{
#define pFILENAME ((char FAR *) _HandToPtr(parm->p[0].val.ev_handle))

   WHANDLE wh;

   if (!_SetHandSize(parm->p[0].val.ev_handle,
      parm->p[0].val.ev_length+1)) {
      _Error(182); // "Insufficient memory"
   }
   pFILENAME[parm->p[0].val.ev_length] = '\0';

   _HLock(parm->p[0].val.ev_handle);
   wh = _EdOpenFile(pFILENAME, FO_READWRITE);
   _HUnLock(parm->p[0].val.ev_handle);

   _EdSelect(wh, _EdGetLinePos(wh, 12), _EdGetLinePos(wh, 14));
   _EdIndent(wh, 1);
}
FoxInfo myFoxInfo[] = {
   {"EDINDENT", (FPFI) Example, 1, "C"},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

See Also

_EdGetLineNum( ) API Library Routine | _EdGetLinePos( ) API Library Routine | _EdGetPos( ) API Library Routine | _EdSetPos( ) API Library Routine