home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_GEN / TCYBER.ZIP / CFDLGS.PAS < prev    next >
Pascal/Delphi Source File  |  1994-01-15  |  9KB  |  85 lines

  1. {
  2. Turbo Vision CyberTools 1.0
  3. (C) 1994 Steve Goldsmith
  4. All Rights Reserved
  5.  
  6. Dialogs used by CyberFont.  Some contain graphic radio buttons and check
  7. boxes which must have the correct font loaded.
  8. }
  9.  
  10. UNIT CFDLGS ;{$I APP.INC} INTERFACE USES DOS , OBJECTS , APP , VIEWS , DIALOGS , DRIVERS , VGA , CHRPCX , CFCMDS ;
  11. TYPE PRADIOBUTTONSCF =^TRADIOBUTTONSCF ;TRADIOBUTTONSCF =OBJECT (TRADIOBUTTONS)PROCEDURE DRAW ;VIRTUAL;END ;
  12. PCHECKBOXESCF =^TCHECKBOXESCF ;TCHECKBOXESCF =OBJECT (TCHECKBOXES)PROCEDURE DRAW ;VIRTUAL;END ;
  13. PSCROLLBARCF =^TSCROLLBARCF ;TSCROLLBARCF =OBJECT (TSCROLLBAR)FUNCTION DATASIZE :WORD ;VIRTUAL;PROCEDURE GETDATA
  14. (VAR REC );VIRTUAL;PROCEDURE SETDATA (VAR REC );VIRTUAL;END ;SCROPTSDATA =RECORD SMODE , FNTTBL1 , FNTTBL2 ,
  15. DELAY :INTEGER END ;PSCROPTSDLG =^TSCROPTSDLG ;TSCROPTSDLG =OBJECT (TDIALOG)SCRMODE :PCHECKBOXESCF ;CHRTABLE1 ,
  16. CHRTABLE2 :PRADIOBUTTONSCF ;DELAYBAR :PSCROLLBARCF ;CONSTRUCTOR INIT ;END ;PCOLPALVIEW =^TCOLPALVIEW ;
  17. TCOLPALVIEW =OBJECT (TVIEW)STARTCOLOR :BYTE ;CONSTRUCTOR INIT (VAR BOUNDS :TRECT ;STARTCOL :BYTE );PROCEDURE DRAW ;
  18. VIRTUAL;END ;PMSGBUTTONS =^TMSGBUTTONS ;TMSGBUTTONS =OBJECT (TRADIOBUTTONSCF)PROCEDURE PRESS (ITEM :INTEGER );VIRTUAL;
  19. PROCEDURE MOVEDTO (ITEM :INTEGER );VIRTUAL;END ;PPALDLG =^TPALDLG ;TPALDLG =OBJECT (TDIALOG)CURPAL :VGAPALETTE ;REDBAR ,
  20. GREENBAR , BLUEBAR :PSCROLLBAR ;DEFCOLOR :PMSGBUTTONS ;CONSTRUCTOR INIT ;PROCEDURE SETCOLORBARS (COLOR :BYTE );
  21. PROCEDURE CHANGEDAC ;PROCEDURE HANDLEEVENT (VAR EVENT :TEVENT );VIRTUAL;END ;PCHRSETVIEW =^TCHRSETVIEW ;
  22. TCHRSETVIEW =OBJECT (TVIEW)PROCEDURE DRAW ;VIRTUAL;END ;PCHRSETDLG =^TCHRSETDLG ;
  23. TCHRSETDLG =OBJECT (TDIALOG)CONSTRUCTOR INIT (NAME :PATHSTR ;XLEN ,YLEN:WORD );FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;
  24. END ;CONST CGRAPHCOLOR =#$00;CGRAPHPAL =#143;CCBUTTON =#32#224#225#226#32;CCBUTTONOFFON =#225#227;
  25. CCBOX =#32#228#229#230#32;CCBOXOFFON =#229#231;IMPLEMENTATION PROCEDURE TRADIOBUTTONSCF.DRAW ;BEGIN DRAWMULTIBOX
  26. (CCBUTTON , CCBUTTONOFFON )END ;PROCEDURE TCHECKBOXESCF.DRAW ;BEGIN DRAWMULTIBOX (CCBOX , CCBOXOFFON )END ;
  27. FUNCTION TSCROLLBARCF.DATASIZE ;BEGIN DATASIZE := SIZEOF (INTEGER )END ;PROCEDURE TSCROLLBARCF.GETDATA (VAR REC);
  28. BEGIN INTEGER (REC ):= VALUE END ;PROCEDURE TSCROLLBARCF.SETDATA (VAR REC);BEGIN VALUE := INTEGER (REC );DRAWVIEW END ;
  29. CONSTRUCTOR TSCROPTSDLG.INIT ;VAR OO1I:TRECT;BEGIN OO1I.ASSIGN (0 , 0 , 33 , 17 );INHERITED INIT(OO1I ,
  30. 'Screen Options');OO1I.ASSIGN (2 , 2 , 31 , 6 );SCRMODE := NEW (PCHECKBOXESCF , INIT (OO1I , NEWSITEM ('640 X 400',
  31. NEWSITEM ('Paging', NEWSITEM ('8 colors', NEWSITEM ('Animate font 2 table', NIL ))))));INSERT (SCRMODE );OO1I.ASSIGN (1 ,
  32. 1 , 13 , 2 );INSERT (NEW (PLABEL , INIT (OO1I , '~S~creen mode', SCRMODE )));OO1I.ASSIGN (2 , 7 , 16 , 11 );CHRTABLE1 :=
  33. NEW (PRADIOBUTTONSCF , INIT (OO1I , NEWSITEM ('0', NEWSITEM ('1', NEWSITEM ('2', NEWSITEM ('3', NEWSITEM ('4', NEWSITEM
  34. ('5', NEWSITEM ('6', NEWSITEM ('7', NIL ))))))))));INSERT (CHRTABLE1 );OO1I.ASSIGN (1 , 6 , 14 , 7 );INSERT (NEW (PLABEL
  35. , INIT (OO1I , 'Font ~1~ table', CHRTABLE1 )));OO1I.ASSIGN (17 , 7 , 31 , 11 );CHRTABLE2 := NEW (PRADIOBUTTONSCF , INIT
  36. (OO1I , NEWSITEM ('0', NEWSITEM ('1', NEWSITEM ('2', NEWSITEM ('3', NEWSITEM ('4', NEWSITEM ('5', NEWSITEM ('6', NEWSITEM
  37. ('7', NIL ))))))))));INSERT (CHRTABLE2 );OO1I.ASSIGN (16 , 6 , 29 , 7 );INSERT (NEW (PLABEL , INIT (OO1I ,
  38. 'Font ~2~ table', CHRTABLE2 )));OO1I.ASSIGN (2 , 12 , 22 , 13 );DELAYBAR := NEW (PSCROLLBARCF , INIT (OO1I ));DELAYBAR ^.
  39. SETPARAMS (1 , 1 , 18 , 1 , 1 );DELAYBAR ^. OPTIONS := DELAYBAR ^. OPTIONS OR OFSELECTABLE ;INSERT (DELAYBAR );
  40. OO1I.ASSIGN (1 , 11 , 13 , 12 );INSERT (NEW (PLABEL , INIT (OO1I , 'Frame ~d~elay', DELAYBAR )));OO1I.ASSIGN (1 , 14 , 11
  41. , 16 );INSERT (NEW (PBUTTON , INIT (OO1I , 'O~K~', CMOK , BFDEFAULT )));OO1I.ASSIGN (14 , 14 , 24 , 16 );INSERT (NEW
  42. (PBUTTON , INIT (OO1I , 'Cancel', CMCANCEL , BFNORMAL )))END ;CONSTRUCTOR TCOLPALVIEW.INIT (VAR BOUNDS:TRECT;
  43. STARTCOL:BYTE);BEGIN INHERITED INIT(BOUNDS );STARTCOLOR := STARTCOL END ;PROCEDURE TCOLPALVIEW.DRAW ;
  44. VAR OOO0l1010lIO:WORD;OOIl,OOllOI000O1l:BYTE;BEGIN OOllOI000O1l := GETCOLOR (6 )AND $f0 ;FOR OOIl := 0 TO SIZE.Y - 1
  45.  DO BEGIN OOO0l1010lIO := ((OOllOI000O1l OR (STARTCOLOR + OOIl ))SHL 8 )OR 219 ;WRITELINE (0 , OOIl , 1 , 1 ,
  46. OOO0l1010lIO )END END ;PROCEDURE TMSGBUTTONS.PRESS (ITEM:INTEGER);BEGIN INHERITED PRESS(ITEM );MESSAGE (OWNER ,
  47. EVBROADCAST , CMMSGBUTTONPRESS , NIL )END ;PROCEDURE TMSGBUTTONS.MOVEDTO (ITEM:INTEGER);BEGIN INHERITED MOVEDTO(ITEM );
  48. MESSAGE (OWNER , EVBROADCAST , CMMSGBUTTONPRESS , NIL )END ;CONSTRUCTOR TPALDLG.INIT ;VAR OO1I:TRECT;BEGIN OO1I.ASSIGN (0
  49. , 0 , 40 , 20 );INHERITED INIT(OO1I , 'Adjust Palette');OO1I.ASSIGN (2 , 2 , 38 , 10 );DEFCOLOR := NEW (PMSGBUTTONS ,
  50. INIT (OO1I , NEWSITEM ('Black', NEWSITEM ('Blue', NEWSITEM ('Green', NEWSITEM ('Cyan', NEWSITEM ('Red', NEWSITEM
  51. ('Magenta', NEWSITEM ('Brown', NEWSITEM ('Light Gray', NEWSITEM ('Gray', NEWSITEM ('Light Blue', NEWSITEM ('Light Green',
  52. NEWSITEM ('Light Cyan', NEWSITEM ('Light Red', NEWSITEM ('Light Magenta', NEWSITEM ('Yellow', NEWSITEM ('White', NIL
  53. ))))))))))))))))));INSERT (DEFCOLOR );OO1I.ASSIGN (1 , 1 , 7 , 2 );INSERT (NEW (PLABEL , INIT (OO1I , '~C~olors',
  54. DEFCOLOR )));OO1I.ASSIGN (6 , 2 , 7 , 10 );INSERT (NEW (PCOLPALVIEW , INIT (OO1I , 0 )));OO1I.ASSIGN (22 , 2 , 23 , 10 );
  55. INSERT (NEW (PCOLPALVIEW , INIT (OO1I , 8 )));OO1I.ASSIGN (2 , 11 , 36 , 12 );REDBAR := NEW (PSCROLLBAR , INIT (OO1I ));
  56. REDBAR ^. SETPARAMS (0 , 0 , 63 , 8 , 1 );REDBAR ^. OPTIONS := REDBAR ^. OPTIONS OR OFSELECTABLE ;INSERT (REDBAR );
  57. OO1I.ASSIGN (1 , 10 , 5 , 11 );INSERT (NEW (PLABEL , INIT (OO1I , '~R~ed', REDBAR )));OO1I.ASSIGN (2 , 13 , 36 , 14 );
  58. GREENBAR := NEW (PSCROLLBAR , INIT (OO1I ));GREENBAR ^. SETPARAMS (0 , 0 , 63 , 8 , 1 );GREENBAR ^. OPTIONS := GREENBAR
  59. ^. OPTIONS OR OFSELECTABLE ;INSERT (GREENBAR );OO1I.ASSIGN (1 , 12 , 7 , 13 );INSERT (NEW (PLABEL , INIT (OO1I ,
  60. '~G~reen', GREENBAR )));OO1I.ASSIGN (2 , 15 , 36 , 16 );BLUEBAR := NEW (PSCROLLBAR , INIT (OO1I ));BLUEBAR ^. SETPARAMS
  61. (0 , 0 , 63 , 8 , 1 );BLUEBAR ^. OPTIONS := BLUEBAR ^. OPTIONS OR OFSELECTABLE ;INSERT (BLUEBAR );OO1I.ASSIGN (1 , 14 , 6
  62. , 15 );INSERT (NEW (PLABEL , INIT (OO1I , '~B~lue', BLUEBAR )));OO1I.ASSIGN (1 , 17 , 11 , 19 );INSERT (NEW (PBUTTON ,
  63. INIT (OO1I , 'O~K~', CMOK , BFDEFAULT )));OO1I.ASSIGN (12 , 17 , 22 , 19 );INSERT (NEW (PBUTTON , INIT (OO1I , 'Cancel',
  64. CMCANCEL , BFNORMAL )));OO1I.ASSIGN (23 , 17 , 36 , 19 );INSERT (NEW (PBUTTON , INIT (OO1I , '~D~efault', CMDEFAULTPAL ,
  65. BFNORMAL )));GETDACBLOCK (@ CURPAL , 0 , 256 );SETCOLORBARS (0 );SELECTNEXT (FALSE )END ;PROCEDURE TPALDLG.SETCOLORBARS
  66. (COLOR:BYTE);VAR OO1I,OIl1,OIO1:BYTE;BEGIN GETDAC (GETATTRCONT (COLOR ), OO1I , OIl1 , OIO1 );REDBAR ^. SETVALUE (OO1I );
  67. GREENBAR ^. SETVALUE (OIl1 );BLUEBAR ^. SETVALUE (OIO1 )END ;PROCEDURE TPALDLG.CHANGEDAC ;VAR OO1I,OIl1,OIO1:BYTE;
  68. BEGIN GETDAC (GETATTRCONT (DEFCOLOR ^. VALUE ), OO1I , OIl1 , OIO1 );IF REDBAR ^. STATE AND SFSELECTED =SFSELECTED THEN
  69. OO1I := REDBAR ^. VALUE ELSE IF GREENBAR ^. STATE AND SFSELECTED =SFSELECTED THEN OIl1 := GREENBAR ^. VALUE ELSE IF
  70. BLUEBAR ^. STATE AND SFSELECTED =SFSELECTED THEN OIO1 := BLUEBAR ^. VALUE ;SETDAC (GETATTRCONT (DEFCOLOR ^. VALUE ), OO1I
  71. , OIl1 , OIO1 );END ;PROCEDURE TPALDLG.HANDLEEVENT (VAR EVENT:TEVENT);BEGIN IF (EVENT.WHAT =EVCOMMAND )AND
  72. ((EVENT.COMMAND =CMCANCEL )OR (EVENT.COMMAND =CMCLOSE ))THEN SETDACBLOCK (@ CURPAL , 0 , 256 );
  73. INHERITED HANDLEEVENT(EVENT );CASE EVENT.WHAT  OF EVCOMMAND :BEGIN CASE EVENT.COMMAND  OF CMOK :CLOSE ;CMDEFAULTPAL
  74. :BEGIN SETDACBLOCK (@ CURPAL , 0 , 256 );SETCOLORBARS (DEFCOLOR ^. VALUE )END ELSE EXIT END ;CLEAREVENT (EVENT )END ;
  75. EVBROADCAST :BEGIN CASE EVENT.COMMAND  OF CMSCROLLBARCHANGED :CHANGEDAC ;CMMSGBUTTONPRESS :SETCOLORBARS (DEFCOLOR ^.
  76. VALUE )ELSE EXIT END ;CLEAREVENT (EVENT )END END END ;PROCEDURE TCHRSETVIEW.DRAW ;VAR OI1OllllOl1:TDRAWBUFFER;
  77. OOIO,OOIl:INTEGER;OOllOI000O1l:WORD;BEGIN OOllOI000O1l := GETCOLOR (33 );FOR OOIl := 0 TO SIZE.Y - 1  DO BEGIN FOR OOIO
  78. := 0 TO SIZE.X - 1  DO OI1OllllOl1 [ OOIO ] := (OOIl * SIZE.X + OOIO )OR (OOllOI000O1l SHL 8 );WRITEBUF (0 , OOIl ,
  79. SIZE.X , 1 , OI1OllllOl1 );END END ;CONSTRUCTOR TCHRSETDLG.INIT (NAME:PATHSTR;XLEN,YLEN:WORD);VAR OO1I:TRECT;
  80. BEGIN OO1I.ASSIGN (0 , 0 , XLEN + 2 , YLEN + 2 );INHERITED INIT(OO1I , NAME );GETEXTENT (OO1I );OO1I.GROW (- 1 , - 1 );
  81. INSERT (NEW (PCHRSETVIEW , INIT (OO1I )))END ;FUNCTION TCHRSETDLG.GETPALETTE :PPALETTE ;CONST OOlOIOI1Oll1=CBLUEDIALOG+
  82. CGRAPHPAL;O10O1I10lIIO0=CCYANDIALOG+ CGRAPHPAL;OIO1IO1ll10=CGRAYDIALOG+ CGRAPHPAL;OO10:ARRAY [ DPBLUEDIALOG..
  83. DPGRAYDIALOG]  OF STRING [ LENGTH(OOlOIOI1Oll1)] =(OOlOIOI1Oll1, O10O1I10lIIO0, OIO1IO1ll10);BEGIN GETPALETTE := @ OO10 [
  84. PALETTE ] END ;END .
  85.