home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_GEN
/
TCYBER.ZIP
/
CFDLGS.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-01-15
|
9KB
|
85 lines
{
Turbo Vision CyberTools 1.0
(C) 1994 Steve Goldsmith
All Rights Reserved
Dialogs used by CyberFont. Some contain graphic radio buttons and check
boxes which must have the correct font loaded.
}
UNIT CFDLGS ;{$I APP.INC} INTERFACE USES DOS , OBJECTS , APP , VIEWS , DIALOGS , DRIVERS , VGA , CHRPCX , CFCMDS ;
TYPE PRADIOBUTTONSCF =^TRADIOBUTTONSCF ;TRADIOBUTTONSCF =OBJECT (TRADIOBUTTONS)PROCEDURE DRAW ;VIRTUAL;END ;
PCHECKBOXESCF =^TCHECKBOXESCF ;TCHECKBOXESCF =OBJECT (TCHECKBOXES)PROCEDURE DRAW ;VIRTUAL;END ;
PSCROLLBARCF =^TSCROLLBARCF ;TSCROLLBARCF =OBJECT (TSCROLLBAR)FUNCTION DATASIZE :WORD ;VIRTUAL;PROCEDURE GETDATA
(VAR REC );VIRTUAL;PROCEDURE SETDATA (VAR REC );VIRTUAL;END ;SCROPTSDATA =RECORD SMODE , FNTTBL1 , FNTTBL2 ,
DELAY :INTEGER END ;PSCROPTSDLG =^TSCROPTSDLG ;TSCROPTSDLG =OBJECT (TDIALOG)SCRMODE :PCHECKBOXESCF ;CHRTABLE1 ,
CHRTABLE2 :PRADIOBUTTONSCF ;DELAYBAR :PSCROLLBARCF ;CONSTRUCTOR INIT ;END ;PCOLPALVIEW =^TCOLPALVIEW ;
TCOLPALVIEW =OBJECT (TVIEW)STARTCOLOR :BYTE ;CONSTRUCTOR INIT (VAR BOUNDS :TRECT ;STARTCOL :BYTE );PROCEDURE DRAW ;
VIRTUAL;END ;PMSGBUTTONS =^TMSGBUTTONS ;TMSGBUTTONS =OBJECT (TRADIOBUTTONSCF)PROCEDURE PRESS (ITEM :INTEGER );VIRTUAL;
PROCEDURE MOVEDTO (ITEM :INTEGER );VIRTUAL;END ;PPALDLG =^TPALDLG ;TPALDLG =OBJECT (TDIALOG)CURPAL :VGAPALETTE ;REDBAR ,
GREENBAR , BLUEBAR :PSCROLLBAR ;DEFCOLOR :PMSGBUTTONS ;CONSTRUCTOR INIT ;PROCEDURE SETCOLORBARS (COLOR :BYTE );
PROCEDURE CHANGEDAC ;PROCEDURE HANDLEEVENT (VAR EVENT :TEVENT );VIRTUAL;END ;PCHRSETVIEW =^TCHRSETVIEW ;
TCHRSETVIEW =OBJECT (TVIEW)PROCEDURE DRAW ;VIRTUAL;END ;PCHRSETDLG =^TCHRSETDLG ;
TCHRSETDLG =OBJECT (TDIALOG)CONSTRUCTOR INIT (NAME :PATHSTR ;XLEN ,YLEN:WORD );FUNCTION GETPALETTE :PPALETTE ;VIRTUAL;
END ;CONST CGRAPHCOLOR =#$00;CGRAPHPAL =#143;CCBUTTON =#32#224#225#226#32;CCBUTTONOFFON =#225#227;
CCBOX =#32#228#229#230#32;CCBOXOFFON =#229#231;IMPLEMENTATION PROCEDURE TRADIOBUTTONSCF.DRAW ;BEGIN DRAWMULTIBOX
(CCBUTTON , CCBUTTONOFFON )END ;PROCEDURE TCHECKBOXESCF.DRAW ;BEGIN DRAWMULTIBOX (CCBOX , CCBOXOFFON )END ;
FUNCTION TSCROLLBARCF.DATASIZE ;BEGIN DATASIZE := SIZEOF (INTEGER )END ;PROCEDURE TSCROLLBARCF.GETDATA (VAR REC);
BEGIN INTEGER (REC ):= VALUE END ;PROCEDURE TSCROLLBARCF.SETDATA (VAR REC);BEGIN VALUE := INTEGER (REC );DRAWVIEW END ;
CONSTRUCTOR TSCROPTSDLG.INIT ;VAR OO1I:TRECT;BEGIN OO1I.ASSIGN (0 , 0 , 33 , 17 );INHERITED INIT(OO1I ,
'Screen Options');OO1I.ASSIGN (2 , 2 , 31 , 6 );SCRMODE := NEW (PCHECKBOXESCF , INIT (OO1I , NEWSITEM ('640 X 400',
NEWSITEM ('Paging', NEWSITEM ('8 colors', NEWSITEM ('Animate font 2 table', NIL ))))));INSERT (SCRMODE );OO1I.ASSIGN (1 ,
1 , 13 , 2 );INSERT (NEW (PLABEL , INIT (OO1I , '~S~creen mode', SCRMODE )));OO1I.ASSIGN (2 , 7 , 16 , 11 );CHRTABLE1 :=
NEW (PRADIOBUTTONSCF , INIT (OO1I , NEWSITEM ('0', NEWSITEM ('1', NEWSITEM ('2', NEWSITEM ('3', NEWSITEM ('4', NEWSITEM
('5', NEWSITEM ('6', NEWSITEM ('7', NIL ))))))))));INSERT (CHRTABLE1 );OO1I.ASSIGN (1 , 6 , 14 , 7 );INSERT (NEW (PLABEL
, INIT (OO1I , 'Font ~1~ table', CHRTABLE1 )));OO1I.ASSIGN (17 , 7 , 31 , 11 );CHRTABLE2 := NEW (PRADIOBUTTONSCF , INIT
(OO1I , NEWSITEM ('0', NEWSITEM ('1', NEWSITEM ('2', NEWSITEM ('3', NEWSITEM ('4', NEWSITEM ('5', NEWSITEM ('6', NEWSITEM
('7', NIL ))))))))));INSERT (CHRTABLE2 );OO1I.ASSIGN (16 , 6 , 29 , 7 );INSERT (NEW (PLABEL , INIT (OO1I ,
'Font ~2~ table', CHRTABLE2 )));OO1I.ASSIGN (2 , 12 , 22 , 13 );DELAYBAR := NEW (PSCROLLBARCF , INIT (OO1I ));DELAYBAR ^.
SETPARAMS (1 , 1 , 18 , 1 , 1 );DELAYBAR ^. OPTIONS := DELAYBAR ^. OPTIONS OR OFSELECTABLE ;INSERT (DELAYBAR );
OO1I.ASSIGN (1 , 11 , 13 , 12 );INSERT (NEW (PLABEL , INIT (OO1I , 'Frame ~d~elay', DELAYBAR )));OO1I.ASSIGN (1 , 14 , 11
, 16 );INSERT (NEW (PBUTTON , INIT (OO1I , 'O~K~', CMOK , BFDEFAULT )));OO1I.ASSIGN (14 , 14 , 24 , 16 );INSERT (NEW
(PBUTTON , INIT (OO1I , 'Cancel', CMCANCEL , BFNORMAL )))END ;CONSTRUCTOR TCOLPALVIEW.INIT (VAR BOUNDS:TRECT;
STARTCOL:BYTE);BEGIN INHERITED INIT(BOUNDS );STARTCOLOR := STARTCOL END ;PROCEDURE TCOLPALVIEW.DRAW ;
VAR OOO0l1010lIO:WORD;OOIl,OOllOI000O1l:BYTE;BEGIN OOllOI000O1l := GETCOLOR (6 )AND $f0 ;FOR OOIl := 0 TO SIZE.Y - 1
DO BEGIN OOO0l1010lIO := ((OOllOI000O1l OR (STARTCOLOR + OOIl ))SHL 8 )OR 219 ;WRITELINE (0 , OOIl , 1 , 1 ,
OOO0l1010lIO )END END ;PROCEDURE TMSGBUTTONS.PRESS (ITEM:INTEGER);BEGIN INHERITED PRESS(ITEM );MESSAGE (OWNER ,
EVBROADCAST , CMMSGBUTTONPRESS , NIL )END ;PROCEDURE TMSGBUTTONS.MOVEDTO (ITEM:INTEGER);BEGIN INHERITED MOVEDTO(ITEM );
MESSAGE (OWNER , EVBROADCAST , CMMSGBUTTONPRESS , NIL )END ;CONSTRUCTOR TPALDLG.INIT ;VAR OO1I:TRECT;BEGIN OO1I.ASSIGN (0
, 0 , 40 , 20 );INHERITED INIT(OO1I , 'Adjust Palette');OO1I.ASSIGN (2 , 2 , 38 , 10 );DEFCOLOR := NEW (PMSGBUTTONS ,
INIT (OO1I , NEWSITEM ('Black', NEWSITEM ('Blue', NEWSITEM ('Green', NEWSITEM ('Cyan', NEWSITEM ('Red', NEWSITEM
('Magenta', NEWSITEM ('Brown', NEWSITEM ('Light Gray', NEWSITEM ('Gray', NEWSITEM ('Light Blue', NEWSITEM ('Light Green',
NEWSITEM ('Light Cyan', NEWSITEM ('Light Red', NEWSITEM ('Light Magenta', NEWSITEM ('Yellow', NEWSITEM ('White', NIL
))))))))))))))))));INSERT (DEFCOLOR );OO1I.ASSIGN (1 , 1 , 7 , 2 );INSERT (NEW (PLABEL , INIT (OO1I , '~C~olors',
DEFCOLOR )));OO1I.ASSIGN (6 , 2 , 7 , 10 );INSERT (NEW (PCOLPALVIEW , INIT (OO1I , 0 )));OO1I.ASSIGN (22 , 2 , 23 , 10 );
INSERT (NEW (PCOLPALVIEW , INIT (OO1I , 8 )));OO1I.ASSIGN (2 , 11 , 36 , 12 );REDBAR := NEW (PSCROLLBAR , INIT (OO1I ));
REDBAR ^. SETPARAMS (0 , 0 , 63 , 8 , 1 );REDBAR ^. OPTIONS := REDBAR ^. OPTIONS OR OFSELECTABLE ;INSERT (REDBAR );
OO1I.ASSIGN (1 , 10 , 5 , 11 );INSERT (NEW (PLABEL , INIT (OO1I , '~R~ed', REDBAR )));OO1I.ASSIGN (2 , 13 , 36 , 14 );
GREENBAR := NEW (PSCROLLBAR , INIT (OO1I ));GREENBAR ^. SETPARAMS (0 , 0 , 63 , 8 , 1 );GREENBAR ^. OPTIONS := GREENBAR
^. OPTIONS OR OFSELECTABLE ;INSERT (GREENBAR );OO1I.ASSIGN (1 , 12 , 7 , 13 );INSERT (NEW (PLABEL , INIT (OO1I ,
'~G~reen', GREENBAR )));OO1I.ASSIGN (2 , 15 , 36 , 16 );BLUEBAR := NEW (PSCROLLBAR , INIT (OO1I ));BLUEBAR ^. SETPARAMS
(0 , 0 , 63 , 8 , 1 );BLUEBAR ^. OPTIONS := BLUEBAR ^. OPTIONS OR OFSELECTABLE ;INSERT (BLUEBAR );OO1I.ASSIGN (1 , 14 , 6
, 15 );INSERT (NEW (PLABEL , INIT (OO1I , '~B~lue', BLUEBAR )));OO1I.ASSIGN (1 , 17 , 11 , 19 );INSERT (NEW (PBUTTON ,
INIT (OO1I , 'O~K~', CMOK , BFDEFAULT )));OO1I.ASSIGN (12 , 17 , 22 , 19 );INSERT (NEW (PBUTTON , INIT (OO1I , 'Cancel',
CMCANCEL , BFNORMAL )));OO1I.ASSIGN (23 , 17 , 36 , 19 );INSERT (NEW (PBUTTON , INIT (OO1I , '~D~efault', CMDEFAULTPAL ,
BFNORMAL )));GETDACBLOCK (@ CURPAL , 0 , 256 );SETCOLORBARS (0 );SELECTNEXT (FALSE )END ;PROCEDURE TPALDLG.SETCOLORBARS
(COLOR:BYTE);VAR OO1I,OIl1,OIO1:BYTE;BEGIN GETDAC (GETATTRCONT (COLOR ), OO1I , OIl1 , OIO1 );REDBAR ^. SETVALUE (OO1I );
GREENBAR ^. SETVALUE (OIl1 );BLUEBAR ^. SETVALUE (OIO1 )END ;PROCEDURE TPALDLG.CHANGEDAC ;VAR OO1I,OIl1,OIO1:BYTE;
BEGIN GETDAC (GETATTRCONT (DEFCOLOR ^. VALUE ), OO1I , OIl1 , OIO1 );IF REDBAR ^. STATE AND SFSELECTED =SFSELECTED THEN
OO1I := REDBAR ^. VALUE ELSE IF GREENBAR ^. STATE AND SFSELECTED =SFSELECTED THEN OIl1 := GREENBAR ^. VALUE ELSE IF
BLUEBAR ^. STATE AND SFSELECTED =SFSELECTED THEN OIO1 := BLUEBAR ^. VALUE ;SETDAC (GETATTRCONT (DEFCOLOR ^. VALUE ), OO1I
, OIl1 , OIO1 );END ;PROCEDURE TPALDLG.HANDLEEVENT (VAR EVENT:TEVENT);BEGIN IF (EVENT.WHAT =EVCOMMAND )AND
((EVENT.COMMAND =CMCANCEL )OR (EVENT.COMMAND =CMCLOSE ))THEN SETDACBLOCK (@ CURPAL , 0 , 256 );
INHERITED HANDLEEVENT(EVENT );CASE EVENT.WHAT OF EVCOMMAND :BEGIN CASE EVENT.COMMAND OF CMOK :CLOSE ;CMDEFAULTPAL
:BEGIN SETDACBLOCK (@ CURPAL , 0 , 256 );SETCOLORBARS (DEFCOLOR ^. VALUE )END ELSE EXIT END ;CLEAREVENT (EVENT )END ;
EVBROADCAST :BEGIN CASE EVENT.COMMAND OF CMSCROLLBARCHANGED :CHANGEDAC ;CMMSGBUTTONPRESS :SETCOLORBARS (DEFCOLOR ^.
VALUE )ELSE EXIT END ;CLEAREVENT (EVENT )END END END ;PROCEDURE TCHRSETVIEW.DRAW ;VAR OI1OllllOl1:TDRAWBUFFER;
OOIO,OOIl:INTEGER;OOllOI000O1l:WORD;BEGIN OOllOI000O1l := GETCOLOR (33 );FOR OOIl := 0 TO SIZE.Y - 1 DO BEGIN FOR OOIO
:= 0 TO SIZE.X - 1 DO OI1OllllOl1 [ OOIO ] := (OOIl * SIZE.X + OOIO )OR (OOllOI000O1l SHL 8 );WRITEBUF (0 , OOIl ,
SIZE.X , 1 , OI1OllllOl1 );END END ;CONSTRUCTOR TCHRSETDLG.INIT (NAME:PATHSTR;XLEN,YLEN:WORD);VAR OO1I:TRECT;
BEGIN OO1I.ASSIGN (0 , 0 , XLEN + 2 , YLEN + 2 );INHERITED INIT(OO1I , NAME );GETEXTENT (OO1I );OO1I.GROW (- 1 , - 1 );
INSERT (NEW (PCHRSETVIEW , INIT (OO1I )))END ;FUNCTION TCHRSETDLG.GETPALETTE :PPALETTE ;CONST OOlOIOI1Oll1=CBLUEDIALOG+
CGRAPHPAL;O10O1I10lIIO0=CCYANDIALOG+ CGRAPHPAL;OIO1IO1ll10=CGRAYDIALOG+ CGRAPHPAL;OO10:ARRAY [ DPBLUEDIALOG..
DPGRAYDIALOG] OF STRING [ LENGTH(OOlOIOI1Oll1)] =(OOlOIOI1Oll1, O10O1I10lIIO0, OIO1IO1ll10);BEGIN GETPALETTE := @ OO10 [
PALETTE ] END ;END .