home *** CD-ROM | disk | FTP | other *** search
- #include <dos.h>
- #include <conio.h>
- #include <stdio.h>
- #include <wgt.h>
- #include <wgtmenu.h>
- #include <filesel.h>
-
-
- color pal[256]; // our palette
- char *menubar[10]={" QUIT "," FILE "," MODE ",NULL,NULL,NULL,NULL,NULL,NULL,NULL};
- int menuchoice; // result from menus
- wgtfont little; // smaller font with special characters
- int picmode=3; // mode for picture (PCX,PAK,BLK)
- char *picturename; // filename of picture for loading and saving
- // used with file selector
- char *palname; // filename of palette
- block screen2; // a virtual screen to load pictures onto
-
-
- void changemode(int);
- void loadapicture(void);
- void saveapicture(void);
- void dopalette(void);
-
- void main(void)
- {
- vga256();
-
- screen2=wnewblock(0,0,319,199);
- little=wloadfont("c:\\tc\\newwgt\\fonts\\medium.wfn");
- wreadpalette(0,255,&pal);
- wsetrgb(1,63,63,63,&pal);
- wsetrgb(253,50,50,50,&pal);
- wsetrgb(254,40,40,40,&pal);
- wsetrgb(255,30,30,30,&pal);
- wsetpalette(0,255,&pal);
-
- menubarcolor=254;
- menubartextcolor=1;
- bordercolor=255;
- highlightcolor=144;
-
- menufont=little;
-
- dropdown[0].choice[0]=" QUIT ";
-
- dropdown[1].choice[0]="LOAD A PICTURE";
- dropdown[1].choice[1]="--------------";
- dropdown[1].choice[2]="SAVE A PICTURE";
- dropdown[1].choice[3]="--------------";
- dropdown[1].choice[4]="LOAD A PALETTE";
- dropdown[1].choice[5]="--------------";
- dropdown[1].choice[6]="SAVE A PALETTE";
-
- dropdown[2].choice[0]=" PCX \x09";
- dropdown[2].choice[1]=" PAK \x09";
- dropdown[2].choice[2]=" BLK \x0A";
-
- initdropdowns();
-
- showmenubar();
-
- mon();
-
- do { menuchoice=checkmenu();
-
- switch (menuchoice)
- {
- case 20:
- case 21:
- case 22: changemode(menuchoice-19); break;
- case 10: loadapicture(); break;
- case 12: saveapicture(); break;
- case 14: dopalette(); break;
-
- }
- } while (menuchoice !=0); // quit
-
-
- removemenubar();
- free(little); // free the font
- wfreeblock(screen2);
- textmode(C80);
- }
-
-
- void changemode(int cmode)
- {
- // make all boxes empty
- dropdown[2].choice[0]=" PCX \x09";
- dropdown[2].choice[1]=" PAK \x09";
- dropdown[2].choice[2]=" BLK \x09";
-
-
- // and put a check mark in the right one
- if (cmode==1)
- dropdown[2].choice[0]=" PCX \x0A";
- else if (cmode==2)
- dropdown[2].choice[1]=" PAK \x0A";
- else if (cmode==3)
- dropdown[2].choice[2]=" BLK \x0A";
-
- picmode=cmode;
- }
-
-
- void loadapicture()
- {
- block tempblock=NULL;
-
- moff();
- removemenubar();
-
- if (picmode==1)
- picturename=wfileselector("Load a PCX","*.pcx");
- else if (picmode==2)
- picturename=wfileselector("Load a PAK","*.pak");
- else if (picmode==3)
- picturename=wfileselector("Load a BLK","*.blk");
-
- moff();
- if (picturename !=NULL) // if you selected something
- {
- wsetscreen(screen2);
- wcls(0); // clear the virtual screen
- if (picmode==1)
- {
- tempblock=wloadpcx256(picturename,&pal);
- wputblock(0,0,tempblock,0);
- wsetrgb(1,63,63,63,&pal);
- wsetrgb(253,50,50,50,&pal);
- wsetrgb(254,40,40,40,&pal);
- wsetrgb(255,30,30,30,&pal);
- wsetpalette(0,255,&pal);
- }
- else if (picmode==2)
- {
- tempblock=wloadpak(picturename);
- wputblock(0,0,tempblock,0);
- }
- else if (picmode==3)
- {
- tempblock=wloadblock(picturename);
- wputblock(0,0,tempblock,0);
- }
-
- if (tempblock !=NULL)
- wfreeblock(tempblock);
- }
- wnormscreen();
- wputblock(0,0,screen2,0);
- showmenubar();
- mon();
- }
-
- void saveapicture()
- {
- removemenubar();
-
- moff();
- if (picmode==1)
- picturename=wfileselector("Save a PCX","*.pcx");
- else if (picmode==2)
- picturename=wfileselector("Save a PAK","*.pak");
- else if (picmode==3)
- picturename=wfileselector("Save a BLK","*.blk");
-
-
- if (picturename !=NULL) // if you selected something
- {
- moff();
- wnormscreen();
- wputblock(0,0,screen2,0);
- if (picmode==1)
- wsavepcx256(picturename,screen2,&pal);
- if (picmode==2)
- wsavepak(picturename,screen2);
- else if (picmode==3)
- wsaveblock(picturename,screen2);
- }
- showmenubar();
- mon();
- }
-
-
- void dopalette(void)
- {
-
- moff();
- removemenubar();
-
- palname=wfileselector("Load a palette","*.pal");
- moff();
- if (palname !=NULL)
- {
- wloadpalette(palname,&pal);
- wsetpalette(0,255,&pal);
- }
- wnormscreen();
- wputblock(0,0,screen2,0);
- showmenubar();
- mon();
- }
-