Home | History | Annotate | Download | only in widget
      1 /*
      2  * Copyright (C) 2017 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.internal.widget;
     18 
     19 /**
     20  * An interface that can be implemented by Views to provide scroll related APIs.
     21  */
     22 public interface ScrollingView {
     23     /**
     24      * <p>Compute the horizontal range that the horizontal scrollbar
     25      * represents.</p>
     26      *
     27      * <p>The range is expressed in arbitrary units that must be the same as the
     28      * units used by {@link #computeHorizontalScrollExtent()} and
     29      * {@link #computeHorizontalScrollOffset()}.</p>
     30      *
     31      * <p>The default range is the drawing width of this view.</p>
     32      *
     33      * @return the total horizontal range represented by the horizontal
     34      *         scrollbar
     35      *
     36      * @see #computeHorizontalScrollExtent()
     37      * @see #computeHorizontalScrollOffset()
     38      * @see android.widget.ScrollBarDrawable
     39      */
     40     int computeHorizontalScrollRange();
     41 
     42     /**
     43      * <p>Compute the horizontal offset of the horizontal scrollbar's thumb
     44      * within the horizontal range. This value is used to compute the position
     45      * of the thumb within the scrollbar's track.</p>
     46      *
     47      * <p>The range is expressed in arbitrary units that must be the same as the
     48      * units used by {@link #computeHorizontalScrollRange()} and
     49      * {@link #computeHorizontalScrollExtent()}.</p>
     50      *
     51      * <p>The default offset is the scroll offset of this view.</p>
     52      *
     53      * @return the horizontal offset of the scrollbar's thumb
     54      *
     55      * @see #computeHorizontalScrollRange()
     56      * @see #computeHorizontalScrollExtent()
     57      * @see android.widget.ScrollBarDrawable
     58      */
     59     int computeHorizontalScrollOffset();
     60 
     61     /**
     62      * <p>Compute the horizontal extent of the horizontal scrollbar's thumb
     63      * within the horizontal range. This value is used to compute the length
     64      * of the thumb within the scrollbar's track.</p>
     65      *
     66      * <p>The range is expressed in arbitrary units that must be the same as the
     67      * units used by {@link #computeHorizontalScrollRange()} and
     68      * {@link #computeHorizontalScrollOffset()}.</p>
     69      *
     70      * <p>The default extent is the drawing width of this view.</p>
     71      *
     72      * @return the horizontal extent of the scrollbar's thumb
     73      *
     74      * @see #computeHorizontalScrollRange()
     75      * @see #computeHorizontalScrollOffset()
     76      * @see android.widget.ScrollBarDrawable
     77      */
     78     int computeHorizontalScrollExtent();
     79 
     80     /**
     81      * <p>Compute the vertical range that the vertical scrollbar represents.</p>
     82      *
     83      * <p>The range is expressed in arbitrary units that must be the same as the
     84      * units used by {@link #computeVerticalScrollExtent()} and
     85      * {@link #computeVerticalScrollOffset()}.</p>
     86      *
     87      * @return the total vertical range represented by the vertical scrollbar
     88      *
     89      * <p>The default range is the drawing height of this view.</p>
     90      *
     91      * @see #computeVerticalScrollExtent()
     92      * @see #computeVerticalScrollOffset()
     93      * @see android.widget.ScrollBarDrawable
     94      */
     95     int computeVerticalScrollRange();
     96 
     97     /**
     98      * <p>Compute the vertical offset of the vertical scrollbar's thumb
     99      * within the horizontal range. This value is used to compute the position
    100      * of the thumb within the scrollbar's track.</p>
    101      *
    102      * <p>The range is expressed in arbitrary units that must be the same as the
    103      * units used by {@link #computeVerticalScrollRange()} and
    104      * {@link #computeVerticalScrollExtent()}.</p>
    105      *
    106      * <p>The default offset is the scroll offset of this view.</p>
    107      *
    108      * @return the vertical offset of the scrollbar's thumb
    109      *
    110      * @see #computeVerticalScrollRange()
    111      * @see #computeVerticalScrollExtent()
    112      * @see android.widget.ScrollBarDrawable
    113      */
    114     int computeVerticalScrollOffset();
    115 
    116     /**
    117      * <p>Compute the vertical extent of the vertical scrollbar's thumb
    118      * within the vertical range. This value is used to compute the length
    119      * of the thumb within the scrollbar's track.</p>
    120      *
    121      * <p>The range is expressed in arbitrary units that must be the same as the
    122      * units used by {@link #computeVerticalScrollRange()} and
    123      * {@link #computeVerticalScrollOffset()}.</p>
    124      *
    125      * <p>The default extent is the drawing height of this view.</p>
    126      *
    127      * @return the vertical extent of the scrollbar's thumb
    128      *
    129      * @see #computeVerticalScrollRange()
    130      * @see #computeVerticalScrollOffset()
    131      * @see android.widget.ScrollBarDrawable
    132      */
    133     int computeVerticalScrollExtent();
    134 }
    135