ftp.nice.ch/pub/next/tools/screen/backspace/old/Patchwork.N.bs.tar.gz#/Patchwork/PatchworkView.m

This is PatchworkView.m in view mode; [Download] [Up]

//
// PatchworkView.m
//
// Matt Pharr- pharr@cs.yale.edu
//

#import "PatchworkView.h"
#import <appkit/graphics.h>
#import <libc.h>
#import <dpsclient/wraps.h>


@implementation PatchworkView

- oneStep
{
  float red, green, blue;

  /* Sure, some boxes will be partially or fully off-screen, but this way, */
  /* the edges of the screen aren't missed most of the time.... */

  theBox.origin.x= randBetween(bounds.origin.x - 50, bounds.size.width + 50);
  theBox.origin.y= randBetween(bounds.origin.y - 50, bounds.size.height + 50);
  theBox.size.width= randBetween(0.0, bounds.size.width - theBox.origin.x);
  theBox.size.height= randBetween(0.0, bounds.size.height - theBox.origin.y);

  if ([Window defaultDepthLimit] == NX_TwoBitGrayDepth) {
     // Black And White Machines
     color= randBetween(0.0, 1.0);
     if ((int)(15 * color) == 1) {  // This way, solidly black squares
       color= 0.0;                  // are more common, just to be
                                    // totally 
     }                              // paranoid about avoiding burn-in
     PSsetgray(color);
  }

  else {                                 // thanks a bunch to 
    red= randBetween(0.0, 1.0);          // rob@lighthouse.com for 
    green= randBetween(0.0, 1.0);        // writing and sending me 
    blue= randBetween(0.0, 1.0);         // the code to do it in
    if ((int)(100 * red) == 1) {         // color on color machines...
        red= green= blue= 0.0;
    } 
    PSsetrgbcolor(red,green,blue);
  }

  PSrotate(randBetween(0.0, 90.0));
  NXRectFill(&theBox);
 
  return self;
}


- drawSelf:(const NXRect *)rects :(int)rectCount
{
  if (!rects || !rectCount) {
    return self;
  }

  PSsetgray(0.0);
  NXRectFill(rects);

  return self;
}

@end









These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.