summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderInputSpeech.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderInputSpeech.cpp')
-rw-r--r--WebCore/rendering/RenderInputSpeech.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/WebCore/rendering/RenderInputSpeech.cpp b/WebCore/rendering/RenderInputSpeech.cpp
index df17944..5472025 100644
--- a/WebCore/rendering/RenderInputSpeech.cpp
+++ b/WebCore/rendering/RenderInputSpeech.cpp
@@ -36,6 +36,7 @@
#include "GraphicsContext.h"
#include "HTMLNames.h"
#include "RenderBox.h"
+#include "TextControlInnerElements.h"
namespace WebCore {
@@ -79,7 +80,16 @@ bool RenderInputSpeech::paintInputFieldSpeechButton(RenderObject* object, const
buttonRect.move(rect.x(), rect.y());
DEFINE_STATIC_LOCAL(RefPtr<Image>, imageStateNormal, (Image::loadPlatformResource("inputSpeech")));
- paintInfo.context->drawImage(imageStateNormal.get(), object->style()->colorSpace(), buttonRect);
+ DEFINE_STATIC_LOCAL(RefPtr<Image>, imageStateRecording, (Image::loadPlatformResource("inputSpeechRecording")));
+ DEFINE_STATIC_LOCAL(RefPtr<Image>, imageStateWaiting, (Image::loadPlatformResource("inputSpeechWaiting")));
+
+ InputFieldSpeechButtonElement* speechButton = reinterpret_cast<InputFieldSpeechButtonElement*>(object->node());
+ Image* image = imageStateNormal.get();
+ if (speechButton->state() == InputFieldSpeechButtonElement::Recording)
+ image = imageStateRecording.get();
+ else if (speechButton->state() == InputFieldSpeechButtonElement::Recognizing)
+ image = imageStateWaiting.get();
+ paintInfo.context->drawImage(image, object->style()->colorSpace(), buttonRect);
return false;
}