18f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian/* 28f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Copyright (C) 2003, 2009 Apple Inc. All rights reserved. 38f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 48f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Portions are Copyright (C) 1998 Netscape Communications Corporation. 58f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 68f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Other contributors: 78f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Robert O'Callahan <roc+@cs.cmu.edu> 88f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * David Baron <dbaron@fas.harvard.edu> 98f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Christian Biesinger <cbiesinger@web.de> 108f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Randall Jesup <rjesup@wgate.com> 118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Roland Mainz <roland.mainz@informatik.med.uni-giessen.de> 128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Josh Soref <timeless@mac.com> 138f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Boris Zbarsky <bzbarsky@mit.edu> 148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * This library is free software; you can redistribute it and/or 168f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * modify it under the terms of the GNU Lesser General Public 178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * License as published by the Free Software Foundation; either 188f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * version 2.1 of the License, or (at your option) any later version. 198f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 208f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * This library is distributed in the hope that it will be useful, 218f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * but WITHOUT ANY WARRANTY; without even the implied warranty of 228f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 238f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Lesser General Public License for more details. 248f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 258f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * You should have received a copy of the GNU Lesser General Public 268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * License along with this library; if not, write to the Free Software 278f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 288f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 298f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * Alternatively, the contents of this file may be used under the terms 308f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * of either the Mozilla Public License Version 1.1, found at 318f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * http://www.mozilla.org/MPL/ (the "MPL") or the GNU General Public 328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * License Version 2.0, found at http://www.fsf.org/copyleft/gpl.html 338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * (the "GPL"), in which case the provisions of the MPL or the GPL are 348f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * applicable instead of those above. If you wish to allow use of your 358f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * version of this file only under the terms of one of those two 368f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * licenses (the MPL or the GPL) and not to allow others to use your 378f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * version of this file under the LGPL, indicate your decision by 388f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * deletingthe provisions above and replace them with the notice and 398f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * other provisions required by the MPL or the GPL, as the case may be. 408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * If you do not delete the provisions above, a recipient may use your 418f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * version of this file under any of the LGPL, the MPL or the GPL. 428f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian */ 438f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 448f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#ifndef ScrollBehavior_h 458f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#define ScrollBehavior_h 468f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 478f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qiannamespace WebCore { 488f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 498f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianenum ScrollBehavior { 508f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian noScroll, 518f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian alignCenter, 528f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian alignTop, 538f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian alignBottom, 548f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian alignLeft, 558f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian alignRight, 568f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian alignToClosestEdge 578f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian}; 588f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 598f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianstruct ScrollAlignment { 608f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static ScrollBehavior getVisibleBehavior(const ScrollAlignment& s) { return s.m_rectVisible; } 618f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static ScrollBehavior getPartialBehavior(const ScrollAlignment& s) { return s.m_rectPartial; } 628f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static ScrollBehavior getHiddenBehavior(const ScrollAlignment& s) { return s.m_rectHidden; } 638f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 648f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static const ScrollAlignment alignCenterIfNeeded; 658f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static const ScrollAlignment alignToEdgeIfNeeded; 668f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static const ScrollAlignment alignCenterAlways; 678f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static const ScrollAlignment alignTopAlways; 688f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static const ScrollAlignment alignBottomAlways; 698f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 708f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian ScrollBehavior m_rectVisible; 718f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian ScrollBehavior m_rectHidden; 728f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian ScrollBehavior m_rectPartial; 738f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian}; 748f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 758f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 768f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian}; // namespace WebCore 778f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 788f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif // ScrollBehavior_h 79