home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / workbench / stickit2 / source.lha / source / structs.h < prev    next >
C/C++ Source or Header  |  1995-01-09  |  2KB  |  123 lines

  1. /*****************************************
  2.  *************   structs.h   *************
  3.  *****************************************/
  4.  
  5. #define INTUI_V36_NAMES_ONLY
  6.  
  7. #include <exec/exec.h>            /* For the Amiga specific types */
  8. #include <libraries/commodities.h>    /* For CxObj */
  9. #include <graphics/text.h>        /* For TextAttr */
  10. #include <intuition/intuition.h>
  11.  
  12. /*** Note structure ***/
  13.  
  14. typedef struct note *note_p;
  15.  
  16. struct note {
  17.     struct Window *win;
  18.     WORD leftedge,topedge;
  19.     WORD height,width;
  20.  
  21.     UBYTE backcolour;
  22.     UBYTE textcolour;
  23.     UBYTE caratcolour;
  24.  
  25.     struct Gadget gad;    /* The resize gadget */
  26.  
  27.     struct TextFont *font;        /* The note's font */
  28.     char fontname[STRLEN_FONTNAME];
  29.     struct TextAttr textattr;    /* The font's attributes */
  30.     char fontstring[STRLEN_FONTNAME];
  31.  
  32.     char title[STRLEN_NOTETITLE];        /* The window dragbar text */
  33.     char text[STRLEN_NOTETEXT];        /* The main note text */
  34.     char pubscreen[STRLEN_PUBSCREEN];    /* Public screen name */
  35.  
  36.     struct {
  37.         char *text;    /* Pointer to position in string of carat */    
  38.  
  39.         LONG xpos,ypos;
  40.         LONG oldxpos,oldypos;
  41.     }carat;
  42.  
  43.     /* Linked list node */
  44.  
  45.     struct Node node;
  46.  
  47.     /* Blocking requester for blocking mouse input */
  48.  
  49.     struct Requester blockreq;
  50.  
  51.     /* Menu stuff */
  52.  
  53.     APTR *visualinfo;
  54.     struct Menu *menustrip;
  55.  
  56. };
  57.  
  58. /*** Main project structure ***/
  59.  
  60. typedef struct project *prj_p;
  61.  
  62. struct project {
  63.     note_p notes[NO_NOTES];
  64.  
  65.     note_p curr_note;    /* Note on display in commodities window */
  66.  
  67.     BOOL projectchanged;
  68.     BOOL abouttoquit;
  69.  
  70.     struct {
  71.         UBYTE backcolour;
  72.         UBYTE textcolour;
  73.         UBYTE caratcolour;
  74.  
  75.         WORD noteheight,notewidth;
  76.  
  77.         struct TextFont *font;
  78.         char notefont[STRLEN_FONTNAME];
  79.         struct TextAttr textattr;
  80.  
  81.         char notefile[STRLEN_FNAME];
  82.  
  83.         BYTE cx_priority;
  84.         BOOL cx_popup;
  85.         char cx_popkey[STRLEN_CXPOPKEY];
  86.  
  87.         char pubscreen[STRLEN_PUBSCREEN];
  88.  
  89.         LONG clipunit;
  90.  
  91.         ULONG delay;
  92.  
  93.         BOOL emptyquit;
  94.         BOOL hidewarn;
  95.     }prefs;
  96.  
  97.     struct MsgPort *main_msg_port;
  98.  
  99.     CxObj *broker,*filter,*sender,*translate;
  100.     struct MsgPort *broker_msg_port;
  101.  
  102.     /* Stuff for the listview gadget in the commodities window */
  103.  
  104.     struct List commodlist;
  105.  
  106.     /* Which colour is the cycle gadget showing ? */
  107.  
  108.     int commodcolour;
  109.  
  110.     /* Double click in the listview window ? */
  111.  
  112.     int lastclicked;
  113.     ULONG doubleclickseconds,doubleclickmicros;
  114.  
  115.     /* Blocking requester for blocking mouse input in commodities win */
  116.  
  117.     struct Requester blockreq;
  118.  
  119.     /* Clipboard handle */
  120.  
  121.     struct IFFHandle *iffhandle;
  122. };
  123.