InspectorStyleTextEditor.h [plain text]
#ifndef InspectorStyleTextEditor_h
#define InspectorStyleTextEditor_h
#include "CSSPropertySourceData.h"
#include "PlatformString.h"
#include <wtf/Vector.h>
namespace WebCore {
#if ENABLE(INSPECTOR)
struct InspectorStyleProperty;
struct SourceRange;
typedef std::pair<String, String> NewLineAndWhitespace;
class InspectorStyleTextEditor {
public:
InspectorStyleTextEditor(Vector<InspectorStyleProperty>* allProperties, Vector<InspectorStyleProperty>* disabledProperties, const String& styleText, const NewLineAndWhitespace& format);
void insertProperty(unsigned index, const String& propertyText, unsigned styleBodyLength);
void replaceProperty(unsigned index, const String& newText);
void removeProperty(unsigned index);
void enableProperty(unsigned index);
void disableProperty(unsigned index);
const String& styleText() const { return m_styleText; }
private:
unsigned disabledIndexByOrdinal(unsigned ordinal, bool canUseSubsequent);
void shiftDisabledProperties(unsigned fromIndex, long delta);
void internalReplaceProperty(const InspectorStyleProperty&, const String& newText, SourceRange* removedRange, unsigned* insertedLength);
Vector<InspectorStyleProperty>* m_allProperties;
Vector<InspectorStyleProperty>* m_disabledProperties;
String m_styleText;
const std::pair<String, String> m_format;
};
#endif
}
#endif // !defined(InspectorStyleTextEditor_h)