home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / hc / x_tools1.sit / X-Tools1.1 / card_4069.txt < prev    next >
Text File  |  1988-01-27  |  7KB  |  154 lines

  1. -- card: 4069 from stack: in.1
  2. -- bmap block id: 0
  3. -- flags: 0000
  4. -- background id: 3468
  5. -- name: dolist
  6.  
  7.  
  8. -- part 3 (button)
  9. -- low flags: 00
  10. -- high flags: A003
  11. -- rect: left=360 top=119 right=140 bottom=442
  12. -- title width / last selected line: 0
  13. -- icon id / first selected line: 0 / 0
  14. -- text alignment: 1
  15. -- font id: 0
  16. -- text size: 12
  17. -- style flags: 0
  18. -- line height: 16
  19. -- part name: Examples
  20. ----- HyperTalk script -----
  21. on mouseUp
  22.   visual barn door open
  23.   go card dolist1
  24. end mouseUp
  25.  
  26.  
  27.  
  28. -- part contents for background part 1
  29. ----- text -----
  30. DoList Command:
  31.  
  32.   When copying this resource, make sure to also copy the dialog box resources using ResEdit.
  33.   
  34.   DoList is a single command which has the ability to handle a scrolling list of text strings. This is a fundamental part of the Macintosh interface, allowing a user to select one or more items from a long list.
  35.  
  36.   As a HyperCard developer, all that is needed is to create a list, pass it to the DoList command, which returns the item(s) that the user selected. This list is composed of several items in a HyperTalk container separated by commas.
  37.  
  38.   The item(s) that the user selects are returned in the property named
  39. 'the result'. If the user clicked on the Cancel button, 'the result' will be empty. Otherwise, it will contain one or more items, with the first item being the number of items selected, and the items themselves following.
  40.  
  41. The Modes:
  42.   DoList can be used in three different modes:
  43.  
  44. Mode 1:  Uses a dialog resource for the list. This requires 2 additional          
  45.              resources in the stack, 1 'DLOG' and its 'DITL' resource. This is 
  46.              explained in detail later.
  47.  
  48. Mode 2:  Requires NO additional resources at all. This is the simplest 
  49.              and most common mode. The list box will always appear in the 
  50.              center of the HyperCard window, and will always have the 
  51.              same orientation.
  52.  
  53. Mode 3:  Same as mode 2, but the list box position can be anywhere on    
  54.              the HyperCard window. The size and orientation of the box are 
  55.              not changed, only its location on the window.
  56.  
  57. Mode Parameters:
  58.   The mode being used depends on the parameters passed to the DoList command. The parameters for each mode are:
  59.  
  60. Mode 1: DoList <Resource ID>,<List>,<Flag>
  61. Mode 2: DoList <Button 1 Name>,<Button 2 Name>,<List>,<Flag>
  62. Mode 3: DoList <Button 1 Name>,<Button 2 Name>,<List>,<Flag>,<H>,<V>
  63.  
  64.    <Button 1> Name is the name of the Select button.
  65.    <Button 2> Name is the name of the Cancel button.
  66.    <List> is the actual list of items separated by commas.
  67.    <Flag> is 1 of 3 possible values, and determines list characteristics.
  68.    <H> is the horizontal coordinate for the list box in local coordinates.
  69.    <V> is the vertical coordinate for the list box in local coordinates.
  70.  
  71. Flag Setting:
  72.  
  73.   The <Flag> parameter is passed in every mode, and determines how many items the user can select, and affects how they are selected.
  74.  
  75. <Flag> should be one of the following:
  76.  
  77. ONE    Will allow the user to select only 1 item from the list.
  78.  
  79. CON    Will allow the user to select 1 or more items from the list, with     
  80.           the items being continous.
  81.  
  82. DIS     Will allow the user to select 1 or more items from the list, in 
  83.           any order, not necessarily continous.
  84.  
  85. The Result:
  86.   Immediately after calling DoList, the property 'Result' will tell you what the user did. You can say:
  87.  
  88. get the result
  89.  
  90.   If it is empty, then the user clicked on the Cancel button. Otherwise, item 1 of it will be the number of items selected. If you are setting 
  91. <Flag> to be 'ONE' then this number will always be 1. Otherwise, it will be any number from zero to the number of items in the list. Once check this to find out how many items there are, you can use them in any way you wish. For example, if the user selected 1 item from the list, and you want to put this item into a container named 'choice' :
  92.  
  93. put item 2 of it into choice
  94.  
  95. Dialog Resource Format:
  96.  
  97. <Resource ID> is the ID of the 'DLOG' resource in the stack. 
  98.  
  99. Item 1 must be a button item, and is used for the Select button. It can 
  100.            have any position and rectangle, and is not reset.
  101.  
  102. Item 2 must be a button item, and is used for the Cancel button. It can 
  103.            have any position and rectangle, and is not reset.
  104.  
  105. Item 3 must be a useritem, and is used for the list window. It must      
  106.            have the rectangle and position you wish to use for the list.
  107.  
  108. Item 4 must be a useritem, and is used for outlining the Select button. 
  109.            It can have any rectangle, since its rect will be set for you.
  110.  
  111. More about Mode 1:
  112.  
  113.   Mode 1 requires that you create your own dialog resource. You can do this with a variety of utilities, usch as ResEdit or Dialog Creator. You can also write RMaker source code and compile it. The first 4 items must be as specified previously. You must put these resources into the resource fork of the stack, so that DoList can find them. If there is any problem with a resource or if DoList can't find a resource, the results are unpredictable, and can even produce a system bomb. DoList assumes that the resource is present and valid, and does no error checking.
  114.  
  115.   I've included Mode 1 for the people who really want to change the look of the dialog box, and know how to do so. Only the first 4 items are reserved, so extra text items (such as prompts) can be easily added. 
  116.  
  117. Tips For Using Mode 1:
  118.  
  119. Mode 1 makes it easy to make a flashy, nice looking list. However, there are some things to watch out for:
  120.  
  121. Since dialog resources have Global coordinate rectangles, the list will appear at the global coordinates specified in the resource, regardless of the location of the HyperCard window.
  122.  
  123. Make sure that the vertical size of useritem 3 (the list window) is a multiple of 15. This insures that it will have the proper appearance.
  124.  
  125. Make sure the visible bit of the dialog resource is false. If the dialog is initially visible, its appearance while it is being drawn to the screen is not as clean and professional-looking.
  126.  
  127.   General Tips:                      Examine scripts in this stack for examples!
  128.  
  129.   It can take a few seconds for a long list to be processed and for the list box to appear on the screen. When this is the case, it's nice to change the cursor into a watch before calling the DoList command, so the user knows that something is happening.
  130.  
  131.   Using fields to hold lists instead of other types of containers can be very convienient to edit. Hide the field if you don't want the user to see it. This makes scripting much easier and more elegant.
  132.  
  133.   If you are allowing users to select more than one file (see Flag Setting) then be sure to check item 1 of the result. It's possible for them to click on the Select button with no files selected, in which case item 1 of the result will be zero. You can treat this as a Cancel.
  134.  
  135.  
  136.  
  137. -- part contents for background part 2
  138. ----- text -----
  139. DoList
  140.  
  141. -- part contents for background part 9
  142. ----- text -----
  143. XCMD
  144.  
  145. -- part contents for background part 4
  146. ----- text -----
  147. DoList <ResourceID>,<list>,<Flag>
  148. DoList <Buttn1Nme>,<Buttn2Nme>,<List>,<Flag>
  149. DoList <Buttn1Nme>,<Buttn2Nme>,<List>,<Flag>,<H>,<V>
  150.  
  151.  
  152. -- part contents for background part 8
  153. ----- text -----
  154. James L. Paul