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

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

Issue 23728003: Return Frame&, not Frame* from RenderView::frame() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fixed PopupMenuTest build Created 7 years, 3 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/core/rendering/RenderWidget.cpp ('k') | Source/web/PopupMenuChromium.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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 widgetRectInScreen = layoutAndCalculateWidgetRectInternal(widgetRectInScreen , targetControlHeight, windowRect, screen, isRTL, rtlOffset, verticalOffset, tra nsformOffset, m_listBox.get(), needToResizeView); 201 widgetRectInScreen = layoutAndCalculateWidgetRectInternal(widgetRectInScreen , targetControlHeight, windowRect, screen, isRTL, rtlOffset, verticalOffset, tra nsformOffset, m_listBox.get(), needToResizeView);
202 if (needToResizeView) 202 if (needToResizeView)
203 fitToListBox(); 203 fitToListBox();
204 204
205 return widgetRectInScreen; 205 return widgetRectInScreen;
206 } 206 }
207 207
208 void PopupContainer::showPopup(FrameView* view) 208 void PopupContainer::showPopup(FrameView* view)
209 { 209 {
210 m_frameView = view; 210 m_frameView = view;
211 listBox()->m_focusedElement = m_frameView->frame()->document()->focusedEleme nt(); 211 listBox()->m_focusedElement = m_frameView->frame().document()->focusedElemen t();
212 212
213 IntSize transformOffset(m_controlPosition.p4().x() - m_controlPosition.p1(). x(), m_controlPosition.p4().y() - m_controlPosition.p1().y() - m_controlSize.hei ght()); 213 IntSize transformOffset(m_controlPosition.p4().x() - m_controlPosition.p1(). x(), m_controlPosition.p4().y() - m_controlPosition.p1().y() - m_controlSize.hei ght());
214 chromeClient().popupOpened(this, layoutAndCalculateWidgetRect(m_controlSize. height(), transformOffset, roundedIntPoint(m_controlPosition.p4())), false); 214 chromeClient().popupOpened(this, layoutAndCalculateWidgetRect(m_controlSize. height(), transformOffset, roundedIntPoint(m_controlPosition.p4())), false);
215 m_popupOpen = true; 215 m_popupOpen = true;
216 216
217 if (!m_listBox->parent()) 217 if (!m_listBox->parent())
218 addChild(m_listBox.get()); 218 addChild(m_listBox.get());
219 219
220 // Enable scrollbars after the listbox is inserted into the hierarchy, 220 // Enable scrollbars after the listbox is inserted into the hierarchy,
221 // so it has a proper WidgetClient. 221 // so it has a proper WidgetClient.
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 gc->drawRect(IntRect(tx + width() - borderSize, ty, borderSize, height())); 358 gc->drawRect(IntRect(tx + width() - borderSize, ty, borderSize, height()));
359 } 359 }
360 360
361 bool PopupContainer::isInterestedInEventForKey(int keyCode) 361 bool PopupContainer::isInterestedInEventForKey(int keyCode)
362 { 362 {
363 return m_listBox->isInterestedInEventForKey(keyCode); 363 return m_listBox->isInterestedInEventForKey(keyCode);
364 } 364 }
365 365
366 ChromeClient& PopupContainer::chromeClient() 366 ChromeClient& PopupContainer::chromeClient()
367 { 367 {
368 return m_frameView->frame()->page()->chrome().client(); 368 return m_frameView->frame().page()->chrome().client();
369 } 369 }
370 370
371 void PopupContainer::showInRect(const FloatQuad& controlPosition, const IntSize& controlSize, FrameView* v, int index) 371 void PopupContainer::showInRect(const FloatQuad& controlPosition, const IntSize& controlSize, FrameView* v, int index)
372 { 372 {
373 // The controlSize is the size of the select box. It's usually larger than 373 // The controlSize is the size of the select box. It's usually larger than
374 // we need. Subtract border size so that usually the container will be 374 // we need. Subtract border size so that usually the container will be
375 // displayed exactly the same width as the select box. 375 // displayed exactly the same width as the select box.
376 listBox()->setBaseWidth(max(controlSize.width() - borderSize * 2, 0)); 376 listBox()->setBaseWidth(max(controlSize.width() - borderSize * 2, 0));
377 377
378 listBox()->updateFromElement(); 378 listBox()->updateFromElement();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 452
453 String PopupContainer::getSelectedItemToolTip() 453 String PopupContainer::getSelectedItemToolTip()
454 { 454 {
455 // We cannot use m_popupClient->selectedIndex() to choose tooltip message, 455 // We cannot use m_popupClient->selectedIndex() to choose tooltip message,
456 // because the selectedIndex() might return final selected index, not 456 // because the selectedIndex() might return final selected index, not
457 // hovering selection. 457 // hovering selection.
458 return listBox()->m_popupClient->itemToolTip(listBox()->m_selectedIndex); 458 return listBox()->m_popupClient->itemToolTip(listBox()->m_selectedIndex);
459 } 459 }
460 460
461 } // namespace WebCore 461 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderWidget.cpp ('k') | Source/web/PopupMenuChromium.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698