NetBSD/dist/cdk/include/cdk_util.h

355 lines
7.9 KiB
C

#ifndef CDKUTIL_H
#define CDKUTIL_H 1
#include <cdk/cdk.h>
/*
* Copyright 1999, Mike Glover
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgment:
* This product includes software developed by Mike Glover
* and contributors.
* 4. Neither the name of Mike Glover, nor the names of contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY MIKE GLOVER AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL MIKE GLOVER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* This beeps at the user. The standard curses beep() does not
* flush the stream, so it will only beep until a force is made.
* This forces a flush after issuing the beep command.
*/
void Beep(void);
/*
* This aligns a 'box' on the given window with the height and
* width given.
*/
void alignxy (
WINDOW * /* window */,
int * /* xpos */,
int * /* ypos */,
int /* boxWidth */,
int /* boxHeight */);
/*
* This returns a substring of the given string.
*/
char *substring (
char * /* string */,
int /* start */,
int /* width */);
/*
* This takes a string, a field width and a justification type and returns the
* justification adjustment to make, to fill the justification requirement.
*/
int justifyString (
int /* fieldWidth */,
int /* mesglen */,
int /* justify */);
/*
* This is a quick little popup label widget.
*/
void popupLabel (
CDKSCREEN * /* win */,
char ** /* mesg */,
int /* count */);
/*
* This is a quick little popup dialog box.
*/
int popupDialog (
CDKSCREEN * /* screen */,
char ** /* mesg */,
int /* mesgCount */,
char ** /* buttons */,
int /* buttonCount */);
/*
* This pops up a scrolling list and returns the value selected.
*/
int getListIndex (
CDKSCREEN * /* screen */,
char * /* title */,
char ** /* list */,
int /* listSize */,
boolean /* numbers */);
/*
* This gets a simple string value from a user.
*/
char *getString (
CDKSCREEN * /* screen */,
char * /* title */,
char * /* label */,
char * /* init */);
/*
* This allows a user to view a file.
*/
int viewFile (
CDKSCREEN * /* screen */,
char * /* title */,
char * /* filename */,
char ** /* buttons */,
int /* buttonCount */);
/*
* This allows a person to select a file.
*/
char *selectFile (
CDKSCREEN * /* screen */,
char * /* title */);
/*
* This allows people to view information in an array.
*/
int viewInfo (
CDKSCREEN * /* screen */,
char * /* title */,
char ** /* info */,
int /* size */,
char ** /* buttons */,
int /* buttonCount */,
boolean /* interpret */);
/*
* This is needed for calling the quick sort routines. (I may kill
* this and use the libc qsort)
*/
void quickSort (
char * /* list */ [],
int /* left */,
int /* right */);
void swapIndex (
char * /* list */ [],
int /* i */,
int /* j */);
/*
* This reads a file, loads the contents into info and
* returns the number of lines read.
*/
int readFile (
char * /* filename */,
char ** /* info */,
int /* maxlines */);
/*
* This strips which space from the front/back of the given
* string. The stripType is one of: vFRONT, vBACK, vBOTH.
*/
void stripWhiteSpace (
EStripType /* stripType */,
char * /* string */);
/*
* These functions are used to manage a string which is split into parts, e.g.,
* a file which is read into memory.
*/
char **CDKsplitString(
char * /* string */,
int /* separator */);
unsigned CDKcountStrings(
char ** /* list */);
void CDKfreeStrings(
char ** /* list */);
/*
* This returns the length of an integer.
*/
int intlen (
int /* value */);
/*
* This opens the given directory and reads in the contents. It stores
* the results in 'list' and returns the number of elements found.
*/
int getDirectoryContents (
char * /* directory */,
char ** /* list */,
int /* maxListSize */);
/*
* This looks for the given pattern in the given list.
*/
int searchList (
char ** /* list */,
int /* listSize */,
char * /* pattern */);
/*
* This returns the basename of a file.
*/
char *baseName (
char * /* filename */);
/*
* This returns the directory name of a file.
*/
char *dirName (
char * /* filename */);
/*
* This frees the memory used by the given string.
*/
void freeChar (
char * /* string */);
/*
* This frees the memory used by the given string.
*/
void freeChtype (
chtype * /* string */);
/*
* This frees the memory used by the given list of strings.
*/
void freeCharList (
char ** /* list */,
unsigned /* size */);
/*
* This sets the elements of the given string to 'character'
*/
void cleanChar (
char * /* string */,
int /* length */,
char /* character */);
/*
* This sets the elements of the given string to 'character'
*/
void cleanChtype (
chtype * /* string */,
int /* length */,
chtype /* character */);
/*
* This takes a chtype pointer and returns a char pointer.
*/
char *chtype2Char (
chtype * /* string */);
/*
* This takes a char pointer and returns a chtype pointer.
*/
chtype *char2Chtype (
char * /* string */,
int * /* length */,
int * /* align */);
/*
* This takes a character pointer and returns the equivalent
* display type.
*/
EDisplayType char2DisplayType (
char * /* string */);
/*
* This copies the given string.
*/
chtype *copyChtype (
chtype * /* string */);
/*
* This copies the given string.
*/
char *copyChar (
char * /* string */);
/*
* This returns the length of the given string.
*/
int chlen (
chtype * /* string */);
/*
* This takes a file mode and returns the first character of the file
* permissions string.
*/
int mode2Filetype (
mode_t /* fileMode */);
/*
* This takes a file mode and stores the character representation
* of the mode in 'string'. This also returns the octal value
* of the file mode.
*/
int mode2Char (
char * /* string */,
mode_t /* fileMode */);
/*
* This looks for a link. (used by the </L> pattern)
*/
int checkForLink (
char * /* line */,
char * /* filename */);
/*
* This function help set the height/width values of a widget.
*/
int setWidgetDimension (
int /* parentDim */,
int /* proposedDim */,
int /* adjustment */);
/*
* This safely erases a given window.
*/
void eraseCursesWindow (
WINDOW * /* window */);
/*
* This safely deletes a given window.
*/
void deleteCursesWindow (
WINDOW * /* window */);
/*
* This moves a given window
*/
void moveCursesWindow (
WINDOW * /* window */,
int /* xdiff */,
int /* ydiff */);
/*
* Return an integer like 'floor()', which returns a double.
*/
int floorCDK(double);
/*
* Return an integer like 'ceil()', which returns a double.
*/
int ceilCDK(double);
#endif /* CDKUTIL_H */