/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #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. */ [scriptable, uuid(3507fc93-313e-4a4c-8ca8-4d0ea0f97315)] interface nsIScrollable : nsISupports { /** * Constants declaring the two scroll orientations a scrollbar can be in. * ScrollOrientation_X - Horizontal scrolling. When passing this * in to a method you are requesting or setting data for the * horizontal scrollbar. * ScrollOrientation_Y - Vertical scrolling. When passing this * in to a method you are requesting or setting data for the * vertical scrollbar. */ const long ScrollOrientation_X = 1; const long ScrollOrientation_Y = 2; /** * Constants declaring the states of the scrollbars. * 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; /** * Get or set the default scrollbar state for all documents in * this shell. */ long getDefaultScrollbarPreferences(in long scrollOrientation); void setDefaultScrollbarPreferences(in long scrollOrientation, in long scrollbarPref); /** * Get information about whether the vertical and horizontal scrollbars are * currently visible. If you are only interested in one of the visibility * settings pass nullptr in for the one you aren't interested in. */ void getScrollbarVisibility(out boolean verticalVisible, out boolean horizontalVisible); };