#ifndef CorrectionPanel_h
#define CorrectionPanel_h
#import <WebCore/TextChecking.h>
#if USE(AUTOCORRECTION_PANEL)
#import <AppKit/NSSpellChecker.h>
#import <WebCore/AlternativeTextClient.h>
#import <wtf/RetainPtr.h>
namespace WebKit {
class WebViewImpl;
class CorrectionPanel {
public:
CorrectionPanel();
~CorrectionPanel();
void show(NSView *, WebViewImpl&, WebCore::AlternativeTextType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings);
String dismiss(WebCore::ReasonForDismissingAlternativeText);
static void recordAutocorrectionResponse(NSInteger spellCheckerDocumentTag, NSCorrectionResponse, const String& replacedString, const String& replacementString);
private:
bool isShowing() const { return m_view; }
String dismissInternal(WebCore::ReasonForDismissingAlternativeText, bool dismissingExternally);
void handleAcceptedReplacement(WebViewImpl&, NSString* acceptedReplacement, NSString* replaced, NSString* proposedReplacement, NSCorrectionIndicatorType);
bool m_wasDismissedExternally;
WebCore::ReasonForDismissingAlternativeText m_reasonForDismissing;
RetainPtr<NSView> m_view;
RetainPtr<NSString> m_resultForDismissal;
NSInteger m_spellCheckerDocumentTag;
};
}
#endif // USE(AUTOCORRECTION_PANEL)
#endif // CorrectionPanel_h