summaryrefslogtreecommitdiffstats
path: root/Mac/Wastemods
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Wastemods')
-rw-r--r--Mac/Wastemods/WEObjectHandlers.c111
-rw-r--r--Mac/Wastemods/WEObjectHandlers.h31
-rw-r--r--Mac/Wastemods/WETabHooks.c281
-rw-r--r--Mac/Wastemods/WETabHooks.h35
-rw-r--r--Mac/Wastemods/WETabs.c116
-rw-r--r--Mac/Wastemods/WETabs.h40
-rw-r--r--Mac/Wastemods/readme.txt11
7 files changed, 0 insertions, 625 deletions
diff --git a/Mac/Wastemods/WEObjectHandlers.c b/Mac/Wastemods/WEObjectHandlers.c
deleted file mode 100644
index f1dd5af..0000000
--- a/Mac/Wastemods/WEObjectHandlers.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- WASTE Demo Project:
- Sample WASTE Object Handlers
-
- Copyright © 1993-1998 Marco Piovanelli
- All Rights Reserved
-*/
-
-#include "WEObjectHandlers.h"
-
-#ifndef __ICONS__
-#include <Icons.h>
-#endif
-
-#ifndef __SOUND__
-#include <Sound.h>
-#endif
-
-/* PICTURES */
-
-pascal OSErr HandleNewPicture(Point *defaultObjectSize, WEObjectReference objectRef)
-{
- PicHandle thePicture;
- Rect frame;
-
- /* get handle to object data (in this case, a picture handle) */
- thePicture = (PicHandle) WEGetObjectDataHandle(objectRef);
-
- /* figure out the default object size by looking at the picFrame record */
- frame = (*thePicture)->picFrame;
- OffsetRect(&frame, -frame.left, -frame.top);
- defaultObjectSize->v = frame.bottom;
- defaultObjectSize->h = frame.right;
-
- return noErr;
-}
-
-pascal OSErr HandleDisposePicture(WEObjectReference objectRef)
-{
- PicHandle thePicture;
-
- /* get handle to object data (in this case, a picture handle) */
- thePicture = (PicHandle) WEGetObjectDataHandle(objectRef);
-
- /* kill the picture */
- KillPicture(thePicture);
-
- return MemError();
-}
-
-pascal OSErr HandleDrawPicture(const Rect *destRect, WEObjectReference objectRef)
-{
- PicHandle thePicture;
-
- /* get handle to object data (in this case, a picture handle) */
- thePicture = (PicHandle) WEGetObjectDataHandle(objectRef);
-
- /* draw the picture */
- DrawPicture(thePicture, destRect);
-
- return noErr;
-}
-
-
-/* SOUND */
-
-pascal OSErr HandleNewSound(Point *defaultObjectSize, WEObjectReference objectRef)
-{
-#pragma unused(objectRef)
-
- /* sounds are drawn as standard 32x32 icons */
- defaultObjectSize->v = 32;
- defaultObjectSize->h = 32;
-
- return noErr;
-}
-
-pascal OSErr HandleDrawSound(const Rect *destRect, WEObjectReference objectRef)
-{
-#pragma unused(objectRef)
-
- /* draw the sound icon */
- return PlotIconID(destRect, kAlignNone, kTransformNone, kSoundIconID);
-}
-
-pascal Boolean HandleClickSound(Point hitPt, EventModifiers modifiers,
- UInt32 clickTime, WEObjectReference objectRef)
-{
-#pragma unused(hitPt, clickTime)
-
- SndListHandle theSound;
-
- /* WASTE sets the low bit of modifiers on double (multiple) clicks */
- if (modifiers & 0x0001)
- {
-
- /* get a handle to the object data (in this case, a sound handle) */
- theSound = (SndListHandle) WEGetObjectDataHandle(objectRef);
-
- /* play the sound */
- SndPlay(nil, theSound, false);
-
- /* return TRUE so WASTE knows we handled the click */
- return true;
- }
- else
- {
- /* not a double click: let WASTE handle the mouse-down */
- return false;
- }
-}
diff --git a/Mac/Wastemods/WEObjectHandlers.h b/Mac/Wastemods/WEObjectHandlers.h
deleted file mode 100644
index ac6e567..0000000
--- a/Mac/Wastemods/WEObjectHandlers.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- WASTE Demo Project:
- Sample WASTE Object Handlers
-
- Copyright © 1993-1998 Marco Piovanelli
- All Rights Reserved
-*/
-#ifndef WITHOUT_FRAMEWORKS
-#include <Carbon/Carbon.h>
-#endif
-#ifndef _WASTE_
-#include "WASTE.h"
-#endif
-
-
-// PICTURES
-
-pascal OSErr HandleNewPicture(Point *defaultObjectSize, WEObjectReference objectRef);
-pascal OSErr HandleDisposePicture(WEObjectReference objectRef);
-pascal OSErr HandleDrawPicture(const Rect *destRect, WEObjectReference objectRef);
-
-// SOUNDS
-
-enum {
- kSoundIconID = 550
-};
-
-pascal OSErr HandleNewSound(Point *defaultObjectSize, WEObjectReference objectRef);
-pascal OSErr HandleDrawSound(const Rect *destRect, WEObjectReference objectRef);
-pascal Boolean HandleClickSound(Point hitPt, EventModifiers modifiers,
- UInt32 clickTime, WEObjectReference objectRef);
diff --git a/Mac/Wastemods/WETabHooks.c b/Mac/Wastemods/WETabHooks.c
deleted file mode 100644
index 9595daf..0000000
--- a/Mac/Wastemods/WETabHooks.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * WETabHooks.c
- *
- * WASTE TABS PACKAGE
- * Hooks for adding tab support to WASTE
- *
- * Written by:
- * Mark Alldritt (original code)
- * Dan Crevier (line breaks)
- * John Daub (maintenance)
- * Jonathan Kew (variable-width tabs)
- * Marco Piovanelli (?)
- * Bert Seltzer (horizontal scrolling)
- *
- */
-
-#include "WETabs.h"
-#include "WETabHooks.h"
-
-#define FIXROUND(f) ((SInt16) (((f) + 0x00008000) >> 16))
-#define BSL(A, B) (((SInt32) (A)) << (B))
-
-static const Point kOneToOneScaling = { 1, 1 } ;
-
-pascal void _WETabDrawText
- (
- const char * pText,
- SInt32 textLength,
- Fixed slop,
- JustStyleCode styleRunPosition,
- WEReference we
- )
-{
-#pragma unused ( slop, styleRunPosition )
-
- LongRect destRect;
- SInt32 beginChar = 0;
- SInt32 ii;
- SInt16 tabWidth;
- SInt16 destLeft;
- Point penPos;
- SInt16 tabSize = WEGetTabSize(we);
-
- WEGetDestRect(&destRect, we);
- destLeft = (SInt16) destRect.left;
-
- for ( ii = 0; ii < textLength; ii++ )
- {
- if (pText[ii] == '\t')
- {
- DrawText(pText, beginChar, ii - beginChar);
-
- /* advance the pen to the next tab stop */
- GetPen(&penPos);
- tabWidth = tabSize - (penPos.h - destLeft) % tabSize;
- MoveTo(penPos.h + tabWidth, penPos.v);
- beginChar = ii + 1;
- }
- } /* for */
-
- DrawText(pText, beginChar, textLength - beginChar);
-}
-
-pascal SInt32 _WETabPixelToChar
- (
- const char * pText,
- SInt32 textLength,
- Fixed slop,
- Fixed *width,
- WEEdge *edge,
- JustStyleCode styleRunPosition,
- Fixed hPos,
- WEReference we
- )
-{
- SInt32 beginChar = 0;
- SInt32 offset = 0;
- SInt32 ii;
- Fixed lastWidth;
- Fixed tabWidth;
- SInt16 tabSize = WEGetTabSize(we);
-
- /* loop through every character in the segment looking for tabs */
- for ( ii = 0; ii < textLength; ii++ )
- {
- /* exit now if width has gone negative */
- /* (i.e., if we have found which glyph was hit) */
- if (*width <= 0)
- {
- break;
- }
-
- /* tab found? */
- if (pText[ii] == '\t')
- {
- /* calculate the width of the sub-segment preceding the tab */
- lastWidth = *width;
- offset += PixelToChar((char *)pText + beginChar, ii - beginChar, slop,
- lastWidth, (Boolean *) edge, width, styleRunPosition,
- kOneToOneScaling, kOneToOneScaling);
- beginChar = ii + 1;
-
- /* hit point past sub-segment? */
- if (*width >= 0)
- {
- /* increment hPos by width of sub-segment preceding the tab */
- hPos += (lastWidth - *width);
-
- /* calculate the width of the tab "glyph" (as a Fixed value) */
- tabWidth = BSL(tabSize - FIXROUND(hPos) % tabSize, 16);
-
- /* increment hPos by width of tab character */
- hPos += tabWidth;
-
- /* hit point within tab glyph? */
- if (*width < tabWidth)
- {
- /* yes: determine which half of tab glyph was hit */
- if (*width > (tabWidth >> 1))
- {
- *edge = kTrailingEdge; /* second (trailing) edge of tab */
- offset++;
- }
- else
- {
- *edge = kLeadingEdge; /* first (leading) edge of tab */
- }
-
- /* returning -1 (as Fixed) in width means we're finished */
- *width = 0xFFFF0000;
- }
- else
- {
- /* hit point is past tab: keep looping */
- offset++;
- *width -= tabWidth;
- }
- } /* if (*width >= 0) */
- } /* if tab found */
- } /* for */
-
- /* no more tabs in this segment: process the last sub-segment */
- if (*width >= 0)
- {
- lastWidth = *width;
- offset += PixelToChar((char *)pText + beginChar, textLength - beginChar, slop,
- lastWidth, (Boolean *) edge, width, styleRunPosition,
- kOneToOneScaling, kOneToOneScaling);
- }
-
- /* round width to nearest integer value */
- /* this is supposed to fix an incompatibility with the WorldScript Power Adapter */
- *width = (*width + 0x00008000) & 0xFFFF0000;
-
- return offset;
-}
-
-pascal SInt16 _WETabCharToPixel
- (
- const char * pText,
- SInt32 textLength,
- Fixed slop,
- SInt32 offset,
- SInt16 direction,
- JustStyleCode styleRunPosition,
- SInt16 hPos,
- WEReference we
- )
-{
- LongRect destRect;
- SInt32 beginChar = 0;
- SInt32 ii;
- SInt16 width;
- SInt16 destLeft;
- SInt16 totalWidth = 0;
- SInt16 tabSize = WEGetTabSize(we);
-
- WEGetDestRect(&destRect, we);
- destLeft = (SInt16) destRect.left;
-
- /* measure text up to offset, if offset is within this segment,
- otherwise to textLength */
- if (offset > textLength)
- {
- offset = textLength;
- }
-
- for ( ii = 0; ii < offset; ii++ )
- {
- if (pText[ii] == '\t')
- {
- /* calculate the pixel width of the subsegment preceding the tab */
- width = TextWidth(pText, beginChar, ii - beginChar);
- totalWidth += width;
- hPos += width;
-
- /* calculate tab width */
- width = tabSize - (hPos - destLeft) % tabSize;
- totalWidth += width;
- hPos += width;
-
- /* go to next subsegment */
- beginChar = ii + 1;
- }
- } /* for */
-
- /* calculate width of remaining characters */
- width = CharToPixel((char *)pText + beginChar, textLength - beginChar, slop,
- offset - beginChar, direction, styleRunPosition,
- kOneToOneScaling, kOneToOneScaling);
- totalWidth += width;
-
- return totalWidth;
-}
-
-pascal StyledLineBreakCode _WETabLineBreak
- (
- const char * pText,
- SInt32 textLength,
- SInt32 textStart,
- SInt32 textEnd,
- Fixed *textWidth,
- SInt32 *textOffset,
- WEReference we
- )
-{
- LongRect destRect;
- SInt32 beginChar = textStart;
- SInt32 ii;
- Fixed tabWidth;
- SInt16 destWidth;
- StyledLineBreakCode breakCode = smBreakOverflow;
- SInt16 tabSize = WEGetTabSize(we);
-
- WEGetDestRect(&destRect, we);
- destWidth = (SInt16) (destRect.right - destRect.left);
-
- for ( ii = textStart; ii < textEnd; ii++ )
- {
- if (pText[ii] == 0x0D)
- {
- /* found a <return>, so stop looking ahead for tabs */
- ii++;
- break;
- }
- if (pText[ii] == '\t')
- {
- /* do previous "segment" */
- breakCode = StyledLineBreak((char *)pText, textLength, beginChar, ii, 0, textWidth, textOffset);
- if ((breakCode != smBreakOverflow) || (ii >= textLength))
- {
- break;
- }
- beginChar = ii + 1;
-
- /* calculate tab width (as a Fixed value) */
- tabWidth = BSL(tabSize - (destWidth - FIXROUND(*textWidth)) % tabSize, 16);
-
- /* if tabWidth > pixelWidth we break in tab */
- /* don't move tab to next line */
- if (tabWidth > *textWidth)
- {
- breakCode = smBreakWord;
- *textOffset = ii + 1;
- break;
- }
- else
- {
- *textWidth -= tabWidth;
- }
- }
- } /* for */
-
- /* do last sub-segment */
- if ((ii - beginChar >= 0) && (breakCode == smBreakOverflow))
- {
- breakCode = StyledLineBreak((char *)pText, textLength, beginChar, ii, 0, textWidth, textOffset);
- }
-
- return breakCode;
-}
diff --git a/Mac/Wastemods/WETabHooks.h b/Mac/Wastemods/WETabHooks.h
deleted file mode 100644
index 635db74..0000000
--- a/Mac/Wastemods/WETabHooks.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * WETabHooks.h
- *
- * WASTE TABS PACKAGE
- * Private (internal) interface
- *
- * Copyright (c) 1993-1998 Marco Piovanelli
- * All Rights Reserved
- *
- */
-
-
-#ifndef WITHOUT_FRAMEWORKS
-#include <Carbon/Carbon.h>
-#endif
-#ifndef _WASTE_
-#include "WASTE.h"
-#endif
-
-enum {
- kTabSizeTag = 'tbsz'
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-pascal void _WETabDrawText(const char *, SInt32, Fixed, JustStyleCode, WEReference);
-pascal SInt32 _WETabPixelToChar(const char *, SInt32, Fixed, Fixed *, WEEdge *, JustStyleCode, Fixed, WEReference);
-pascal SInt16 _WETabCharToPixel(const char *, SInt32, Fixed, SInt32, SInt16, JustStyleCode, SInt16, WEReference);
-pascal StyledLineBreakCode _WETabLineBreak(const char *, SInt32, SInt32, SInt32, Fixed *, SInt32 *, WEReference);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Mac/Wastemods/WETabs.c b/Mac/Wastemods/WETabs.c
deleted file mode 100644
index 1a0291e..0000000
--- a/Mac/Wastemods/WETabs.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * WETabs.c
- *
- * WASTE TABS PACKAGE
- * Routines for installing/removing tab hooks; accessors
- *
- */
-
-
-#include "WETabs.h"
-#include "WETabHooks.h"
-
-#if !defined(__ERRORS__) && defined(WITHOUT_FRAMEWORKS)
-#include <Errors.h>
-#endif
-
-/* static UPP's */
-static WEDrawTextUPP _weTabDrawTextProc = nil;
-static WEPixelToCharUPP _weTabPixelToCharProc = nil;
-static WECharToPixelUPP _weTabCharToPixelProc = nil;
-static WELineBreakUPP _weTabLineBreakProc = nil;
-
-pascal OSErr WEInstallTabHooks(WEReference we)
-{
- OSErr err;
-
- /* if first time, create routine descriptors */
- if (_weTabDrawTextProc == nil)
- {
- _weTabDrawTextProc = NewWEDrawTextProc(_WETabDrawText);
- _weTabPixelToCharProc = NewWEPixelToCharProc(_WETabPixelToChar);
- _weTabCharToPixelProc = NewWECharToPixelProc(_WETabCharToPixel);
- _weTabLineBreakProc = NewWELineBreakProc(_WETabLineBreak);
- }
-
- if ((err = WESetInfo( weDrawTextHook, &_weTabDrawTextProc, we )) != noErr)
- {
- goto cleanup;
- }
- if ((err = WESetInfo( wePixelToCharHook, &_weTabPixelToCharProc, we )) != noErr)
- {
- goto cleanup;
- }
- if ((err = WESetInfo( weCharToPixelHook, &_weTabCharToPixelProc, we )) != noErr)
- {
- goto cleanup;
- }
- if ((err = WESetInfo( weLineBreakHook, &_weTabLineBreakProc, we )) != noErr)
- {
- goto cleanup;
- }
-
-cleanup:
- return err;
-}
-
-pascal OSErr WERemoveTabHooks(WEReference we)
-{
- UniversalProcPtr nullHook = nil;
- OSErr err;
-
- if ((err = WESetInfo( weDrawTextHook, &nullHook, we )) != noErr)
- {
- goto cleanup;
- }
- if ((err = WESetInfo( wePixelToCharHook, &nullHook, we )) != noErr)
- {
- goto cleanup;
- }
- if ((err = WESetInfo( weCharToPixelHook, &nullHook, we )) != noErr)
- {
- goto cleanup;
- }
- if ((err = WESetInfo( weLineBreakHook, &nullHook, we )) != noErr)
- {
- goto cleanup;
- }
-
-cleanup:
- return err;
-}
-
-pascal Boolean WEIsTabHooks(WEReference we)
-{
- WEPixelToCharUPP hook = nil;
-
- /* return true if our tab hooks are installed */
-
- return ( _weTabPixelToCharProc != nil ) &&
- ( WEGetInfo( wePixelToCharHook, &hook, we ) == noErr) &&
- ( _weTabPixelToCharProc == hook );
-}
-
-pascal SInt16 WEGetTabSize(WEReference we)
-{
- SInt32 result;
-
- if (WEGetUserInfo( kTabSizeTag, &result, we ) != noErr)
- {
- result = kDefaultTabSize;
- }
- return result;
-}
-
-pascal OSErr WESetTabSize(SInt16 tabSize, WEReference we)
-{
- // make sure tabSize is a reasonable size
- if ((tabSize < kMinTabSize) || (tabSize > kMaxTabSize))
- {
- return paramErr;
- }
- else
- {
- return WESetUserInfo( kTabSizeTag, tabSize, we );
- }
-}
diff --git a/Mac/Wastemods/WETabs.h b/Mac/Wastemods/WETabs.h
deleted file mode 100644
index 0b2c0f3..0000000
--- a/Mac/Wastemods/WETabs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * WETabs.h
- *
- * WASTE TABS PACKAGE
- * Public C/C++ interface
- *
- * version 1.3.2 (August 1996)
- *
- * Copyright (c) 1993-1998 Marco Piovanelli
- * All Rights Reserved
- *
- */
-
-
-#ifndef WITHOUT_FRAMEWORKS
-#include <Carbon/Carbon.h>
-#endif
-#ifndef _WASTE_
-#include "WASTE.h"
-#endif
-
-enum {
- kMinTabSize = 1, // must be greater than zero
- kDefaultTabSize = 32,
- kMaxTabSize = 1024 // arbitrary value
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-pascal OSErr WEInstallTabHooks(WEReference we);
-pascal OSErr WERemoveTabHooks(WEReference we);
-pascal Boolean WEIsTabHooks(WEReference we);
-pascal SInt16 WEGetTabSize(WEReference we);
-pascal OSErr WESetTabSize(SInt16 tabWidth, WEReference we);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Mac/Wastemods/readme.txt b/Mac/Wastemods/readme.txt
deleted file mode 100644
index 7f7c16e..0000000
--- a/Mac/Wastemods/readme.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-These files were in the Waste 1.3 distribution, but they are missing from the
-Waste 2.0 distribution. At least: from the 2.0 distribution as included with
-MetroWerks CodeWarrior. As the Python Waste module needs them I have included them
-here. There were a few minor changes (in function signatures) to accomodate
-slight changes in the Waste 2.0 headers.
-
-All the copyright notices in the files and in Waste 1.3 seem to indicate that it
-is fine to redistribute these files. If I am mistaken in this please let me know
-and I will rectify the situation immedeately.
-
-Jack Jansen, jack@cwi.nl, 31-Jan-01.