home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Pascal / Snippets / CopyBits Demo / MyDialogUtils.p < prev    next >
Encoding:
Text File  |  1995-10-23  |  4.0 KB  |  161 lines  |  [TEXT/MWPS]

  1. { MyDialogUtils.p
  2. {
  3. { Pascal version by Bill Catambay
  4. { Original C version by Kenneth Worley
  5. { Public Domain
  6. {
  7. { Functions to make working with dialog items, controls, and
  8. { text fields (and the same in control panels) easier and
  9. { more convenient.
  10. }
  11. Unit MyDialogUtils;
  12.  
  13. Interface
  14.  
  15. Uses
  16.     Types, Dialogs, TextUtils;
  17.     
  18. Function GetItemHandle( dlg: DialogPtr; itemNo: integer ): Handle;
  19. Procedure GetItemRect( dlg: DialogPtr; itemNo: integer; var aRect: Rect);
  20. Function GetOnOff( dlg: DialogPtr; itemNo: integer): Boolean;
  21. Procedure SetOnOff( dlg: DialogPtr; itemNo: integer; turnOn: Boolean);
  22. Procedure Toggle( dlg: DialogPtr; itemNo: integer);
  23. Function GetRadioButton( dlg: DialogPtr; first, last: integer): integer;
  24. Procedure SetRadioButton( dlg: DialogPtr; first, last, target: integer);
  25. Procedure SetText( dlg: DialogPtr; itemNo: integer; str: Str255);
  26. Procedure GetText( dlg: DialogPtr; itemNo: integer; str: Str255);
  27. Procedure ActivateControl( dlg: DialogPtr; itemNo: integer; activate: Boolean);
  28. Function GetDialogNumberField( dlg: DialogPtr; itemNo: integer): longint;
  29. Procedure SetDialogNumberField( dlg: DialogPtr; itemNo: integer; theNumber: longint);
  30. Procedure SelectTextField( dlg: DialogPtr; itemNo: integer);
  31.  
  32. Implementation
  33.  
  34. Function GetItemHandle( dlg: DialogPtr; itemNo: integer ): Handle;
  35.  
  36. Var
  37.     itemType:        integer;
  38.     itemHandle:        Handle;
  39.     itemRect:        Rect;
  40.     
  41.     begin
  42.     GetDialogItem( dlg, itemNo, itemType, itemHandle, itemRect );
  43.     GetItemHandle := itemHandle;
  44.     end;
  45.  
  46. Procedure GetItemRect( dlg: DialogPtr; itemNo: integer; var aRect: Rect);
  47.  
  48. Var
  49.     itemType:        integer;
  50.     itemHandle:        Handle;
  51.     itemRect:        Rect;
  52.     
  53.     begin
  54.     GetDialogItem( dlg, itemNo, itemType, itemHandle, itemRect );
  55.     aRect := itemRect;
  56.     end;
  57.  
  58. Function GetOnOff( dlg: DialogPtr; itemNo: integer): Boolean;
  59.  
  60.     begin
  61.     GetOnOff := Boolean(GetControlValue(ControlHandle(GetItemHandle(dlg,itemNo))));
  62.     end;
  63.  
  64. Procedure SetOnOff( dlg: DialogPtr; itemNo: integer; turnOn: Boolean);
  65.  
  66.     begin
  67.     SetControlValue(ControlHandle(GetItemHandle(dlg,itemNo)),integer(turnOn));
  68.     end;
  69.  
  70. Procedure Toggle( dlg: DialogPtr; itemNo: integer);
  71.  
  72.     begin
  73.     SetOnOff( dlg, itemNo, not GetOnOff(dlg, itemNo));
  74.     end;
  75.  
  76. Function GetRadioButton( dlg: DialogPtr; first, last: integer): integer;
  77.  
  78. Var
  79.     aButton:        integer;
  80.     
  81.     begin
  82.     GetRadioButton := 0;
  83.     { Make sure first < last. }
  84.     if first > last then
  85.         exit(GetRadioButton);
  86.     { Find which radio button is on. }
  87.     for aButton := first to last do
  88.         if GetOnOff(dlg, aButton) then
  89.             begin
  90.             GetRadioButton := abutton;
  91.             leave;
  92.             end;
  93.     end;
  94.  
  95. Procedure SetRadioButton( dlg: DialogPtr; first, last, target: integer);
  96.  
  97. Var
  98.     aButton:    integer;
  99.     
  100.     begin
  101.     { Make sure first < last and target is in range. }
  102.     if (first > last) or (target < first) or (target > last) then
  103.         exit(SetRadioButton);
  104.     { Make sure all the radio buttons are off. }
  105.     for aButton := first to last do
  106.         SetOnOff(dlg, aButton, false);
  107.     { Turn the target button on. }
  108.     SetOnOff( dlg, target, true );
  109.     end;
  110.  
  111. Procedure SetText( dlg: DialogPtr; itemNo: integer; str: Str255);
  112.  
  113.     begin
  114.     SetDialogItemText( GetItemHandle( dlg, itemNo ), str );
  115.     end;
  116.  
  117. Procedure GetText( dlg: DialogPtr; itemNo: integer; str: Str255);
  118.  
  119.     begin
  120.     GetDialogItemText( GetItemHandle( dlg, itemNo ), str );
  121.     end;
  122.  
  123. Procedure ActivateControl( dlg: DialogPtr; itemNo: integer; activate: Boolean);
  124.  
  125.     begin
  126.     if activate then
  127.         HiliteControl(ControlHandle(GetItemHandle(dlg,itemNo)),0)
  128.     else
  129.         HiliteControl(ControlHandle(GetItemHandle(dlg,itemNo)),255); { disable }
  130.     end;
  131.  
  132. Function GetDialogNumberField( dlg: DialogPtr; itemNo: integer): longint;
  133.  
  134. Var
  135.     theStr:        Str255;
  136.     theNum:        longint;
  137.     
  138.     begin
  139.     GetDialogItemText( GetItemHandle( dlg, itemNo ), theStr );
  140.     StringToNum( theStr, theNum );
  141.     GetDialogNumberField := theNum;
  142.     end;
  143.  
  144. Procedure SetDialogNumberField( dlg: DialogPtr; itemNo: integer; theNumber: longint);
  145.  
  146. Var
  147.     theStr:        Str255;
  148.     
  149.     begin
  150.     NumToString( theNumber, theStr );
  151.     SetDialogItemText( GetItemHandle( dlg, itemNo ), theStr );
  152.     end;
  153.  
  154. Procedure SelectTextField( dlg: DialogPtr; itemNo: integer);
  155.  
  156.     begin
  157.     SelectDialogItemText( dlg, itemNo, 0, 255 );
  158.     end;
  159.     
  160. End.
  161.