RenderFileButton.cpp [plain text]
#include "config.h"
#include "RenderFileButton.h"
#include "FrameView.h"
#include "HTMLFormElement.h"
#include "HTMLInputElement.h"
#include "FileButton.h"
namespace WebCore {
RenderFileButton::RenderFileButton(HTMLInputElement* element)
: RenderFormElement(element)
{
setWidget(new FileButton(m_view->frame()));
}
void RenderFileButton::calcMinMaxWidth()
{
ASSERT(!minMaxKnown());
int size = static_cast<HTMLInputElement*>(node())->size();
IntSize s(static_cast<FileButton*>(widget())->sizeForCharacterWidth(size > 0 ? size : 20));
setIntrinsicWidth(s.width());
setIntrinsicHeight(s.height());
RenderFormElement::calcMinMaxWidth();
}
void RenderFileButton::updateFromElement()
{
static_cast<FileButton*>(widget())->setFilename(
static_cast<HTMLInputElement*>(node())->value().deprecatedString());
static_cast<FileButton*>(widget())->setDisabled(
static_cast<HTMLInputElement*>(node())->disabled());
RenderFormElement::updateFromElement();
}
void RenderFileButton::returnPressed(Widget*)
{
if (static_cast<HTMLInputElement*>(node())->form())
static_cast<HTMLInputElement*>(node())->form()->prepareSubmit();
}
void RenderFileButton::valueChanged(Widget*)
{
static_cast<HTMLInputElement*>(node())->setValueFromRenderer(static_cast<FileButton*>(widget())->filename());
static_cast<HTMLInputElement*>(node())->onChange();
}
void RenderFileButton::select()
{
}
void RenderFileButton::click(bool sendMouseEvents)
{
static_cast<FileButton*>(widget())->click(sendMouseEvents);
}
}