/* * $Id: cdk.h,v 1.37 2012/03/20 22:01:57 tom Exp $ */ #ifndef CDK_H #define CDK_H #ifdef __cplusplus extern "C" { #endif /* * Changes 2000-2009,2012 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. */ #include #include #ifdef CDK_PERL_EXT #undef instr #endif #ifdef HAVE_XCURSES #include #ifndef mvwhline #define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n)) #endif #ifndef mvwvline #define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n)) #endif #elif defined(HAVE_NCURSESW_NCURSES_H) #include #elif defined(HAVE_NCURSES_NCURSES_H) #include #elif defined(HAVE_NCURSES_H) #include #else #include #endif #include #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_DIRENT_H #include #endif #include #include #ifdef HAVE_PWD_H #include #endif #ifdef HAVE_GRP_H #include #endif #ifdef HAVE_LIMITS_H #include #endif #ifdef HAVE_GETOPT_HEADER #ifdef HAVE_GETOPT_H #include #endif #else extern int optind; extern char * optarg; #endif /* * Definitions that we do not want if term.h does */ #ifdef buttons #undef buttons #endif #ifdef lines #undef lines #endif #ifdef newline #undef newline #endif /* * Values we normally get from limits.h (assume 32-bits) */ #ifndef INT_MIN #define INT_MIN (-INT_MAX - 1) #endif #ifndef INT_MAX #define INT_MAX 2147483647 #endif #ifndef GCC_UNUSED #define GCC_UNUSED /*nothing*/ #endif #ifdef HAVE_LIBDMALLOC #include /* Gray Watson's library */ #else #undef HAVE_LIBDMALLOC #define HAVE_LIBDMALLOC 0 #endif #ifdef HAVE_LIBDBMALLOC #include /* Conor Cahill's library */ #else #undef HAVE_LIBDBMALLOC #define HAVE_LIBDBMALLOC 0 #endif /* * This enumerated typedef lists all of the CDK widget types. */ typedef enum { vNULL = 0 ,vALPHALIST ,vBUTTON ,vBUTTONBOX ,vCALENDAR ,vDIALOG ,vDSCALE ,vENTRY ,vFSCALE ,vFSELECT ,vFSLIDER ,vGRAPH ,vHISTOGRAM ,vITEMLIST ,vLABEL ,vMARQUEE ,vMATRIX ,vMENTRY ,vMENU ,vRADIO ,vSCALE ,vSCROLL ,vSELECTION ,vSLIDER ,vSWINDOW ,vTEMPLATE ,vTRAVERSE ,vUSCALE ,vUSLIDER ,vVIEWER } EObjectType; /* * This enumerated typedef lists all the valid display types for * the entry, mentry, and template widgets. */ typedef enum { vINVALID = 0 ,vCHAR ,vHCHAR ,vINT ,vHINT ,vMIXED ,vHMIXED ,vUCHAR ,vLCHAR ,vUHCHAR ,vLHCHAR ,vUMIXED ,vLMIXED ,vUHMIXED ,vLHMIXED ,vVIEWONLY } EDisplayType; /* * This enumerated typedef lists all the display types for * the histogram widget. */ typedef enum {vNONE, vPERCENT, vFRACTION, vREAL} EHistogramDisplayType; /* * This enumerated typedef defines the display types for the graph. */ typedef enum {vPLOT, vLINE} EGraphDisplayType; /* * This enumerated typedef defines where white space is to be * stripped from in the function stripWhiteSpace. */ typedef enum {vFRONT, vBACK, vBOTH} EStripType; /* * This enumerated typedef defines the type of exits the widgets * recognize. */ typedef enum {vEARLY_EXIT, vESCAPE_HIT, vNORMAL, vNEVER_ACTIVATED, vERROR} EExitType; /* * This defines a boolean type. */ typedef int boolean; /* * Declare miscellaneous defines. */ #define LEFT 9000 #define RIGHT 9001 #define CENTER 9002 #define TOP 9003 #define BOTTOM 9004 #define HORIZONTAL 9005 #define VERTICAL 9006 #define FULL 9007 #define NONE 0 #define ROW 1 #define COL 2 #define MAX_BINDINGS 300 /* unused by widgets */ #define MAX_ITEMS 2000 /* unused by widgets */ #define MAX_BUTTONS 200 /* unused by widgets */ #define MAXIMUM(a,b) ((a) > (b) ? (a) : (b)) #define MINIMUM(a,b) ((a) < (b) ? (a) : (b)) #define HALF(a) ((a) >> 1) #ifndef COLOR_PAIR #define COLOR_PAIR(a) A_NORMAL #endif #define CONTROL(c) ((c) & 0x1f) /* obsolete: use CTRL() */ /* Define the 'GLOBAL DEBUG FILEHANDLE' */ extern FILE *CDKDEBUG; /* * ========================================================= * Declare Debugging Routines. * ========================================================= */ #define START_DEBUG(a) (CDKDEBUG=startCDKDebug(a)) #define WRITE_DEBUGMESG(a,b) (writeCDKDebugMessage (CDKDEBUG,__FILE__,a,__LINE__,b)) #define END_DEBUG (stopCDKDebug(CDKDEBUG) FILE *startCDKDebug(const char *filename); void writeCDKDebugMessage (FILE *fd, const char *filename, const char *function, int line, const char *message); void stopCDKDebug (FILE *fd); /* * These header files define miscellaneous values and prototypes. */ #include #include #include #include #include #include /* * Include the CDK widget header files. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* * Generated headers: */ #include #include #include #include #include #include #include /* * Low-level object drawing */ #include #ifdef __cplusplus } #endif #endif /* CDK_H */