home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / PNL Libraries / MyButtons.p < prev    next >
Encoding:
Text File  |  1993-09-02  |  1.6 KB  |  72 lines  |  [TEXT/PJMM]

  1. unit MyButtons;
  2.  
  3. interface
  4.  
  5.     procedure GrayButton (dlg: dialogPtr; item: integer);
  6.     procedure UngrayButton (dlg: dialogPtr; item: integer);
  7.     procedure UpdateButton (dlg: dialogPtr; item: integer; active: boolean);
  8.     procedure InitButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  9.     procedure SetButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  10.  
  11. implementation
  12.  
  13.     procedure GrayButton (dlg: dialogPtr; item: integer);
  14.         var
  15.             kind: integer;
  16.             h: handle;
  17.             r: rect;
  18.             ps: PenState;
  19.     begin
  20.         GetDItem(dlg, item, kind, h, r);
  21.         InsetRect(r, 4, 2);
  22.         GetPenState(ps);
  23.         PenPat(gray);
  24.         PenMode(patBic);
  25.         PaintRoundRect(r, 3, 3);
  26.         SetPenState(ps);
  27.     end;
  28.  
  29.     procedure UngrayButton (dlg: dialogPtr; item: integer);
  30.         var
  31.             kind: integer;
  32.             h: handle;
  33.             r: rect;
  34.     begin
  35.         GetDItem(dlg, item, kind, h, r);
  36.         Draw1Control(controlHandle(h));
  37.     end;
  38.  
  39.     procedure UpdateButton (dlg: dialogPtr; item: integer; active: boolean);
  40.     begin
  41.         if not active then
  42.             GrayButton(dlg, item);
  43.     end;
  44.  
  45.     procedure InitButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  46.         var
  47.             kind: integer;
  48.             h: handle;
  49.             r: rect;
  50.     begin
  51.         active := new;
  52.         GetDItem(dlg, item, kind, h, r);
  53.         if active then
  54.             HiliteControl(controlHandle(h), 0)
  55.         else begin
  56.             HiliteControl(controlHandle(h), 255);
  57.             GrayButton(dlg, item);
  58.         end;
  59.     end;
  60.  
  61.     procedure SetButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  62.     begin
  63.         if active <> new then begin
  64.             if new then
  65.                 UngrayButton(dlg, item)
  66.             else
  67.                 GrayButton(dlg, item);
  68.             InitButton(dlg, item, active, new);
  69.         end;
  70.     end;
  71.  
  72. end.