home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / Tool Chest / Games / Game Sample Code / SpriteWorld 1.0b3 / Examples / Utils / DialogUtils.c < prev    next >
Encoding:
Text File  |  1993-05-23  |  6.8 KB  |  268 lines  |  [TEXT/KAHL]

  1. ///--------------------------------------------------------------------------------------
  2. //    DialogUtils.c
  3. //
  4. //    Created:    12/16/91 @ 11:37:55 PM
  5. //    By:        Tony Myles
  6. //
  7. //    Copyright © 1991-93, Tony Myles    All rights reserved worldwide.
  8. //
  9. //    Description: multitudinous dialog utility routines
  10. ///--------------------------------------------------------------------------------------
  11.  
  12.  
  13. #ifndef __DIALOGS__
  14. #include <Dialogs.h>
  15. #endif
  16.  
  17. #ifndef __OSUTILS__
  18. #include <OSUtils.h>
  19. #endif
  20.  
  21. #ifndef __DIALOGUTILS__
  22. #include "DialogUtils.h"
  23. #endif
  24.  
  25.  
  26. ///--------------------------------------------------------------------------------------
  27. // GetDItemHilite
  28. //
  29. //    get the hilite of a dialog item
  30. ///--------------------------------------------------------------------------------------
  31.  
  32. Boolean GetDItemHilite(DialogPtr dlgP, short itemNum)
  33. {
  34.     short itemType;
  35.     Rect itemRect;
  36.     Handle itemH;
  37.  
  38.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  39.     return (**(ControlHandle)itemH).contrlHilite == 0;
  40. }
  41.  
  42.  
  43. ///--------------------------------------------------------------------------------------
  44. // SetDItemHilite
  45. //
  46. //    set the hilite of a dialog item
  47. ///--------------------------------------------------------------------------------------
  48.  
  49. void SetDItemHilite(DialogPtr dlgP, short itemNum, Boolean hilite)
  50. {
  51.     short itemType;
  52.     Rect itemRect;
  53.     Handle itemH;
  54.  
  55.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  56.     HiliteControl((ControlHandle)itemH, (hilite) ? 0 : 255);
  57. }
  58.  
  59.  
  60. ///--------------------------------------------------------------------------------------
  61. // GetDItemText
  62. //
  63. //    get the text of a dialog item
  64. ///--------------------------------------------------------------------------------------
  65.  
  66. void GetDItemText(DialogPtr dlgP, short itemNum, Str255 iStr)
  67. {
  68.     short itemType;
  69.     Rect itemRect;
  70.     Handle itemH;
  71.  
  72.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  73.     GetIText(itemH, iStr);                
  74. }
  75.  
  76.  
  77. ///--------------------------------------------------------------------------------------
  78. // SetDItemText
  79. //
  80. //    set the text of a dialog item
  81. ///--------------------------------------------------------------------------------------
  82.  
  83. void SetDItemText(DialogPtr dlgP, short itemNum, Str255 iStr)
  84. {
  85.     short itemType;
  86.     Rect itemRect;
  87.     Handle itemH;
  88.  
  89.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  90.     SetIText(itemH, iStr);                
  91. }
  92.  
  93.  
  94. ///--------------------------------------------------------------------------------------
  95. // GetDItemCtlTitle
  96. //
  97. //    get the title of a control dialog item
  98. ///--------------------------------------------------------------------------------------
  99.  
  100. void GetDItemCtlTitle(DialogPtr dlgP, short itemNum, Str255 iStr)
  101. {
  102.     short itemType;
  103.     Rect itemRect;
  104.     Handle itemH;
  105.  
  106.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  107.     GetCTitle((ControlHandle)itemH, iStr);                
  108. }
  109.  
  110.  
  111. ///--------------------------------------------------------------------------------------
  112. // SetDItemCtlTitle
  113. //
  114. //    set the title of a control dialog item
  115. ///--------------------------------------------------------------------------------------
  116.  
  117. void SetDItemCtlTitle(DialogPtr dlgP, short itemNum, Str255 iStr)
  118. {
  119.     short itemType;
  120.     Rect itemRect;
  121.     Handle itemH;
  122.  
  123.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  124.     SetCTitle((ControlHandle)itemH, iStr);
  125.  
  126.         // validate the control’s rectangle since the
  127.         // Control Manager needlessly invalidates it
  128.     itemRect = (**(ControlHandle)itemH).contrlRect;
  129.     ValidRect(&itemRect);
  130. }
  131.  
  132.  
  133. ///--------------------------------------------------------------------------------------
  134. // GetDItemHdl
  135. //
  136. //    return the handle of a dialog item
  137. ///--------------------------------------------------------------------------------------
  138.  
  139. Handle GetDItemHdl(DialogPtr dlgP, short itemNum)
  140. {
  141.     short itemType;
  142.     Rect itemRect;
  143.     Handle itemH;
  144.  
  145.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  146.  
  147.     return itemH;
  148. }
  149.  
  150.  
  151. ///--------------------------------------------------------------------------------------
  152. // SetDItemHdl
  153. //
  154. //    set the handle of a dialog item
  155. ///--------------------------------------------------------------------------------------
  156.  
  157. void SetDItemHdl(DialogPtr dlgP, short itemNum, Handle newItemH)
  158. {
  159.     short itemType;
  160.     Rect itemRect;
  161.     Handle itemH;
  162.  
  163.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  164.     SetDItem(dlgP, itemNum, itemType, newItemH, &itemRect);
  165. }
  166.  
  167.  
  168. ///--------------------------------------------------------------------------------------
  169. // GetDItemRect
  170. //
  171. //    return the rect of a dialog item
  172. ///--------------------------------------------------------------------------------------
  173.  
  174. void GetDItemRect(DialogPtr dlgP, short itemNum, Rect *itemRect)
  175. {
  176.     short itemType;
  177.     Handle itemH;
  178.  
  179.     GetDItem(dlgP, itemNum, &itemType, &itemH, itemRect);
  180. }
  181.  
  182.  
  183. ///--------------------------------------------------------------------------------------
  184. // SetDItemRect
  185. //
  186. //    set the rect of a dialog item
  187. ///--------------------------------------------------------------------------------------
  188.  
  189. void SetDItemRect(DialogPtr dlgP, short itemNum, Rect *newItemRect)
  190. {
  191.     short itemType;
  192.     Handle itemH;
  193.     Rect itemRect;
  194.  
  195.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  196.     SetDItem(dlgP, itemNum, itemType, itemH, newItemRect);
  197. }
  198.  
  199.  
  200. ///--------------------------------------------------------------------------------------
  201. // GetDItemType
  202. //
  203. //    return the type of a dialog item
  204. ///--------------------------------------------------------------------------------------
  205.  
  206. void GetDItemType(DialogPtr dlgP, short itemNum, short *itemType)
  207. {
  208.     Handle itemH;
  209.     Rect itemRect;
  210.  
  211.     GetDItem(dlgP, itemNum, itemType, &itemH, &itemRect);
  212. }
  213.  
  214.  
  215. ///--------------------------------------------------------------------------------------
  216. // SetDItemType
  217. //
  218. //    set the type of a dialog item
  219. ///--------------------------------------------------------------------------------------
  220.  
  221. void SetDItemType(DialogPtr dlgP, short itemNum, short newItemType)
  222. {
  223.     short itemType;
  224.     Handle itemH;
  225.     Rect itemRect;
  226.  
  227.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  228.     SetDItem(dlgP, itemNum, newItemType, itemH, &itemRect);
  229. }
  230.  
  231.  
  232. ///--------------------------------------------------------------------------------------
  233. // OutlineDefaultButton
  234. ///--------------------------------------------------------------------------------------
  235.  
  236. void OutlineDefaultButton(DialogPtr dlgP, short itemNum)
  237. {
  238.     Rect buttonRect;
  239.     
  240.     GetDItemRect(dlgP, itemNum, &buttonRect);
  241.  
  242.     InsetRect(&buttonRect, -4, -4);
  243.     PenSize(3, 3);
  244.     FrameRoundRect(&buttonRect, 16, 16);
  245.     PenNormal();
  246. }
  247.  
  248.  
  249. ///--------------------------------------------------------------------------------------
  250. // ClickDialogButton
  251. ///--------------------------------------------------------------------------------------
  252.  
  253. void ClickDialogButton(DialogPtr dlgP, short itemNum)
  254. {
  255.     ControlHandle dialogButtonH;
  256.     long finalTicks;
  257.  
  258.     dialogButtonH = (ControlHandle)GetDItemHdl(dlgP, itemNum);
  259.  
  260.     if (dialogButtonH != NULL)
  261.     {
  262.         HiliteControl(dialogButtonH, 1);
  263.         Delay(10, &finalTicks);
  264.         HiliteControl(dialogButtonH, 0);
  265.     }
  266. }
  267.  
  268.