/* * $Id: cdk_util.h,v 1.35 2014/01/19 01:58:31 tom Exp $ */ #ifndef CDKINCLUDES #ifndef CDKUTIL_H #define CDKUTIL_H 1 #ifdef __cplusplus extern "C" { #endif #ifndef CDK_H #define CDKINCLUDES #include #undef CDKINCLUDES #include #include #endif /* * Changes 1999-2012,2014 copyright Thomas E. Dickey * * 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 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 */, CDK_CSTRING2 /* mesg */, int /* count */); /* * This is a quick little popup label widget. */ void popupLabelAttrib ( CDKSCREEN * /* win */, CDK_CSTRING2 /* mesg */, int /* count */, chtype /* attribute */); /* * This is a quick little popup dialog box. */ int popupDialog ( CDKSCREEN * /* screen */, CDK_CSTRING2 /* mesg */, int /* mesgCount */, CDK_CSTRING2 /* buttons */, int /* buttonCount */); /* * This pops up a scrolling list and returns the value selected. */ int getListIndex ( CDKSCREEN * /* screen */, const char * /* title */, CDK_CSTRING2 /* list */, int /* listSize */, boolean /* numbers */); /* * This gets a simple string value from a user. */ char *getString ( CDKSCREEN * /* screen */, const char * /* title */, const char * /* label */, const char * /* init */); /* * This allows a user to view a file. */ int viewFile ( CDKSCREEN * /* screen */, const char * /* title */, const char * /* filename */, CDK_CSTRING2 /* buttons */, int /* buttonCount */); /* * This allows a person to select a file. */ char *selectFile ( CDKSCREEN * /* screen */, const char * /* title */); /* * This allows people to view information in an array. */ int viewInfo ( CDKSCREEN * /* screen */, const char * /* title */, CDK_CSTRING2 /* info */, int /* size */, CDK_CSTRING2 /* buttons */, int /* buttonCount */, boolean /* interpret */); /* * This is a wrapper for qsort. */ void sortList ( CDK_CSTRING * /* list */, int /* length */); /* * This reads a file, loads the contents into info and * returns the number of lines read. */ int CDKreadFile ( const char * /* filename */, char *** /* info */); /* * This strips white 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( const char * /* string */, int /* separator */); unsigned CDKallocStrings( char *** /* list */, char * /* item */, unsigned /* length */, unsigned /* used */); unsigned CDKcountStrings( CDK_CSTRING2 /* list */); void CDKfreeStrings( char ** /* list */); /* * Free a list of chtype-strings, terminated by a null pointer. */ void CDKfreeChtypes( chtype ** /* 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 CDKgetDirectoryContents ( const char * /* directory */, char *** /* list */); /* * This looks for the given pattern in the given list. */ int searchList ( CDK_CSTRING2 /* list */, int /* listSize */, const 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 frees the memory used by the given list of strings. */ void freeChtypeList ( chtype ** /* 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 ( const chtype * /* string */); /* * This takes a chtype pointer and returns a char pointer with embedded * formatting information. */ char *chtype2String ( const chtype * /* string */); /* * This takes a char pointer and returns a chtype pointer. */ chtype *char2Chtype ( const char * /* string */, int * /* length */, int * /* align */); /* * Compare a char string to a chtype string */ int cmpStrChstr(const char * /* str */, const chtype * /* chstr */); /* * Copy from a chtype string to a char string */ void chstrncpy(char * /* dest */, const chtype * /* src */, int /* maxcount */); /* * Given a character pointer, returns the equivalent display type. */ EDisplayType char2DisplayType ( const char * /* string */); /* * Tell if a display type is "hidden" */ boolean isHiddenDisplayType ( EDisplayType /* type */); /* * Filter an input character according to the display type. */ int filterByDisplayType( EDisplayType /* type */, chtype /* input */); /* * Copy the given string. */ chtype *copyChtype ( const chtype * /* string */); /* * Copy the given string. */ char *copyChar ( const char * /* string */); /* * Copy the given list. */ char **copyCharList ( const char ** /* list */); /* * Copy the given list. */ chtype **copyChtypeList ( const chtype ** /* list */); /* * Return the length of the given string. */ int chlen ( const chtype * /* string */); /* * Return the length of the given list. */ int lenCharList ( const char ** /* list */); int lenChtypeList ( const chtype ** /* list */); /* * 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 pattern) */ int checkForLink ( const 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); #ifdef __cplusplus } #endif #endif /* CDKUTIL_H */ #endif /* CDKINCLUDES */