aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m
diff options
context:
space:
mode:
Diffstat (limited to 'Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m')
-rw-r--r--Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m251
1 files changed, 0 insertions, 251 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m b/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m
deleted file mode 100644
index 636aaffc..00000000
--- a/Frameworks/BWToolkitFramework.framework/BWTransparentScroller.m
+++ /dev/null
@@ -1,251 +0,0 @@
-//
-// BWTransparentScroller.m
-// BWToolkit
-//
-// Created by Brandon Walkin (www.brandonwalkin.com)
-// All code is provided under the New BSD license.
-//
-
-#import "BWTransparentScroller.h"
-
-// Vertical scroller
-static NSImage *knobTop, *knobVerticalFill, *knobBottom, *slotTop, *slotVerticalFill, *slotBottom;
-static float verticalPaddingLeft = 0.0;
-static float verticalPaddingRight = 1.0;
-static float verticalPaddingTop = 2.0;
-static float verticalPaddingBottom = 0.0;
-static float minKnobHeight;
-
-// Horizontal scroller
-static NSImage *knobLeft, *knobHorizontalFill, *knobRight, *slotLeft, *slotHorizontalFill, *slotRight;
-static float horizontalPaddingLeft = 2.0;
-static float horizontalPaddingRight = 2.0;
-static float horizontalPaddingTop = 0.0;
-static float horizontalPaddingBottom = 1.0;
-static float minKnobWidth;
-
-static NSColor *backgroundColor;
-
-@interface BWTransparentScroller (BWTSPrivate)
-- (void)drawKnobSlot;
-@end
-
-@interface NSScroller (BWTSPrivate)
-- (NSRect)_drawingRectForPart:(NSScrollerPart)aPart;
-@end
-
-@implementation BWTransparentScroller
-
-+ (void)initialize
-{
- NSBundle *bundle = [NSBundle bundleForClass:[BWTransparentScroller class]];
-
- // Vertical scroller
- knobTop = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobTop.tif"]];
- knobVerticalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobVerticalFill.tif"]];
- knobBottom = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobBottom.tif"]];
- slotTop = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotTop.tif"]];
- slotVerticalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotVerticalFill.tif"]];
- slotBottom = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotBottom.tif"]];
-
- // Horizontal scroller
- knobLeft = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobLeft.tif"]];
- knobHorizontalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobHorizontalFill.tif"]];
- knobRight = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerKnobRight.tif"]];
- slotLeft = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotLeft.tif"]];
- slotHorizontalFill = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotHorizontalFill.tif"]];
- slotRight = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"TransparentScrollerSlotRight.tif"]];
-
- backgroundColor = [[NSColor colorWithCalibratedWhite:0.13 alpha:0.855] retain];
-
- minKnobHeight = knobTop.size.height + knobVerticalFill.size.height + knobBottom.size.height + 10;
- minKnobWidth = knobLeft.size.width + knobHorizontalFill.size.width + knobRight.size.width + 10;
-}
-
-- (id)initWithFrame:(NSRect)frameRect;
-{
- if (self = [super initWithFrame:frameRect])
- {
- [self setArrowsPosition:NSScrollerArrowsNone];
-
- if ([self bounds].size.width / [self bounds].size.height < 1)
- isVertical = YES;
- else
- isVertical = NO;
- }
-
- return self;
-}
-
-- (id)initWithCoder:(NSCoder *)decoder;
-{
- if (self = [super initWithCoder:decoder])
- {
- [self setArrowsPosition:NSScrollerArrowsNone];
-
- if ([self bounds].size.width / [self bounds].size.height < 1)
- isVertical = YES;
- else
- isVertical = NO;
- }
-
- return self;
-}
-
-+ (CGFloat)scrollerWidth
-{
- return slotVerticalFill.size.width + verticalPaddingLeft + verticalPaddingRight;
-}
-
-+ (CGFloat)scrollerWidthForControlSize:(NSControlSize)controlSize
-{
- return slotVerticalFill.size.width + verticalPaddingLeft + verticalPaddingRight;
-}
-
-- (void)drawRect:(NSRect)aRect;
-{
- [backgroundColor set];
- NSRectFill([self bounds]);
-
- // Only draw if the slot is larger than the knob
- if (isVertical && ([self bounds].size.height - verticalPaddingTop - verticalPaddingBottom + 1) > minKnobHeight)
- {
- [self drawKnobSlot];
-
- if ([self knobProportion] > 0.0)
- [self drawKnob];
- }
- else if (!isVertical && ([self bounds].size.width - horizontalPaddingLeft - horizontalPaddingRight + 1) > minKnobWidth)
- {
- [self drawKnobSlot];
-
- if ([self knobProportion] > 0.0)
- [self drawKnob];
- }
-}
-
-- (void)drawKnobSlot;
-{
- NSRect slotRect = [self rectForPart:NSScrollerKnobSlot];
-
- if (isVertical)
- NSDrawThreePartImage(slotRect, slotTop, slotVerticalFill, slotBottom, YES, NSCompositeSourceOver, 1, NO);
- else
- NSDrawThreePartImage(slotRect, slotLeft, slotHorizontalFill, slotRight, NO, NSCompositeSourceOver, 1, NO);
-}
-
-- (void)drawKnob;
-{
- NSRect knobRect = [self rectForPart:NSScrollerKnob];
-
- if (isVertical)
- NSDrawThreePartImage(knobRect, knobTop, knobVerticalFill, knobBottom, YES, NSCompositeSourceOver, 1, NO);
- else
- NSDrawThreePartImage(knobRect, knobLeft, knobHorizontalFill, knobRight, NO, NSCompositeSourceOver, 1, NO);
-}
-
-- (NSRect)_drawingRectForPart:(NSScrollerPart)aPart;
-{
- // Call super even though we're not using its value (has some side effects we need)
- [super _drawingRectForPart:aPart];
-
- // Return our own rects rather than use the default behavior
- return [self rectForPart:aPart];
-}
-
-- (NSRect)rectForPart:(NSScrollerPart)aPart;
-{
- switch (aPart)
- {
- case NSScrollerNoPart:
- return [self bounds];
- break;
- case NSScrollerKnob:
- {
- NSRect knobRect;
- NSRect slotRect = [self rectForPart:NSScrollerKnobSlot];
-
- if (isVertical)
- {
- float knobHeight = roundf(slotRect.size.height * [self knobProportion]);
-
- if (knobHeight < minKnobHeight)
- knobHeight = minKnobHeight;
-
- float knobY = slotRect.origin.y + roundf((slotRect.size.height - knobHeight) * [self floatValue]);
- knobRect = NSMakeRect(verticalPaddingLeft, knobY, slotRect.size.width, knobHeight);
- }
- else
- {
- float knobWidth = roundf(slotRect.size.width * [self knobProportion]);
-
- if (knobWidth < minKnobWidth)
- knobWidth = minKnobWidth;
-
- float knobX = slotRect.origin.x + roundf((slotRect.size.width - knobWidth) * [self floatValue]);
- knobRect = NSMakeRect(knobX, horizontalPaddingTop, knobWidth, slotRect.size.height);
- }
-
- return knobRect;
- }
- break;
- case NSScrollerKnobSlot:
- {
- NSRect slotRect;
-
- if (isVertical)
- slotRect = NSMakeRect(verticalPaddingLeft, verticalPaddingTop, [self bounds].size.width - verticalPaddingLeft - verticalPaddingRight, [self bounds].size.height - verticalPaddingTop - verticalPaddingBottom);
- else
- slotRect = NSMakeRect(horizontalPaddingLeft, horizontalPaddingTop, [self bounds].size.width - horizontalPaddingLeft - horizontalPaddingRight, [self bounds].size.height - horizontalPaddingTop - horizontalPaddingBottom);
-
- return slotRect;
- }
- break;
- case NSScrollerIncrementLine:
- return NSZeroRect;
- break;
- case NSScrollerDecrementLine:
- return NSZeroRect;
- break;
- case NSScrollerIncrementPage:
- {
- NSRect incrementPageRect;
- NSRect knobRect = [self rectForPart:NSScrollerKnob];
- NSRect slotRect = [self rectForPart:NSScrollerKnobSlot];
- NSRect decPageRect = [self rectForPart:NSScrollerDecrementPage];
-
- if (isVertical)
- {
- float knobY = knobRect.origin.y + knobRect.size.height;
- incrementPageRect = NSMakeRect(verticalPaddingLeft, knobY, knobRect.size.width, slotRect.size.height - knobRect.size.height - decPageRect.size.height);
- }
- else
- {
- float knobX = knobRect.origin.x + knobRect.size.width;
- incrementPageRect = NSMakeRect(knobX, horizontalPaddingTop, (slotRect.size.width + horizontalPaddingLeft) - knobX, knobRect.size.height);
- }
-
- return incrementPageRect;
- }
- break;
- case NSScrollerDecrementPage:
- {
- NSRect decrementPageRect;
- NSRect knobRect = [self rectForPart:NSScrollerKnob];
-
- if (isVertical)
- decrementPageRect = NSMakeRect(verticalPaddingLeft, verticalPaddingTop, knobRect.size.width, knobRect.origin.y - verticalPaddingTop);
- else
- decrementPageRect = NSMakeRect(horizontalPaddingLeft, horizontalPaddingTop, knobRect.origin.x - horizontalPaddingLeft, knobRect.size.height);
-
- return decrementPageRect;
- }
- break;
- default:
- break;
- }
-
- return NSZeroRect;
-}
-
-@end