Thread View: comp.sources.mac
1 messages
1 total messages
Started by Oliver Steele
Fri, 20 May 1988 04:22
ShowPict.c
Author: Oliver Steele
Date: Fri, 20 May 1988 04:22
Date: Fri, 20 May 1988 04:22
164 lines
4084 bytes
4084 bytes
[ShowPict.c]
---
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# ShowPict.c
# This archive created: Thu May 19 07:49:57 1988
# By: Roger L. Long (bytebug@dhw68k.cts.com)
export PATH; PATH=/bin:$PATH
echo shar: extracting "'ShowPict.c'" '(2664 characters)'
if test -f 'ShowPict.c'
then
echo shar: will not over-write existing file "'ShowPict.c'"
else
sed 's/^X//' << \SHAR_EOF > 'ShowPict.c'
X/* File: ShowPict.c
X * Author: Oliver Steele
X * USENET: steele@cs.unc.edu
X * USNAIL: 1209 Mason Farm Rd. 27514
X * Purpose: display a PICT file
X * Date: 13 May 1985
X * Comments:
X * I release this code into the public domain.
X * This code was written quickly and dirtily.
X * I make no guarantees about it.
X */
X
X#include <MacTypes.h>
X#include <QuickDraw.h>
X#include <WindowMgr.h>
X#include <Color.h>
X#include <ColorToolbox.h>
X#include <EventMgr.h>
X#include <SegmentLdr.h>
X#include <FileMgr.h>
X#include <StdFilePkg.h>
X
Xextern int MBarHeight: 0xbaa;
X/*#define HasCQD() (!(ROM85&0x4000))
X#define mbHeight ((ROM85<0)?20:MBarHeight)
X*/
Xstatic int PICTRefNum;
X
Xpascal void GetPICTData(dp, n)
XPtr dp;
Xint n;
X{
X long count;
X
X count = n;
X FSRead(PICTRefNum,&count,dp);
X}
X
Xvoid DrawPICTFile(name,refnum)
XStringPtr name;
Xint refnum;
X{
X CQDProcs qdp;
X PicHandle ph;
X long count;
X Rect bounds;
X WindowRecord window;
X
X PICTRefNum = refnum;
X ph = (PicHandle) NewHandle(sizeof(Picture));
X
X SetFPos(PICTRefNum,fsFromStart,512);
X count = sizeof(Picture);
X FSRead(PICTRefNum,&count,*ph);
X
X bounds = (**ph).picFrame;
X OffsetRect(&bounds,-bounds.left,-bounds.top);
X OffsetRect(&bounds,
X (screenBits.bounds.right-bounds.right)/2,
X (screenBits.bounds.bottom-mbHeight-bounds.bottom)/2);
X if (bounds.left<0)
X InsetRect(&bounds,-bounds.left,0);
X if (bounds.top<0)
X InsetRect(&bounds,0,-bounds.top);
X OffsetRect(&bounds,0,mbHeight);
X
X if (HasCQD())
X NewCWindow(&window,&bounds,name,true,plainDBox,-1,false,0);
X else
X NewWindow (&window,&bounds,name,true,plainDBox,-1,false,0);
X
X SetPort(&window.port);
X SetStdCProcs(&qdp);
X qdp.getPicProc = (Ptr) GetPICTData;
X window.port.grafProcs = (QDProcsPtr) &qdp;
X
X OffsetRect(&bounds,-bounds.left,-bounds.top);
X DrawPicture(ph,&bounds);
X FSClose(refnum);
X while (!Button())
X ;
X CloseWindow(&window);
X}
X
Xvoid OpenAndDraw(name,vol)
XStringPtr name;
Xint vol;
X{
X int refnum;
X
X if (FSOpen(name,vol,&refnum)) {
X SysBeep(2);
X return;
X }
X DrawPICTFile(name,refnum);
X FSClose(refnum);
X}
X
Xmain()
X{
X int message, count;
X
X MaxApplZone();
X MoreMasters();
X
X InitGraf(&thePort);
X InitFonts();
X InitWindows();
X InitMenus();
X TEInit();
X InitDialogs(0);
X
X InitCursor();
X FlushEvents(everyEvent-diskMask,0);
X
X CountAppFiles(&message, &count);
X if (count) {
X int i;
X AppFile app;
X
X for (i = 0; i++<count; ) {
X GetAppFiles(i, &app);
X if (app.fType == 'PICT')
X OpenAndDraw(app.fName, app.vRefNum);
X }
X } else for (;;) {
X SFReply sf;
X int refnum;
X static Point where = {100,100};
X
X FlushEvents(everyEvent-diskMask,0);
X SFGetFile(where, 0, 0, 1, "PICT", 0, &sf);
X if (!sf.good)
X break;
X OpenAndDraw(sf.fName, sf.vRefNum);
X }
X}
SHAR_EOF
if test 2664 -ne "`wc -c < 'ShowPict.c'`"
then
echo shar: error transmitting "'ShowPict.c'" '(should have been 2664 characters)'
fi
fi # end of overwriting check
# End of shell archive
exit 0
---
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads