This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
magicka/deps/cdk-5.0-20161210/include/cdk_util.h

443 lines
9.5 KiB
C
Raw Permalink Normal View History

/*
* $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 <cdk.h>
#undef CDKINCLUDES
#include <binding.h>
#include <cdkscreen.h>
#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 </L> 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 */