Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: Source/web/PopupListBox.cpp

Issue 648913002: Clean up vestiges of ScrollView. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/platform/scroll/ScrollbarThemeClient.h ('k') | Source/web/ViewportAnchor.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011, Google Inc. All rights reserved. 2 * Copyright (c) 2011, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 abandon(); 277 abandon();
278 // Return false so the TAB key event is propagated to the page. 278 // Return false so the TAB key event is propagated to the page.
279 return false; 279 return false;
280 } 280 }
281 281
282 return true; 282 return true;
283 } 283 }
284 284
285 HostWindow* PopupListBox::hostWindow() const 285 HostWindow* PopupListBox::hostWindow() const
286 { 286 {
287 // Our parent is the root ScrollView, so it is the one that has a 287 // Our parent is the root FrameView, so it is the one that has a
288 // HostWindow. FrameView::hostWindow() works similarly. 288 // HostWindow. FrameView::hostWindow() works similarly.
289 return parent() ? parent()->hostWindow() : 0; 289 return parent() ? parent()->hostWindow() : 0;
290 } 290 }
291 291
292 bool PopupListBox::shouldPlaceVerticalScrollbarOnLeft() const 292 bool PopupListBox::shouldPlaceVerticalScrollbarOnLeft() const
293 { 293 {
294 return m_popupClient->menuStyle().textDirection() == RTL; 294 return m_popupClient->menuStyle().textDirection() == RTL;
295 } 295 }
296 296
297 // From HTMLSelectElement.cpp 297 // From HTMLSelectElement.cpp
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 IntRect PopupListBox::windowClipRect() const 859 IntRect PopupListBox::windowClipRect() const
860 { 860 {
861 IntRect clipRect = visibleContentRect(); 861 IntRect clipRect = visibleContentRect();
862 if (shouldPlaceVerticalScrollbarOnLeft() && verticalScrollbar() && !vertical Scrollbar()->isOverlayScrollbar()) 862 if (shouldPlaceVerticalScrollbarOnLeft() && verticalScrollbar() && !vertical Scrollbar()->isOverlayScrollbar())
863 clipRect.move(verticalScrollbar()->width(), 0); 863 clipRect.move(verticalScrollbar()->width(), 0);
864 return contentsToWindow(clipRect); 864 return contentsToWindow(clipRect);
865 } 865 }
866 866
867 void PopupListBox::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect) 867 void PopupListBox::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
868 { 868 {
869 // Add in our offset within the ScrollView. 869 // Add in our offset within the FrameView.
870 IntRect dirtyRect = rect; 870 IntRect dirtyRect = rect;
871 dirtyRect.move(scrollbar->x(), scrollbar->y()); 871 dirtyRect.move(scrollbar->x(), scrollbar->y());
872 invalidateRect(dirtyRect); 872 invalidateRect(dirtyRect);
873 } 873 }
874 874
875 bool PopupListBox::isActive() const 875 bool PopupListBox::isActive() const
876 { 876 {
877 // FIXME 877 // FIXME
878 return true; 878 return true;
879 } 879 }
880 880
881 bool PopupListBox::scrollbarsCanBeActive() const 881 bool PopupListBox::scrollbarsCanBeActive() const
882 { 882 {
883 return isActive(); 883 return isActive();
884 } 884 }
885 885
886 IntRect PopupListBox::scrollableAreaBoundingBox() const 886 IntRect PopupListBox::scrollableAreaBoundingBox() const
887 { 887 {
888 return windowClipRect(); 888 return windowClipRect();
889 } 889 }
890 890
891 // FIXME: The following methods are based on code in ScrollView, with 891 // FIXME: The following methods are based on code in FrameView, with
892 // simplifications for the constraints of PopupListBox (e.g. only vertical 892 // simplifications for the constraints of PopupListBox (e.g. only vertical
893 // scrollbar, not horizontal). This functionality should be moved into 893 // scrollbar, not horizontal). This functionality should be moved into
894 // ScrollableArea after http://crbug.com/417782 is fixed. 894 // ScrollableArea after http://crbug.com/417782 is fixed.
895 895
896 void PopupListBox::setHasVerticalScrollbar(bool hasBar) 896 void PopupListBox::setHasVerticalScrollbar(bool hasBar)
897 { 897 {
898 if (hasBar && !m_verticalScrollbar) { 898 if (hasBar && !m_verticalScrollbar) {
899 m_verticalScrollbar = Scrollbar::create(this, VerticalScrollbar, Regular Scrollbar); 899 m_verticalScrollbar = Scrollbar::create(this, VerticalScrollbar, Regular Scrollbar);
900 m_verticalScrollbar->setParent(this); 900 m_verticalScrollbar->setParent(this);
901 didAddScrollbar(m_verticalScrollbar.get(), VerticalScrollbar); 901 didAddScrollbar(m_verticalScrollbar.get(), VerticalScrollbar);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
935 return; 935 return;
936 936
937 Widget::setFrameRect(newRect); 937 Widget::setFrameRect(newRect);
938 updateScrollbars(scrollPosition()); 938 updateScrollbars(scrollPosition());
939 // NOTE: We do not need to call m_verticalScrollbar->frameRectsChanged as 939 // NOTE: We do not need to call m_verticalScrollbar->frameRectsChanged as
940 // Scrollbar does not implement it. 940 // Scrollbar does not implement it.
941 } 941 }
942 942
943 IntRect PopupListBox::visibleContentRect(IncludeScrollbarsInRect scrollbarInclus ion) const 943 IntRect PopupListBox::visibleContentRect(IncludeScrollbarsInRect scrollbarInclus ion) const
944 { 944 {
945 // NOTE: Unlike ScrollView we do not need to incorporate any scaling factor, 945 // NOTE: Unlike FrameView we do not need to incorporate any scaling factor,
946 // and there is only one scrollbar to exclude. 946 // and there is only one scrollbar to exclude.
947 IntSize size = frameRect().size(); 947 IntSize size = frameRect().size();
948 Scrollbar* verticalBar = verticalScrollbar(); 948 Scrollbar* verticalBar = verticalScrollbar();
949 if (scrollbarInclusion == ExcludeScrollbars && verticalBar && !verticalBar-> isOverlayScrollbar()) { 949 if (scrollbarInclusion == ExcludeScrollbars && verticalBar && !verticalBar-> isOverlayScrollbar()) {
950 size.setWidth(std::max(0, size.width() - verticalBar->width())); 950 size.setWidth(std::max(0, size.width() - verticalBar->width()));
951 } 951 }
952 return IntRect(m_scrollOffset, size); 952 return IntRect(m_scrollOffset, size);
953 } 953 }
954 954
955 void PopupListBox::updateScrollbars(const IntPoint& desiredOffset) 955 void PopupListBox::updateScrollbars(const IntPoint& desiredOffset)
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1041 maximumOffset.clampNegativeToZero(); 1041 maximumOffset.clampNegativeToZero();
1042 return maximumOffset; 1042 return maximumOffset;
1043 } 1043 }
1044 1044
1045 IntPoint PopupListBox::minimumScrollPosition() const 1045 IntPoint PopupListBox::minimumScrollPosition() const
1046 { 1046 {
1047 return IntPoint(-scrollOrigin().x(), -scrollOrigin().y()); 1047 return IntPoint(-scrollOrigin().x(), -scrollOrigin().y());
1048 } 1048 }
1049 1049
1050 } // namespace blink 1050 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/scroll/ScrollbarThemeClient.h ('k') | Source/web/ViewportAnchor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698