#ifndef CorrectionPanel_h
#define CorrectionPanel_h
#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
#import <AppKit/NSSpellChecker.h>
#import <WebCore/SpellingCorrectionController.h>
#import <wtf/RetainPtr.h>
@class WebView;
class CorrectionPanel {
WTF_MAKE_NONCOPYABLE(CorrectionPanel);
public:
CorrectionPanel();
~CorrectionPanel();
void show(WebView*, WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings);
String dismiss(WebCore::ReasonForDismissingCorrectionPanel);
static void recordAutocorrectionResponse(WebView*, NSCorrectionResponse, const String& replacedString, const String& replacementString);
private:
bool isShowing() const { return m_view; }
String dismissInternal(WebCore::ReasonForDismissingCorrectionPanel, bool dismissingExternally);
void handleAcceptedReplacement(NSString* acceptedReplacement, NSString* replaced, NSString* proposedReplacement, NSCorrectionIndicatorType);
bool m_wasDismissedExternally;
WebCore::ReasonForDismissingCorrectionPanel m_reasonForDismissing;
RetainPtr<WebView> m_view;
RetainPtr<NSString> m_resultForDismissal;
};
#endif // !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
#endif // CorrectionPanel_h