Home | History | Annotate | Download | only in mac
      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