| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2012 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
| 5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
| 6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
| 7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
| 8 * | 8 * |
| 9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 const int defaultWidthNumChars = 34; | 40 const int defaultWidthNumChars = 34; |
| 41 | 41 |
| 42 LayoutFileUploadControl::LayoutFileUploadControl(HTMLInputElement* input) | 42 LayoutFileUploadControl::LayoutFileUploadControl(HTMLInputElement* input) |
| 43 : LayoutBlockFlow(input), | 43 : LayoutBlockFlow(input), |
| 44 m_canReceiveDroppedFiles(input->canReceiveDroppedFiles()) {} | 44 m_canReceiveDroppedFiles(input->canReceiveDroppedFiles()) {} |
| 45 | 45 |
| 46 LayoutFileUploadControl::~LayoutFileUploadControl() {} | 46 LayoutFileUploadControl::~LayoutFileUploadControl() {} |
| 47 | 47 |
| 48 void LayoutFileUploadControl::updateFromElement() { | 48 void LayoutFileUploadControl::updateFromElement() { |
| 49 HTMLInputElement* input = toHTMLInputElement(node()); | 49 HTMLInputElement* input = toHTMLInputElement(node()); |
| 50 ASSERT(input->type() == InputTypeNames::file); | 50 DCHECK_EQ(input->type(), InputTypeNames::file); |
| 51 | 51 |
| 52 if (HTMLInputElement* button = uploadButton()) { | 52 if (HTMLInputElement* button = uploadButton()) { |
| 53 bool newCanReceiveDroppedFilesState = input->canReceiveDroppedFiles(); | 53 bool newCanReceiveDroppedFilesState = input->canReceiveDroppedFiles(); |
| 54 if (m_canReceiveDroppedFiles != newCanReceiveDroppedFilesState) { | 54 if (m_canReceiveDroppedFiles != newCanReceiveDroppedFilesState) { |
| 55 m_canReceiveDroppedFiles = newCanReceiveDroppedFilesState; | 55 m_canReceiveDroppedFiles = newCanReceiveDroppedFilesState; |
| 56 button->setActive(newCanReceiveDroppedFilesState); | 56 button->setActive(newCanReceiveDroppedFilesState); |
| 57 } | 57 } |
| 58 } | 58 } |
| 59 | 59 |
| 60 // This only supports clearing out the files, but that's OK because for | 60 // This only supports clearing out the files, but that's OK because for |
| 61 // security reasons that's the only change the DOM is allowed to make. | 61 // security reasons that's the only change the DOM is allowed to make. |
| 62 FileList* files = input->files(); | 62 FileList* files = input->files(); |
| 63 ASSERT(files); | 63 DCHECK(files); |
| 64 if (files && files->isEmpty()) | 64 if (files && files->isEmpty()) |
| 65 setShouldDoFullPaintInvalidation(); | 65 setShouldDoFullPaintInvalidation(); |
| 66 } | 66 } |
| 67 | 67 |
| 68 int LayoutFileUploadControl::maxFilenameWidth() const { | 68 int LayoutFileUploadControl::maxFilenameWidth() const { |
| 69 int uploadButtonWidth = (uploadButton() && uploadButton()->layoutBox()) | 69 int uploadButtonWidth = (uploadButton() && uploadButton()->layoutBox()) |
| 70 ? uploadButton()->layoutBox()->pixelSnappedWidth() | 70 ? uploadButton()->layoutBox()->pixelSnappedWidth() |
| 71 : 0; | 71 : 0; |
| 72 return std::max(0, contentBoxRect().pixelSnappedWidth() - uploadButtonWidth - | 72 return std::max(0, contentBoxRect().pixelSnappedWidth() - uploadButtonWidth - |
| 73 afterButtonSpacing); | 73 afterButtonSpacing); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 102 buttonLayoutObject->maxPreferredLogicalWidth() + afterButtonSpacing; | 102 buttonLayoutObject->maxPreferredLogicalWidth() + afterButtonSpacing; |
| 103 } | 103 } |
| 104 maxLogicalWidth = | 104 maxLogicalWidth = |
| 105 LayoutUnit(ceilf(std::max(minDefaultLabelWidth, defaultLabelWidth))); | 105 LayoutUnit(ceilf(std::max(minDefaultLabelWidth, defaultLabelWidth))); |
| 106 | 106 |
| 107 if (!style()->width().isPercentOrCalc()) | 107 if (!style()->width().isPercentOrCalc()) |
| 108 minLogicalWidth = maxLogicalWidth; | 108 minLogicalWidth = maxLogicalWidth; |
| 109 } | 109 } |
| 110 | 110 |
| 111 void LayoutFileUploadControl::computePreferredLogicalWidths() { | 111 void LayoutFileUploadControl::computePreferredLogicalWidths() { |
| 112 ASSERT(preferredLogicalWidthsDirty()); | 112 DCHECK(preferredLogicalWidthsDirty()); |
| 113 | 113 |
| 114 m_minPreferredLogicalWidth = LayoutUnit(); | 114 m_minPreferredLogicalWidth = LayoutUnit(); |
| 115 m_maxPreferredLogicalWidth = LayoutUnit(); | 115 m_maxPreferredLogicalWidth = LayoutUnit(); |
| 116 const ComputedStyle& styleToUse = styleRef(); | 116 const ComputedStyle& styleToUse = styleRef(); |
| 117 | 117 |
| 118 if (styleToUse.width().isFixed() && styleToUse.width().value() > 0) | 118 if (styleToUse.width().isFixed() && styleToUse.width().value() > 0) |
| 119 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = | 119 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = |
| 120 adjustContentBoxLogicalWidthForBoxSizing( | 120 adjustContentBoxLogicalWidthForBoxSizing( |
| 121 LayoutUnit(styleToUse.width().value())); | 121 LayoutUnit(styleToUse.width().value())); |
| 122 else | 122 else |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 | 167 |
| 168 String LayoutFileUploadControl::buttonValue() { | 168 String LayoutFileUploadControl::buttonValue() { |
| 169 if (HTMLInputElement* button = uploadButton()) | 169 if (HTMLInputElement* button = uploadButton()) |
| 170 return button->value(); | 170 return button->value(); |
| 171 | 171 |
| 172 return String(); | 172 return String(); |
| 173 } | 173 } |
| 174 | 174 |
| 175 String LayoutFileUploadControl::fileTextValue() const { | 175 String LayoutFileUploadControl::fileTextValue() const { |
| 176 HTMLInputElement* input = toHTMLInputElement(node()); | 176 HTMLInputElement* input = toHTMLInputElement(node()); |
| 177 ASSERT(input->files()); | 177 DCHECK(input->files()); |
| 178 return LayoutTheme::theme().fileListNameForWidth( | 178 return LayoutTheme::theme().fileListNameForWidth( |
| 179 input->locale(), input->files(), style()->font(), maxFilenameWidth()); | 179 input->locale(), input->files(), style()->font(), maxFilenameWidth()); |
| 180 } | 180 } |
| 181 | 181 |
| 182 } // namespace blink | 182 } // namespace blink |
| OLD | NEW |