home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0636.ZIP / CCE_0636 / CURSES / CRSSRC12.ZOO / widget / widget.h < prev    next >
C/C++ Source or Header  |  1991-05-03  |  5KB  |  182 lines

  1. #ifndef _WIDGET_H
  2. #define _WIDGET_H
  3.  
  4. #ifndef _COMPILER_H
  5. #include <compiler.h>
  6. #endif
  7.  
  8. /*****************************************************************************
  9. /*  FILE:        widget.h
  10. /*  DATE:        August 1988.
  11. /*  AUTHOR:        Richard A. Culshaw.
  12. /*  DESCRIPTION:    Contains the definitions of the widget structures.
  13. /*            It should be included by all programs that want to
  14. /*            use the widget library.
  15. /* DISCLAIMER:        This file is deemed to be public-domain, on the simple
  16. /*            provisos that this section remains in this file and
  17. /*            that code using it do not do so for monetary gain.
  18. /*            Neither the author, nor the authors employees at the
  19. /*            time of developing this code, accept any liability or
  20. /*            responsibility for the use, abuse or misuse of this
  21. /*            code.
  22. /*****************************************************************************/
  23.  
  24. #include <stddef.h>
  25. #include <stdlib.h>
  26. #include <string.h>
  27. #include <memory.h>
  28. #include <curses.h>
  29.  
  30. /* definition for command widget entry in linked list */
  31. struct    cmdwid{
  32.             WINDOW        *widget;
  33.             int        id;
  34.             char        msg[100];
  35.             char        acpt;
  36.             int        (*func)();
  37.             int        length;    
  38.             int        x,y;
  39.         int        active;
  40.             struct cmdwid    *next;
  41.         } *cmdlist;
  42.  
  43. /* definition for label widget entry in linked list */
  44. struct    lblwid{
  45.             WINDOW        *widget;
  46.             int        id;
  47.             char        msg[100];
  48.             char        pos;
  49.             int        length;    
  50.         int        difference;
  51.             int        x,y;
  52.             struct lblwid    *next;
  53.         } *lbllist;
  54.  
  55. /* definition for togle widget entry in linked list */
  56. struct     tglwid{
  57.             WINDOW        *widget;
  58.             int        id;
  59.             char        msg[100];
  60.             char        tgl[10][20];
  61.             char        toggle;
  62.             int        cur;
  63.          int         total;
  64.             int        length;
  65.             int         xtgl;
  66.             int        x,y;
  67.         int        active;
  68.             struct tglwid    *next;
  69.         } *tgllist;
  70.  
  71. /* definition for input widget entry in linked list */
  72. struct inpwid{
  73.             WINDOW        *widget;
  74.             int         id;
  75.         char        msg[100];
  76.             char        acpt;
  77.             char        *input;
  78.         int        sofi;
  79.         int        exec;
  80.             int        lofs;
  81.             int        length;
  82.             int        x,y;
  83.         int        active;
  84.             struct inpwid    *next;
  85.         } *inplist;
  86.     
  87. /* linked list of characters used for activating widgets */    
  88. struct chentry {
  89.             char          ch;
  90.             int           type;
  91.             int          id;
  92.         struct chentry    *next;
  93.         } *actlist;
  94.  
  95. /* null entries in the various linked list */
  96. #define NULLCMD        (struct cmdwid *)NULL
  97. #define NULLLBL     (struct lblwid *)NULL
  98. #define NULLTGL     (struct tglwid *)NULL
  99. #define NULLINP     (struct inpwid *)NULL
  100. #define NULLCH         (struct chentry *)NULL
  101.  
  102. /* part of the specifications for label widgets */
  103. #define CENTRE        1
  104. #define    LEFTJUST    2
  105. #define RIGHTJUST    4
  106. #define NOHIGH        8
  107.  
  108. /* the types of the widgets */
  109. #define CMD        1
  110. #define TGL        2
  111. #define LBL        3
  112. #define INP        4
  113.  
  114. #define BLANK        1
  115. #define NOBLANK        0
  116.  
  117. #define NULLWIDGET    0
  118.  
  119. #define EXEC        1
  120. #define NOEXEC        0
  121.  
  122. #define VERTICAL    1
  123. #define HORIZONTAL    2
  124.  
  125. typedef int WIDGET;
  126. typedef int WIDGETTYPE;
  127.  
  128. __EXTERN int activate __PROTO((WIDGET));
  129. __EXTERN int addtochlist __PROTO((int, int, WIDGETTYPE));
  130.  
  131. __EXTERN void boxwidget __PROTO((WINDOW *, int));
  132.  
  133. __EXTERN int chactive __PROTO((WIDGET, int, int));
  134. __EXTERN int changelblwidget __PROTO((WIDGET, char *, int));
  135. __EXTERN void cleartextwindow __PROTO((void));
  136.  
  137. __EXTERN int deactivate __PROTO((WIDGET, int));
  138. __EXTERN int dehighlight __PROTO((WIDGET));
  139. __EXTERN void deletechentry __PROTO((int));
  140. __EXTERN void drawcmdwidget __PROTO((WINDOW *, char *, int, int, int));
  141. __EXTERN void drawinpwidget __PROTO((WINDOW *, char *, int, int, int, int));
  142. __EXTERN void drawlblwidget __PROTO((WINDOW *, char *, int, int, int, int));
  143. __EXTERN void drawtextwindow __PROTO((int));
  144. __EXTERN void drawtglwidget __PROTO((WINDOW *, char *, char *, int, int, int));
  145.  
  146. __EXTERN void endwidgets __PROTO((void));
  147.  
  148. __EXTERN int getinput __PROTO((WIDGET));
  149.  
  150. __EXTERN int highlight __PROTO((WIDGET));
  151. __EXTERN void home __PROTO((void));
  152.  
  153. __EXTERN void initialisewidgets __PROTO((void));
  154.  
  155. __EXTERN void killcmdwidget __PROTO((WIDGET));
  156. __EXTERN void killinpwidget __PROTO((WIDGET));
  157. __EXTERN void killlblwidget __PROTO((WIDGET));
  158. __EXTERN void killtextwindow __PROTO((void));
  159. __EXTERN void killtglwidget __PROTO((WIDGET));
  160. __EXTERN int killwidget __PROTO((WIDGET));
  161.  
  162. __EXTERN int light __PROTO((WIDGET, int));
  163.  
  164. __EXTERN WIDGET mkcmdwidget __PROTO((char *, int, int (*)(), int));
  165. __EXTERN WIDGET mkinpwidget __PROTO((char *, int, char *, int, int, int, int));
  166. __EXTERN WIDGET mklblwidget __PROTO((char *, int, int, int));
  167. __EXTERN WIDGET mktglwidget __PROTO((char *, int, char **, int, int));
  168.  
  169. __EXTERN int opentextwindow __PROTO((int, int));
  170.  
  171. __EXTERN void report __PROTO((char *));
  172.  
  173. __EXTERN void screenrefresh __PROTO((void));
  174.  
  175. __EXTERN void togglewidget __PROTO((WIDGET));
  176. __EXTERN int tsttglwidget __PROTO((WIDGET));
  177.  
  178. __EXTERN WIDGET widgetinput __PROTO((void));
  179. __EXTERN WIDGETTYPE  widgettype __PROTO((WIDGET));
  180.  
  181. #endif /* _WIDGET_H */
  182.