• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Weird drawing trouble, please help me
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Weird drawing trouble, please help me


  • Subject: Weird drawing trouble, please help me
  • From: "Alan Smith" <email@hidden>
  • Date: Sat, 30 Sep 2006 22:53:56 -0400

I've made a subclass of NSProgressIndicator and it works very well,
except for the "scrolling" effect that it usually has. Here is my
code:

- (void)_drawProgressArea
{
	if (progressOrigin >= [progressImage size].width)
	{
		progressOrigin = 0.0;
	}
	else
	{
		progressOrigin += 1.0;
	}

	NSRect drawRect = [self _getProgressFrame];
	drawRect.origin.x -= progressOrigin;
	drawRect.size.width += progressOrigin;

	if (progressImage == nil)
	{
		[self updateImages];
	}

	[self lockFocus];
	[progressImage tileInRect: drawRect];
	[self unlockFocus];
}

tileInRect: simply tiles the image side ways across the rect and seems
to work fine. But the trouble seems to be that the drawRect.size.width
+= progressOrigin; is not working. Even though I've NSLogged it and it
does increase in size. But if I comment it out nothing changes, it
still doesn't draw correctly. This "drawing trouble" is that the
rectangle seems to move over because on screen the picture does but
the last picture "smears." It looks like the picture is drawn on top
of itself but 1 pixel over to the left each time. I don't want that
smeary look. Instead of that smear should appear the edge of another
picture, same as the rest, and slide with the others.

Below is - (void)tileInRect:(NSRect)rect for completeness.

- (void)tileInRect:(NSRect)rect
{
	float origin = rect.origin.x;
	float width = [self size].width;

	NSRect bounds = NSMakeRect(0, 0, [self size].width, [self size].height);

	while (origin <= (NSWidth(rect) + rect.origin.x))
	{
		[self drawInRect: NSMakeRect(origin, 0, width, NSHeight(rect))
fromRect: bounds operation: NSCompositeSourceOver fraction: 1.0];

		origin += width;
	}
}

I will *greatly* appreciate help. Note that I'm not putting my code up
for critue but simply to resolve my current problem.
Peace, Alan
--
// Quotes from yours truly -------------------------
"You don't forget, you just don't remember."
"Maturity resides in the mind."
"Silence is the Universe's greatest gift."
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Weird drawing trouble, please help me
      • From: John Stiles <email@hidden>
  • Prev by Date: [SOLVED] Truncating the string value of an NSTextField, in a Panther compatible way.
  • Next by Date: Re: Weird drawing trouble, please help me
  • Previous by thread: Re: NSDate's GMT offset changing with month change.
  • Next by thread: Re: Weird drawing trouble, please help me
  • Index(es):
    • Date
    • Thread