1 /* 2 * Copyright (C) 2011 Apple Inc. All Rights Reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 #ifndef WebCore_NSScrollerImpDetails_h 27 #define WebCore_NSScrollerImpDetails_h 28 29 #import <AvailabilityMacros.h> 30 31 // This file forward-declares APIs for NSScroller that are only present on 32 // build SDKs newer than are currently supported. 33 34 #if !defined(MAC_OS_X_VERSION_10_7) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 35 enum { 36 NSScrollerStyleLegacy = 0, 37 NSScrollerStyleOverlay = 1 38 }; 39 typedef NSInteger NSScrollerStyle; 40 41 enum { 42 NSScrollerKnobStyleDefault = 0, 43 NSScrollerKnobStyleDark = 1, 44 NSScrollerKnobStyleLight = 2 45 }; 46 typedef NSInteger NSScrollerKnobStyle; 47 @interface NSScroller(NSObject) 48 + (NSScrollerStyle)preferredScrollerStyle; 49 @end 50 #endif // !10.7 51 52 @interface NSObject (ScrollbarPainter) 53 + (id)scrollerImpWithStyle:(NSScrollerStyle)newScrollerStyle controlSize:(NSControlSize)newControlSize horizontal:(BOOL)horizontal replacingScrollerImp:(id)previous; 54 - (CGFloat)knobAlpha; 55 - (void)setKnobAlpha:(CGFloat)knobAlpha; 56 - (CGFloat)trackAlpha; 57 - (void)setTrackAlpha:(CGFloat)trackAlpha; 58 - (void)setEnabled:(BOOL)enabled; 59 - (void)setBoundsSize:(NSSize)boundsSize; 60 - (void)setDoubleValue:(double)doubleValue; 61 - (void)setKnobProportion:(CGFloat)proportion; 62 - (void)setKnobStyle:(NSScrollerKnobStyle)knobStyle; 63 - (void)setExpanded:(BOOL)expanded; 64 - (BOOL)isExpanded; 65 - (void)setDelegate:(id)delegate; 66 - (void)setUiStateTransitionProgress:(CGFloat)uiStateTransitionProgress; 67 - (void)setExpansionTransitionProgress:(CGFloat)expansionTransitionProgress; 68 - (BOOL)isHorizontal; 69 - (CGFloat)trackWidth; 70 - (CGFloat)trackBoxWidth; 71 - (CGFloat)knobMinLength; 72 - (CGFloat)trackOverlapEndInset; 73 - (CGFloat)knobOverlapEndInset; 74 - (CGFloat)trackEndInset; 75 - (CGFloat)knobEndInset; 76 - (CGFloat)uiStateTransitionProgress; 77 - (CGFloat)expansionTransitionProgress; 78 - (NSRect)rectForPart:(NSScrollerPart)partCode; 79 - (void)drawKnobSlotInRect:(NSRect)slotRect highlight:(BOOL)flag alpha:(CGFloat)alpha; 80 - (void)drawKnob; 81 - (void)mouseEnteredScroller; 82 - (void)mouseExitedScroller; 83 @end 84 85 @interface NSObject (ScrollbarPainterController) 86 - (void)setDelegate:(id)delegate; 87 - (void)hideOverlayScrollers; 88 - (void)flashScrollers; 89 - (id)horizontalScrollerImp; 90 - (void)setHorizontalScrollerImp:(id)horizontal; 91 - (id)verticalScrollerImp; 92 - (void)setVerticalScrollerImp:(id)vertical; 93 - (NSScrollerStyle)scrollerStyle; 94 - (void)setScrollerStyle:(NSScrollerStyle)scrollerStyle; 95 - (void)contentAreaScrolled; 96 - (void)contentAreaScrolledInDirection:(NSPoint)direction; 97 - (void)contentAreaWillDraw; 98 - (void)mouseEnteredContentArea; 99 - (void)mouseExitedContentArea; 100 - (void)mouseMovedInContentArea; 101 - (void)startLiveResize; 102 - (void)contentAreaDidResize; 103 - (void)endLiveResize; 104 - (void)windowOrderedIn; 105 - (void)windowOrderedOut; 106 - (void)beginScrollGesture; 107 - (void)endScrollGesture; 108 @end 109 110 #endif // WebCore_NSScrollerImpDetails_h 111