🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sources.mac
1 messages
1 total messages Started by Oliver Steele Fri, 20 May 1988 04:22
ShowPict.c
#54
Author: Oliver Steele
Date: Fri, 20 May 1988 04:22
164 lines
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