home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / Lists.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-30  |  9.4 KB  |  254 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Lists.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __LISTS__
  13. #define __LISTS__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __CONTROLS__
  23. #include <Controls.h>
  24. /*    #include <Quickdraw.h>                                        */
  25. /*        #include <QuickdrawText.h>                                */
  26. /*            #include <IntlResources.h>                            */
  27. /*    #include <Menus.h>                                            */
  28. #endif
  29.  
  30. #ifndef __MEMORY__
  31. #include <Memory.h>
  32. #endif
  33.  
  34. enum  {
  35.     lDoVAutoscroll                = 2,
  36.     lDoHAutoscroll                = 1,
  37.     lOnlyOne                    = -128,
  38.     lExtendDrag                    = 64,
  39.     lNoDisjoint                    = 32,
  40.     lNoExtend                    = 16,
  41.     lNoRect                        = 8,
  42.     lUseSense                    = 4,
  43.     lNoNilHilite                = 2,
  44.     lInitMsg                    = 0,
  45.     lDrawMsg                    = 1,
  46.     lHiliteMsg                    = 2,
  47.     lCloseMsg                    = 3
  48. };
  49.  
  50. typedef Point Cell;
  51.  
  52. typedef char DataArray[32001], *DataPtr, **DataHandle;
  53.  
  54. typedef pascal short (*ListSearchProcPtr)(Ptr aPtr, Ptr bPtr, short aLen, short bLen);
  55.  
  56. enum {
  57.     uppListSearchProcInfo = kPascalStackBased
  58.          | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  59.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  60.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  61.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  62.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short)))
  63. };
  64.  
  65. #if USESROUTINEDESCRIPTORS
  66. typedef UniversalProcPtr ListSearchUPP;
  67.  
  68. #define CallListSearchProc(userRoutine, aPtr, bPtr, aLen, bLen)        \
  69.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppListSearchProcInfo, (aPtr), (bPtr), (aLen), (bLen))
  70. #define NewListSearchProc(userRoutine)        \
  71.         (ListSearchUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppListSearchProcInfo, GetCurrentISA())
  72. #else
  73. typedef ListSearchProcPtr ListSearchUPP;
  74.  
  75. #define CallListSearchProc(userRoutine, aPtr, bPtr, aLen, bLen)        \
  76.         (*(userRoutine))((aPtr), (bPtr), (aLen), (bLen))
  77. #define NewListSearchProc(userRoutine)        \
  78.         (ListSearchUPP)(userRoutine)
  79. #endif
  80.  
  81. typedef Boolean (*ListClickLoopProcPtr)(void);
  82.  
  83. enum {
  84.     uppListClickLoopProcInfo = kCStackBased
  85.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  86. };
  87.  
  88. #if USESROUTINEDESCRIPTORS
  89. typedef UniversalProcPtr ListClickLoopUPP;
  90.  
  91. #define CallListClickLoopProc(userRoutine)        \
  92.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppListClickLoopProcInfo)
  93. #define NewListClickLoopProc(userRoutine)        \
  94.         (ListClickLoopUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppListClickLoopProcInfo, GetCurrentISA())
  95. #else
  96. typedef ListClickLoopProcPtr ListClickLoopUPP;
  97.  
  98. #define CallListClickLoopProc(userRoutine)        \
  99.         (*(userRoutine))()
  100. #define NewListClickLoopProc(userRoutine)        \
  101.         (ListClickLoopUPP)(userRoutine)
  102. #endif
  103.  
  104. #if defined(powerc) || defined (__powerc)
  105. #pragma options align=mac68k
  106. #endif
  107. struct ListRec {
  108.     Rect                        rView;
  109.     GrafPtr                        port;
  110.     Point                        indent;
  111.     Point                        cellSize;
  112.     Rect                        visible;
  113.     ControlHandle                vScroll;
  114.     ControlHandle                hScroll;
  115.     char                        selFlags;
  116.     Boolean                        lActive;
  117.     char                        lReserved;
  118.     char                        listFlags;
  119.     long                        clikTime;
  120.     Point                        clikLoc;
  121.     Point                        mouseLoc;
  122.     ListClickLoopUPP            lClickLoop;
  123.     Cell                        lastClick;
  124.     long                        refCon;
  125.     Handle                        listDefProc;
  126.     Handle                        userHandle;
  127.     Rect                        dataBounds;
  128.     DataHandle                    cells;
  129.     short                        maxIndex;
  130.     short                        cellArray[1];
  131. };
  132. #if defined(powerc) || defined(__powerc)
  133. #pragma options align=reset
  134. #endif
  135.  
  136. typedef struct ListRec ListRec;
  137.  
  138. typedef ListRec *ListPtr, **ListHandle;
  139.  
  140. typedef pascal void (*ListDefProcPtr)(short lMessage, Boolean lSelect, Rect *lRect, Cell lCell, short lDataOffset, short lDataLen, ListHandle lHandle);
  141.  
  142. enum {
  143.     uppListDefProcInfo = kPascalStackBased
  144.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  145.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean)))
  146.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect*)))
  147.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Cell)))
  148.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(short)))
  149.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(short)))
  150.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(ListHandle)))
  151. };
  152.  
  153. #if USESROUTINEDESCRIPTORS
  154. typedef UniversalProcPtr ListDefUPP;
  155.  
  156. #define CallListDefProc(userRoutine, lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle)        \
  157.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppListDefProcInfo, (lMessage), (lSelect), (lRect), (lCell), (lDataOffset), (lDataLen), (lHandle))
  158. #define NewListDefProc(userRoutine)        \
  159.         (ListDefUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppListDefProcInfo, GetCurrentISA())
  160. #else
  161. typedef ListDefProcPtr ListDefUPP;
  162.  
  163. #define CallListDefProc(userRoutine, lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, lHandle)        \
  164.         (*(userRoutine))((lMessage), (lSelect), (lRect), (lCell), (lDataOffset), (lDataLen), (lHandle))
  165. #define NewListDefProc(userRoutine)        \
  166.         (ListDefUPP)(userRoutine)
  167. #endif
  168.  
  169. #ifdef __cplusplus
  170. extern "C" {
  171. #endif
  172.  
  173. extern ListHandle lnew(Rect *rView, Rect *dataBounds, Point *cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert);
  174. extern pascal ListHandle LNew(const Rect *rView, const Rect *dataBounds, Point cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert)
  175.  THREEWORDINLINE(0x3F3C, 0x0044, 0xA9E7);
  176. extern pascal void LDispose(ListHandle lHandle)
  177.  THREEWORDINLINE(0x3F3C, 0x0028, 0xA9E7);
  178. extern pascal short LAddColumn(short count, short colNum, ListHandle lHandle)
  179.  THREEWORDINLINE(0x3F3C, 0x0004, 0xA9E7);
  180. extern pascal short LAddRow(short count, short rowNum, ListHandle lHandle)
  181.  THREEWORDINLINE(0x3F3C, 0x0008, 0xA9E7);
  182. extern pascal void LDelColumn(short count, short colNum, ListHandle lHandle)
  183.  THREEWORDINLINE(0x3F3C, 0x0020, 0xA9E7);
  184. extern pascal void LDelRow(short count, short rowNum, ListHandle lHandle)
  185.  THREEWORDINLINE(0x3F3C, 0x0024, 0xA9E7);
  186. extern pascal Boolean LGetSelect(Boolean next, Cell *theCell, ListHandle lHandle)
  187.  THREEWORDINLINE(0x3F3C, 0x003C, 0xA9E7);
  188. extern pascal Cell LLastClick(ListHandle lHandle)
  189.  THREEWORDINLINE(0x3F3C, 0x0040, 0xA9E7);
  190. extern pascal Boolean LNextCell(Boolean hNext, Boolean vNext, Cell *theCell, ListHandle lHandle)
  191.  THREEWORDINLINE(0x3F3C, 0x0048, 0xA9E7);
  192. extern pascal Boolean LSearch(const void *dataPtr, short dataLen, ListSearchUPP searchProc, Cell *theCell, ListHandle lHandle)
  193.  THREEWORDINLINE(0x3F3C, 0x0054, 0xA9E7);
  194. extern pascal void LSize(short listWidth, short listHeight, ListHandle lHandle)
  195.  THREEWORDINLINE(0x3F3C, 0x0060, 0xA9E7);
  196. extern pascal void LSetDrawingMode(Boolean drawIt, ListHandle lHandle)
  197.  THREEWORDINLINE(0x3F3C, 0x002C, 0xA9E7);
  198. extern pascal void LScroll(short dCols, short dRows, ListHandle lHandle)
  199.  THREEWORDINLINE(0x3F3C, 0x0050, 0xA9E7);
  200. extern pascal void LAutoScroll(ListHandle lHandle)
  201.  THREEWORDINLINE(0x3F3C, 0x0010, 0xA9E7);
  202. extern pascal void LUpdate(RgnHandle theRgn, ListHandle lHandle)
  203.  THREEWORDINLINE(0x3F3C, 0x0064, 0xA9E7);
  204. extern pascal void LActivate(Boolean act, ListHandle lHandle)
  205.  TWOWORDINLINE(0x4267, 0xA9E7);
  206. extern pascal void LCellSize(Point cSize, ListHandle lHandle)
  207.  THREEWORDINLINE(0x3F3C, 0x0014, 0xA9E7);
  208. extern pascal Boolean LClick(Point pt, short modifiers, ListHandle lHandle)
  209.  THREEWORDINLINE(0x3F3C, 0x0018, 0xA9E7);
  210. extern pascal void LAddToCell(const void *dataPtr, short dataLen, Cell theCell, ListHandle lHandle)
  211.  THREEWORDINLINE(0x3F3C, 0x000C, 0xA9E7);
  212. extern pascal void LClrCell(Cell theCell, ListHandle lHandle)
  213.  THREEWORDINLINE(0x3F3C, 0x001C, 0xA9E7);
  214. extern pascal void LGetCell(void *dataPtr, short *dataLen, Cell theCell, ListHandle lHandle)
  215.  THREEWORDINLINE(0x3F3C, 0x0038, 0xA9E7);
  216. extern pascal void LGetCellDataLocation(short *offset, short *len, Cell theCell, ListHandle lHandle)
  217.  THREEWORDINLINE(0x3F3C, 0x0034, 0xA9E7);
  218. extern pascal void LRect(Rect *cellRect, Cell theCell, ListHandle lHandle)
  219.  THREEWORDINLINE(0x3F3C, 0x004C, 0xA9E7);
  220. extern pascal void LSetCell(const void *dataPtr, short dataLen, Cell theCell, ListHandle lHandle)
  221.  THREEWORDINLINE(0x3F3C, 0x0058, 0xA9E7);
  222. extern pascal void LSetSelect(Boolean setIt, Cell theCell, ListHandle lHandle)
  223.  THREEWORDINLINE(0x3F3C, 0x005C, 0xA9E7);
  224. extern pascal void LDraw(Cell theCell, ListHandle lHandle)
  225.  THREEWORDINLINE(0x3F3C, 0x0030, 0xA9E7);
  226. extern void laddtocell(Ptr dataPtr, short dataLen, Cell *theCell, ListHandle lHandle);
  227. extern void lclrcell(Cell *theCell, ListHandle lHandle);
  228. extern void lgetcelldatalocation(short *offset, short *len, Cell *theCell, ListHandle lHandle);
  229. extern void lgetcell(Ptr dataPtr, short *dataLen, Cell *theCell, ListHandle lHandle);
  230. extern ListHandle lnew(Rect *rView, Rect *dataBounds, Point *cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean HasGrow, Boolean ScrollHoriz, Boolean ScrollVert);
  231. extern void lrect(Rect *cellRect, Cell *theCell, ListHandle lHandle);
  232. extern void lsetcell(Ptr dataPtr, short dataLen, Cell *theCell, ListHandle lHandle);
  233. extern void lsetselect(Boolean setIt, Cell *theCell, ListHandle lHandle);
  234. extern void ldraw(Cell *theCell, ListHandle lHandle);
  235. extern Boolean lclick(Point *pt, short modifiers, ListHandle lHandle);
  236. extern void lcellsize(Point *cSize, ListHandle lHandle);
  237. #if OLDROUTINENAMES
  238. #define LDoDraw(drawIt, lHandle) LSetDrawingMode(drawIt, lHandle)
  239.  
  240. #define LFind(offset, len, theCell, lHandle)  \
  241.     LGetCellDataLocation(offset, len, theCell, lHandle)
  242.  
  243. #define lfind(offset, len, theCell, lHandle)  \
  244.     lgetcelldatalocation(offset, len, theCell, lHandle)
  245.  
  246. #endif
  247.  
  248. #ifdef __cplusplus
  249. }
  250. #endif
  251.  
  252. #endif
  253.  
  254.