Mac OS 9
Lists.h
Go to the documentation of this file.
1 
19 #ifndef __LISTS__
20 #define __LISTS__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __CONTROLS__
27 #include <Controls.h>
28 #endif
29 
30 #if PRAGMA_ONCE
31 #pragma once
32 #endif
33 
34 #ifdef __cplusplus
35 extern "C"
36 {
37 #endif
38 
39 #if PRAGMA_IMPORT
40 #pragma import on
41 #endif
42 
43 #if PRAGMA_STRUCT_ALIGN
44 #pragma options align = mac68k
45 #elif PRAGMA_STRUCT_PACKPUSH
46 #pragma pack(push, 2)
47 #elif PRAGMA_STRUCT_PACK
48 #pragma pack(2)
49 #endif
50 
51  typedef Point Cell;
52  typedef Rect ListBounds;
53  typedef char DataArray[32001];
54  typedef char *DataPtr;
55  typedef DataPtr *DataHandle;
56  typedef CALLBACK_API(short, ListSearchProcPtr)(Ptr aPtr, Ptr bPtr, short aLen,
57  short bLen);
58  typedef CALLBACK_API_REGISTER68K(Boolean, ListClickLoopProcPtr, (void));
59  typedef STACK_UPP_TYPE(ListSearchProcPtr) ListSearchUPP;
60  typedef REGISTER_UPP_TYPE(ListClickLoopProcPtr) ListClickLoopUPP;
61 #if !TARGET_OS_MAC
63  typedef long ListNotification;
64  enum
65  {
66  listNotifyNothing = FOUR_CHAR_CODE('nada'),
67  listNotifyClick = FOUR_CHAR_CODE('clik'),
69  FOUR_CHAR_CODE('dblc'),
70  listNotifyPreClick = FOUR_CHAR_CODE('pclk')
71  };
72 
73 #endif
75  struct ListRec
76  {
77  Rect rView;
84  SInt8 selFlags;
86  SInt8 lReserved;
87  SInt8 listFlags;
88  long clikTime;
91  ListClickLoopUPP lClickLoop;
93  long refCon;
94  Handle listDefProc;
95  Handle userHandle;
97  DataHandle cells;
98  short maxIndex;
99  short cellArray[1];
100  };
101  typedef struct ListRec ListRec;
102  typedef ListRec *ListPtr;
103  typedef ListPtr *ListHandle;
106 
107  enum
108  {
111  lDoVAutoscrollBit = 1,
112  lDoHAutoscrollBit = 0
113  };
114 
115  enum
116  {
119  lDoVAutoscroll = 2,
120  lDoHAutoscroll = 1
121  };
122 
123  enum
124  {
127  lExtendDragBit = 6,
128  lNoDisjointBit = 5,
129  lNoExtendBit = 4,
130  lNoRectBit = 3,
131  lUseSenseBit = 2,
132  lNoNilHiliteBit = 1
133  };
134 
135  enum
136  {
138  lOnlyOne = -128,
139  lExtendDrag = 64,
140  lNoDisjoint = 32,
141  lNoExtend = 16,
142  lNoRect = 8,
143  lUseSense = 4,
144  lNoNilHilite = 2
145  };
146 
147  enum
148  {
150  lInitMsg = 0,
151  lDrawMsg = 1,
152  lHiliteMsg = 2,
153  lCloseMsg = 3
154  };
155 
161  {
162  Handle iconHandle;
163  short font;
164  short face;
165  short size;
166  Str255 name;
167  };
170 
171  typedef CALLBACK_API(void, ListDefProcPtr)(short lMessage, Boolean lSelect,
172  Rect *lRect, Cell lCell,
173  short lDataOffset, short lDataLen,
174  ListHandle lHandle);
175  typedef STACK_UPP_TYPE(ListDefProcPtr) ListDefUPP;
184  ListSearchUPP
185  NewListSearchUPP(ListSearchProcPtr userRoutine);
186 #if !OPAQUE_UPP_TYPES
187  enum
188  {
189  uppListSearchProcInfo = 0x00002BE0
190  };
191 #ifdef __cplusplus
192  inline ListSearchUPP NewListSearchUPP(ListSearchProcPtr userRoutine)
193  {
194  return (ListSearchUPP)NewRoutineDescriptor(
195  (ProcPtr)(userRoutine), uppListSearchProcInfo, GetCurrentArchitecture());
196  }
197 #else
198 #define NewListSearchUPP(userRoutine) \
199  (ListSearchUPP) NewRoutineDescriptor( \
200  (ProcPtr)(userRoutine), uppListSearchProcInfo, GetCurrentArchitecture())
201 #endif
202 #endif
203 
212  ListClickLoopUPP
213  NewListClickLoopUPP(ListClickLoopProcPtr userRoutine);
214 #if !OPAQUE_UPP_TYPES
215  enum
216  {
217  uppListClickLoopProcInfo = 0x00000012
218  };
219 #ifdef __cplusplus
220  inline ListClickLoopUPP NewListClickLoopUPP(ListClickLoopProcPtr userRoutine)
221  {
222  return (ListClickLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
223  uppListClickLoopProcInfo,
224  GetCurrentArchitecture());
225  }
226 #else
227 #define NewListClickLoopUPP(userRoutine) \
228  (ListClickLoopUPP) \
229  NewRoutineDescriptor((ProcPtr)(userRoutine), uppListClickLoopProcInfo, \
230  GetCurrentArchitecture())
231 #endif
232 #endif
233 
242  ListDefUPP
243  NewListDefUPP(ListDefProcPtr userRoutine);
244 #if !OPAQUE_UPP_TYPES
245  enum
246  {
247  uppListDefProcInfo = 0x000EBD80
248  };
250 #ifdef __cplusplus
251  inline ListDefUPP NewListDefUPP(ListDefProcPtr userRoutine)
252  {
253  return (ListDefUPP)NewRoutineDescriptor(
254  (ProcPtr)(userRoutine), uppListDefProcInfo, GetCurrentArchitecture());
255  }
256 #else
257 #define NewListDefUPP(userRoutine) \
258  (ListDefUPP) NewRoutineDescriptor( \
259  (ProcPtr)(userRoutine), uppListDefProcInfo, GetCurrentArchitecture())
260 #endif
261 #endif
262 
271  void
272  DisposeListSearchUPP(ListSearchUPP userUPP);
273 #if !OPAQUE_UPP_TYPES
274 #ifdef __cplusplus
275  inline void DisposeListSearchUPP(ListSearchUPP userUPP)
276  {
277  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
278  }
279 #else
280 #define DisposeListSearchUPP(userUPP) DisposeRoutineDescriptor(userUPP)
281 #endif
282 #endif
283 
292  void
293  DisposeListClickLoopUPP(ListClickLoopUPP userUPP);
294 #if !OPAQUE_UPP_TYPES
295 #ifdef __cplusplus
296  inline void DisposeListClickLoopUPP(ListClickLoopUPP userUPP)
297  {
298  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
299  }
300 #else
301 #define DisposeListClickLoopUPP(userUPP) DisposeRoutineDescriptor(userUPP)
302 #endif
303 #endif
304 
313  void
314  DisposeListDefUPP(ListDefUPP userUPP);
315 #if !OPAQUE_UPP_TYPES
316 #ifdef __cplusplus
317  inline void DisposeListDefUPP(ListDefUPP userUPP)
318  {
319  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
320  }
321 #else
322 #define DisposeListDefUPP(userUPP) DisposeRoutineDescriptor(userUPP)
323 #endif
324 #endif
325 
334  short
335  InvokeListSearchUPP(Ptr aPtr, Ptr bPtr, short aLen, short bLen,
336  ListSearchUPP userUPP);
337 #if !OPAQUE_UPP_TYPES
338 #ifdef __cplusplus
339  inline short InvokeListSearchUPP(Ptr aPtr, Ptr bPtr, short aLen, short bLen,
340  ListSearchUPP userUPP)
341  {
342  return (short)CALL_FOUR_PARAMETER_UPP(userUPP, uppListSearchProcInfo, aPtr,
343  bPtr, aLen, bLen);
344  }
345 #else
346 #define InvokeListSearchUPP(aPtr, bPtr, aLen, bLen, userUPP) \
347  (short)CALL_FOUR_PARAMETER_UPP((userUPP), uppListSearchProcInfo, (aPtr), \
348  (bPtr), (aLen), (bLen))
349 #endif
350 #endif
351 
360 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
361 #pragma parameter __D0 InvokeListClickLoopUPP(__A0)
362 #endif
363  Boolean
364  InvokeListClickLoopUPP(ListClickLoopUPP userUPP);
365 #if !OPAQUE_UPP_TYPES && \
366  (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM)
367 #ifdef __cplusplus
368  inline Boolean InvokeListClickLoopUPP(ListClickLoopUPP userUPP)
369  {
370  return (Boolean)CALL_ZERO_PARAMETER_UPP(userUPP, uppListClickLoopProcInfo);
371  }
372 #else
373 #define InvokeListClickLoopUPP(userUPP) \
374  (Boolean) CALL_ZERO_PARAMETER_UPP((userUPP), uppListClickLoopProcInfo)
375 #endif
376 #endif
377 
386  void
387  InvokeListDefUPP(short lMessage, Boolean lSelect, Rect *lRect, Cell lCell,
388  short lDataOffset, short lDataLen, ListHandle lHandle,
389  ListDefUPP userUPP);
390 #if !OPAQUE_UPP_TYPES
391 #ifdef __cplusplus
392  inline void InvokeListDefUPP(short lMessage, Boolean lSelect, Rect *lRect,
393  Cell lCell, short lDataOffset, short lDataLen,
394  ListHandle lHandle, ListDefUPP userUPP)
395  {
396  CALL_SEVEN_PARAMETER_UPP(userUPP, uppListDefProcInfo, lMessage, lSelect,
397  lRect, lCell, lDataOffset, lDataLen, lHandle);
398  }
399 #else
400 #define InvokeListDefUPP(lMessage, lSelect, lRect, lCell, lDataOffset, \
401  lDataLen, lHandle, userUPP) \
402  CALL_SEVEN_PARAMETER_UPP((userUPP), uppListDefProcInfo, (lMessage), \
403  (lSelect), (lRect), (lCell), (lDataOffset), \
404  (lDataLen), (lHandle))
405 #endif
406 #endif
407 
408 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
410 #define NewListSearchProc(userRoutine) NewListSearchUPP(userRoutine)
411 #define NewListClickLoopProc(userRoutine) NewListClickLoopUPP(userRoutine)
412 #define NewListDefProc(userRoutine) NewListDefUPP(userRoutine)
413 #define CallListSearchProc(userRoutine, aPtr, bPtr, aLen, bLen) \
414  InvokeListSearchUPP(aPtr, bPtr, aLen, bLen, userRoutine)
415 #define CallListClickLoopProc(userRoutine) InvokeListClickLoopUPP(userRoutine)
416 #define CallListDefProc(userRoutine, lMessage, lSelect, lRect, lCell, \
417  lDataOffset, lDataLen, lHandle) \
418  InvokeListDefUPP(lMessage, lSelect, lRect, lCell, lDataOffset, lDataLen, \
419  lHandle, userRoutine)
420 #endif
422  enum
423  {
424  kListDefProcPtr = 0,
425  kListDefUserProcType = kListDefProcPtr,
426  kListDefStandardTextType = 1,
427  kListDefStandardIconType = 2
428  };
429 
430  typedef UInt32 ListDefType;
431  struct ListDefSpec
432  {
433  ListDefType defType;
434  union
435  {
436  ListDefUPP userProc;
437  } u;
438  };
439  typedef struct ListDefSpec ListDefSpec;
440  typedef ListDefSpec *ListDefSpecPtr;
449  OSStatus
450  CreateCustomList(const Rect *rView, const ListBounds *dataBounds,
451  Point cellSize, const ListDefSpec *theSpec,
452  WindowRef theWindow, Boolean drawIt, Boolean hasGrow,
453  Boolean scrollHoriz, Boolean scrollVert, ListHandle *outList);
454 
455 #if !TARGET_OS_MAC
457  typedef CALLBACK_API(void,
458  ListNotificationProcPtr)(ListHandle theList,
459  ListNotification notification,
460  long param);
461  typedef ListNotificationProcPtr ListNotificationUPP;
462 #if CALL_NOT_IN_CARBON
471  void
472  LSetNotificationCallback(ListNotificationProcPtr callBack, ListHandle lHandle);
473 
482  void
483  GetListVisibleBounds(ListHandle theList, Rect *visibleBounds);
484 
485 #endif
487 #endif
497  ListHandle
498  LNew(const Rect *rView, const ListBounds *dataBounds, Point cSize,
499  short theProc, WindowRef theWindow, Boolean drawIt, Boolean hasGrow,
500  Boolean scrollHoriz, Boolean scrollVert);
501 
525  void
527 
724  Boolean
725  LGetSelect(Boolean next, Cell *theCell, ListHandle lHandle);
726 
751  Cell
753 
794  </ pre>
795  * \copyright THINK Reference © 1991 - 1992 Symantec Corporation
796  * \non_carbon_cfm in InterfaceLib 7.1 and
797  later
798  * \carbon_lib in CarbonLib 1.0 and
799  later
800  * \mac_os_x in version 10.0 and
801  later
802  * /
803  Boolean
804  LNextCell(Boolean hNext, Boolean vNext, Cell *theCell, ListHandle lHandle);
805 
836 if ( LSearch ( "Geneva", 6, NIL, &theCell, theList ) {
837  LSetSelect(TRUE, theCell, theList);
838  LAutoScroll(theList);
839 }
840 Callback Comparison Function
841 By default, LSearch uses IUMagIDString as the comparison function (a
842 </pre>
843  * \copyright THINK Reference © 1991-1992 Symantec Corporation
844  * \non_carbon_cfm in InterfaceLib 7.1 and later
845  * \carbon_lib in CarbonLib 1.0 and later
846  * \mac_os_x in version 10.0 and later
847  */
848 Boolean
849 LSearch(const void *dataPtr, short dataLen, ListSearchUPP searchProc,
850  Cell *theCell, ListHandle lHandle);
851 
852 
888 void
889 LSize(short listWidth, short listHeight, ListHandle lHandle);
890 
899 void
900 LSetDrawingMode(Boolean drawIt, ListHandle lHandle);
901 
902 
934 LSearch ( "Geneva", 6, nil, &theCell, theList ); /* where's Geneva? */
935 LDoDraw (FALSE, theList ); /* temporarily off */
936 LScroll ( -1000,-1000, theList ); /* go to a reference point */
937 LDoDraw (TRUE, theList ); /* back on */
938 LScroll ( theCell. h,theCell.v, theList ); /* put Geneva on top */
939 LSetSelect ( TRUE, theCell, theList ); /* pre-select it */
940 Note that LScroll uses relative positioning. The example first scrolls to
941 the top of the list by scrolling up and left by 1000. The scroll will actually
942 </pre>
943  * \copyright THINK Reference © 1991-1992 Symantec Corporation
944  * \non_carbon_cfm in InterfaceLib 7.1 and later
945  * \carbon_lib in CarbonLib 1.0 and later
946  * \mac_os_x in version 10.0 and later
947  */
948 void
949 LScroll(short dCols, short dRows, ListHandle lHandle);
950 
951 
978 void
979 LAutoScroll(ListHandle lHandle);
980 
981 
1005 if(WaitNextEvent (everyEvent , &theEvent, 0, nil)) {/* in event loop */
1006  if (theEvent.what == updateEvt)
1007  {
1008  if (theEvent.message == (long)listWindow)
1009  {
1010  BeginUpdate(listWindow);
1011  LUpdate(listWindow->visRgn, theList);
1012  DrawGrowIcon(listWindow); /* if needed */
1013  EndUpdate(listWindow)
1014  }
1015  }
1016 }
1017 Update events are generated when you call InvalRect for a portion of the
1018 list window or when another window gets moved, uncovering all or a
1019 portion of the list. See GetNextEvent and BeginUpdate for related
1020 information.
1021 Hint: You may find it advantageous to store the ListHandle (theList ) into
1022 its window's WindowRecord .refCon field; that way, you can use
1023 </pre>
1024  * \copyright THINK Reference © 1991-1992 Symantec Corporation
1025  * \non_carbon_cfm in InterfaceLib 7.1 and later
1026  * \carbon_lib in CarbonLib 1.0 and later
1027  * \mac_os_x in version 10.0 and later
1028  */
1029 void
1030 LUpdate(RgnHandle theRgn, ListHandle lHandle);
1031 
1032 
1075 void
1076 LActivate(Boolean act, ListHandle lHandle);
1077 
1078 
1104 LCellSize ( cellSz, theList ); /* change the size */
1105 FillRect ( &listWindow-> portRect , white );/* clear the window */
1106 InvalRect ( &listWindow-> portRect ); /* indicate redraw all */
1107 LUpdate ( listWindow->visRgn, theList ); /*force update (in evt loop)*/
1108 </pre>
1109  * \copyright THINK Reference © 1991-1992 Symantec Corporation
1110  * \non_carbon_cfm in InterfaceLib 7.1 and later
1111  * \carbon_lib in CarbonLib 1.0 and later
1112  * \mac_os_x in version 10.0 and later
1113  */
1114 void
1115 LCellSize(Point cSize, ListHandle lHandle);
1116 
1117 
1162 Boolean
1163 LClick(Point pt, EventModifiers modifiers, ListHandle lHandle);
1164 
1165 
1190 void
1191 LAddToCell(const void *dataPtr, short dataLen, Cell theCell, ListHandle lHandle);
1192 
1193 
1215 void
1216 LClrCell(Cell theCell, ListHandle lHandle);
1217 
1218 
1249 void
1250 LGetCell(void *dataPtr, short *dataLen, Cell theCell, ListHandle lHandle);
1251 
1252 
1285 void
1286 LRect(Rect *cellRect, Cell theCell, ListHandle lHandle);
1287 
1288 
1317 void
1318 LSetCell(const void *dataPtr, short dataLen, Cell theCell, ListHandle lHandle);
1319 
1320 
1348 CelltheCell;
1349 pascal Boolean cmp1stChar(); /* custom comparison function */
1350 if ( LSearch ( &theChar, 1, cmp1stChar, &theCell, theList ) ){
1351  LSetSelect(TRUE, theCell, theList);
1352  LAutoScroll(theList); /* make sure selection is visible */
1353 }
1354 See LSearch for an example of how to make a first-character search
1355 routine, similar to that used by Standard File.
1356 Another use for LSetSelect might be to make a double-clicked selection
1357 </pre>
1358  * \copyright THINK Reference © 1991-1992 Symantec Corporation
1359  * \non_carbon_cfm in InterfaceLib 7.1 and later
1360  * \carbon_lib in CarbonLib 1.0 and later
1361  * \mac_os_x in version 10.0 and later
1362  */
1363 void
1364 LSetSelect(Boolean setIt, Cell theCell, ListHandle lHandle);
1365 
1366 
1403 LDraw( theCell, theList ); /* force cell to be redrawn */
1404 </pre>
1405  * \copyright THINK Reference © 1991-1992 Symantec Corporation
1406  * \non_carbon_cfm in InterfaceLib 7.1 and later
1407  * \carbon_lib in CarbonLib 1.0 and later
1408  * \mac_os_x in version 10.0 and later
1409  */
1410 void
1411 LDraw(Cell theCell, ListHandle lHandle);
1412 
1421 void
1422 LGetCellDataLocation(short *offset, short *len, Cell theCell,
1423  ListHandle lHandle);
1424 
1458 OSStatus
1459 RegisterListDefinition(SInt16 inResID, ListDefSpecPtr inDefSpec);
1460 
1461 #if CALL_NOT_IN_CARBON
1462 #if CALL_NOT_IN_CARBON
1471 OSErr
1472 SetListDefinitionProc(SInt16 resID, ListDefUPP defProc);
1473 
1474 #endif /** CALL_NOT_IN_CARBON */
1475 
1476 #endif /** CALL_NOT_IN_CARBON */
1477 
1478 #if !TARGET_OS_MAC
1480 #if CALL_NOT_IN_CARBON
1489 void
1490 LSetLDEF(ListDefProcPtr proc, ListRef lHandle);
1491 
1492 #endif /** CALL_NOT_IN_CARBON */
1493 
1494 #endif /** !TARGET_OS_MAC */
1495 
1496 #if CALL_NOT_IN_CARBON
1505 void
1506 laddtocell(const void *dataPtr, short dataLen, const Cell *theCell,
1507  ListHandle lHandle);
1508 
1517 void
1518 lclrcell(const Cell *theCell, ListHandle lHandle);
1519 
1528 void
1529 lgetcelldatalocation(short *offset, short *len, const Cell *theCell,
1530  ListHandle lHandle);
1531 
1540 void
1541 lgetcell(void *dataPtr, short *dataLen, const Cell *theCell,
1542  ListHandle lHandle);
1543 
1552 ListHandle
1553 lnew(const Rect *rView, const ListBounds *dataBounds, Point *cSize,
1554  short theProc, WindowRef theWindow, Boolean drawIt, Boolean hasGrow,
1555  Boolean scrollHoriz, Boolean scrollVert);
1556 
1565 void
1566 lrect(Rect *cellRect, const Cell *theCell, ListHandle lHandle);
1567 
1576 void
1577 lsetcell(const void *dataPtr, short dataLen, const Cell *theCell,
1578  ListHandle lHandle);
1579 
1588 void
1589 lsetselect(Boolean setIt, const Cell *theCell, ListHandle lHandle);
1590 
1599 void
1600 ldraw(const Cell *theCell, ListHandle lHandle);
1601 
1610 Boolean
1611 lclick(Point *pt, EventModifiers modifiers, ListHandle lHandle);
1612 
1621 void
1622 lcellsize(Point *cSize, ListHandle lHandle);
1623 
1624 #endif /** CALL_NOT_IN_CARBON */
1625 
1626 #if OLDROUTINENAMES
1627 #define LDoDraw(drawIt, lHandle) LSetDrawingMode(drawIt, lHandle)
1628 #define LFind(offset, len, theCell, lHandle) \
1629  LGetCellDataLocation(offset, len, theCell, lHandle)
1630 #if CGLUESUPPORTED
1631 #define lfind(offset, len, theCell, lHandle) \
1632  lgetcelldatalocation(offset, len, theCell, lHandle)
1633 #endif
1634 #endif /** OLDROUTINENAMES */
1635 
1636 #if ACCESSOR_CALLS_ARE_FUNCTIONS
1646 Rect *
1647 GetListViewBounds(ListRef list, Rect *view);
1648 
1657 CGrafPtr
1658 GetListPort(ListRef list);
1659 
1668 Point *
1669 GetListCellIndent(ListRef list, Point *indent);
1670 
1679 Point *
1680 GetListCellSize(ListRef list, Point *size);
1681 
1690 ListBounds *
1691 GetListVisibleCells(ListRef list, ListBounds *visible);
1692 
1701 ControlRef
1702 GetListVerticalScrollBar(ListRef list);
1703 
1712 ControlRef
1713 GetListHorizontalScrollBar(ListRef list);
1714 
1723 Boolean
1724 GetListActive(ListRef list);
1725 
1734 SInt32
1735 GetListClickTime(ListRef list);
1736 
1745 Point *
1746 GetListClickLocation(ListRef list, Point *click);
1747 
1756 Point *
1757 GetListMouseLocation(ListRef list, Point *mouse);
1758 
1767 ListClickLoopUPP
1768 GetListClickLoop(ListRef list);
1769 
1778 SInt32
1779 GetListRefCon(ListRef list);
1780 
1789 Handle
1790 GetListDefinition(ListRef list);
1791 
1800 Handle
1801 GetListUserHandle(ListRef list);
1802 
1811 ListBounds *
1812 GetListDataBounds(ListRef list, ListBounds *bounds);
1813 
1822 DataHandle
1823 GetListDataHandle(ListRef list);
1824 
1833 OptionBits
1834 GetListFlags(ListRef list);
1835 
1844 OptionBits
1845 GetListSelectionFlags(ListRef list);
1846 
1856 void
1857 SetListViewBounds(ListRef list, const Rect *view);
1858 
1867 void
1868 SetListPort(ListRef list, CGrafPtr port);
1869 
1878 void
1879 SetListCellIndent(ListRef list, Point *indent);
1880 
1889 void
1890 SetListClickTime(ListRef list, SInt32 time);
1891 
1900 void
1901 SetListClickLoop(ListRef list, ListClickLoopUPP clickLoop);
1902 
1911 void
1912 SetListLastClick(ListRef list, Cell *lastClick);
1913 
1922 void
1923 SetListRefCon(ListRef list, SInt32 refCon);
1924 
1933 void
1934 SetListUserHandle(ListRef list, Handle userHandle);
1935 
1944 void
1945 SetListFlags(ListRef list, OptionBits listFlags);
1946 
1955 void
1956 SetListSelectionFlags(ListRef list, OptionBits selectionFlags);
1957 
1958 #endif /** ACCESSOR_CALLS_ARE_FUNCTIONS */
1959 
1960 #if PRAGMA_STRUCT_ALIGN
1961 #pragma options align = reset
1962 #elif PRAGMA_STRUCT_PACKPUSH
1963 #pragma pack(pop)
1964 #elif PRAGMA_STRUCT_PACK
1965 #pragma pack()
1966 #endif
1967 
1968 #ifdef PRAGMA_IMPORT_OFF
1969 #pragma import off
1970 #elif PRAGMA_IMPORT
1971 #pragma import reset
1972 #endif
1973 
1974 #ifdef __cplusplus
1975 }
1976 #endif
1977 
1978 #endif /** __LISTS__ */
1979 * /*/*/ * /*/*/ * /*/*/ * /*/*/ * /*/*/ * /*/*/ * /*/*/ */*/
Control Manager interfaces.
EndUpdate(updtWin)
Draw all controls visible in a window.
@ everyEvent
Definition: Events.h:91
OSStatus CreateCustomList(const Rect *rView, const ListBounds *dataBounds, Point cellSize, const ListDefSpec *theSpec, WindowRef theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert, ListHandle *outList)
@ lDrawingModeOffBit
Definition: Lists.h:110
typedef CALLBACK_API(void, ListNotificationProcPtr)(ListHandle theList
ListHandle ListRef
Definition: Lists.h:105
Boolean InvokeListClickLoopUPP(ListClickLoopUPP userUPP)
ListHandle LNew(const Rect *rView, const ListBounds *dataBounds, Point cSize, short theProc, WindowRef theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert)
void InvokeListDefUPP(short lMessage, Boolean lSelect, Rect *lRect, Cell lCell, short lDataOffset, short lDataLen, ListHandle lHandle, ListDefUPP userUPP)
void GetListVisibleBounds(ListHandle theList, Rect *visibleBounds)
void DisposeListDefUPP(ListDefUPP userUPP)
Cell LLastClick(ListHandle lHandle)
Query which cell was clicked last.
@ lDrawingModeOff
Definition: Lists.h:118
long ListNotification
Definition: Lists.h:63
@ listNotifyDoubleClick
Definition: Lists.h:68
@ listNotifyClick
Definition: Lists.h:67
@ listNotifyPreClick
Definition: Lists.h:70
@ lInitMsg
Definition: Lists.h:150
void DisposeListClickLoopUPP(ListClickLoopUPP userUPP)
#define NewListClickLoopUPP(userRoutine)
Definition: Lists.h:227
#define NewListDefUPP(userRoutine)
Definition: Lists.h:257
void LDispose(ListHandle lHandle)
Discard a list and release all its memory.
@ lOnlyOne
Definition: Lists.h:138
void LSetNotificationCallback(ListNotificationProcPtr callBack, ListHandle lHandle)
Boolean LGetSelect(Boolean next, Cell *theCell, ListHandle lHandle)
Insert column(s) of empty cells into a list.
void DisposeListSearchUPP(ListSearchUPP userUPP)
#define NewListSearchUPP(userRoutine)
Definition: Lists.h:198
@ lOnlyOneBit
Definition: Lists.h:126
short InvokeListSearchUPP(Ptr aPtr, Ptr bPtr, short aLen, short bLen, ListSearchUPP userUPP)
Basic Macintosh data types.
unsigned char Boolean
Definition: MacTypes.h:318
void BeginUpdate(WindowRef window)
void DrawGrowIcon(WindowRef window)
void InvalRect(const Rect *badRect)
#define CALL_ZERO_PARAMETER_UPP(upp, procInfo)
Definition: MixedMode.h:790
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
typedef CALLBACK_API_REGISTER68K(void, SIInterruptProcPtr,(SPBPtr inParamPtr, Ptr dataBuffer, short peakAmplitude, long sampleSize))
short IUMagIDString(const void *aPtr, const void *bPtr, short aLen, short bLen)
typedef REGISTER_UPP_TYPE(HighHookProcPtr) HighHookUPP
Definition: Controls.h:165
Definition: Events.h:224
Definition: Quickdraw.h:1648
Definition: Lists.h:432
Definition: Lists.h:76
ListBounds visible
Definition: Lists.h:81
ControlRef hScroll
Definition: Lists.h:83
Point cellSize
Definition: Lists.h:80
Handle userHandle
Definition: Lists.h:95
SInt8 selFlags
Definition: Lists.h:84
Point mouseLoc
Definition: Lists.h:90
short cellArray[1]
Definition: Lists.h:99
ListBounds dataBounds
Definition: Lists.h:96
ControlRef vScroll
Definition: Lists.h:82
ListClickLoopUPP lClickLoop
Definition: Lists.h:91
short maxIndex
Definition: Lists.h:98
Boolean lActive
Definition: Lists.h:85
Handle listDefProc
Definition: Lists.h:94
Cell lastClick
Definition: Lists.h:92
Point clikLoc
Definition: Lists.h:89
long refCon
Definition: Lists.h:93
Point indent
Definition: Lists.h:79
long clikTime
Definition: Lists.h:88
GrafPtr port
Definition: Lists.h:78
DataHandle cells
Definition: Lists.h:97
SInt8 lReserved
Definition: Lists.h:86
SInt8 listFlags
Definition: Lists.h:87
Definition: MacTypes.h:520
Definition: MacTypes.h:527
Definition: TranslationExtensions.h:114
Definition: Lists.h:161