• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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