Thanks a lot,

I had to subclass also the scroll view but it partially works.

Now my code is:

@implementation MyScroller

+ (CGFloat)scrollerWidth {
        return 40.0f;
}

+ (CGFloat)scrollerWidthForControlSize:(NSControlSize)controlSize
{
        return 40.0f;
}

- (void)drawRect:(NSRect)rect
{
        [self drawKnobSlot];
        [self drawKnob];
}

- (void)drawKnob
{
        NSRect rect = [self rectForPart:NSScrollerKnob];
        rect.origin.x =0;
        rect.size.width = 40;

        [[NSColor darkGrayColor] set];
        [NSBezierPath fillRect:rect];
}

- (void)drawKnobSlot
{
        NSRect rect = [self rectForPart:NSScrollerKnobSlot];
        rect.origin.x = 0;
        rect.size.width = 40;
        [[NSColor grayColor] set];
        [NSBezierPath fillRect:rect];
}

@end


The knob's width is still 15.0f

As you can see from image here:

http://img30.imageshack.us/img30/3586/immagine1jvf.png

the knob's rect is splitted in 2 rects:

the right rect works fine and scroll my table, the left rect doesn't scroll and if i try to click on it or drag it it moves the windo to its origin.x and y

I found no documentation about a knobwidth or something.

Thanks for any help or hints.

Max



Il giorno 30/ago/09, alle ore 21:20, Brandon Walkin ha scritto:

Use +scrollerWidth and +scrollerWidthForControlSize. Here's a custom scroller subclass from BWToolkit which might help you out: http://bitbucket.org/bwalkin/bwtoolkit/src/tip/BWTransparentScroller.m

Brandon

On 2009-08-30, at 5:25 AM, Massimiliano Gargani wrote:

Hi there,

I've googled a lot before post this question but I'm stucked.

I'm trying to subclassing NSScroller to change the aqua look and, most important, to change the width of the vertical scroll bar.

My subclass is:

- (void)drawRect:(NSRect)rect
{
 [self drawKnobSlot];
 [self drawKnob];
}

- (void)drawKnob
{
 NSRect rect = [self rectForPart:NSScrollerKnob];
 [[NSColor darkGrayColor] set];
 [NSBezierPath fillRect:rect];
}

- (void)drawKnobSlot
{
 NSRect rect = [self rectForPart:NSScrollerKnobSlot];
 [[NSColor grayColor] set];
 [NSBezierPath strokeRect:rect];
}

It works and change the look as I want but not the width. I tried to set rect width but is not the right way because the rect goes beyond the scrollview.

Any help is appreciated.

Thanks,
Max

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/bwalkin%40gmail.com

This email sent to bwal...@gmail.com


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to