gecko-dev/docshell/base/nsIScrollable.idl

108 lines
4.0 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Mozilla browser.
*
* The Initial Developer of the Original Code is Netscape
* Communications, Inc. Portions created by Netscape are
* Copyright (C) 1999, Mozilla. All Rights Reserved.
*
* Contributor(s):
* Travis Bogard <travis@netscape.com>
*/
#include "nsISupports.idl"
/**
* The nsIScrollable is an interface that can be implemented by a control that
* supports scrolling. This is a generic interface without concern for the
* type of content that may be inside. It simply deals blindly with scroll
* position as a composite of the lowest possible scroll position, the highest
* possible position and the current position lying somewhere between the
* min and the max.
*/
[scriptable, uuid(61792520-82C2-11d3-AF76-00A024FFC08C)]
interface nsIScrollable : nsISupports
{
/*
Constants declaring the two scroll orientations a scroll bar can be in.
ScrollOrientation_X - Vertical scrolling. When passing this in to a scroll position
method you are requesting or setting the positions for the vertical
scroll bar.
ScrollOrientation_Y - Horizontal scrolling. When passing this in to a scroll
position you are requesting or setting the positions for the horizontal
scroll bar.
*/
const long ScrollOrientation_Y = 1;
const long ScrollOrientation_X = 2;
/*
Retrieves or Sets the current thumb position to the curPos passed in for the
scrolling orientation passed in. curPos should be between minPos and maxPos.
@return NS_OK - Setting or Getting completed successfully.
NS_ERROR_INVALID_ARG - returned when curPos is not within the
minPos and maxPos.
*/
void getCurScrollPos(in long scrollOrientation, out long curPos);
void setCurScrollPos(in long scrollOrientation, in long curPos);
/*
This function atomizes the ability to scroll in two dimensions at the same
time.
*/
void setCurScrollPosEx(in long curHorizontalPos, in long curVerticalPos);
/*
Retrieves or Sets the valid ranges for the thumb. When maxPos is set to
something less than the current thumb position, curPos is set = to maxPos.
@return NS_OK - Setting or Getting completed successfully.
NS_ERROR_INVALID_ARG - returned when curPos is not within the
minPos and maxPos.
*/
void getScrollRange(in long scrollOrientation, out long minPos, out long maxPos);
void setScrollRange(in long scrollOrientation, in long minPos, in long maxPos);
/*
This function atomizes the ability to set the ranges in two dimensions at
the same time.
*/
void setScrollRangeEx(in long minHorizontalPos, in long maxHorizontalPos,
in long minVerticalPos, in long maxVerticalPos);
/*
Constants declaring the states of the scroll bars.
ScrollPref_Auto - bars visible only when needed.
ScrollPref_Never - bars never visible, even when scrolling still possible.
ScrollPref_Always - bars always visible, even when scrolling is not possible
*/
const long Scrollbar_Auto = 1;
const long Scrollbar_Never = 2;
const long Scrollbar_Always = 3;
/*
Retrieves of Set the preferences for the scroll bar.
*/
void getScrollbarPreferences(in long scrollOrientation, out long scrollbarPref);
void setScrollbarPreferences(in long scrollOrientation, in long scrollbarPref);
/*
Get information about whether the vertical and horizontal scrollbars are
currently visible. nsnull is a valid argument. If you are only interested
in one of the visibility settings pass nsnull in for the one you aren't
interested in.
*/
void getScrollbarVisibility(out boolean verticalVisible,
out boolean horizontalVisible);
};