Weird drawing trouble, please help me
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