#ifndef RenderThemeGdk_H_
#define RenderThemeGdk_H_
#include "RenderTheme.h"
namespace WebCore {
struct ThemeData {
ThemeData() : m_part(0), m_state(0) {}
unsigned m_part;
unsigned m_state;
};
class RenderThemeGdk : public RenderTheme {
public:
RenderThemeGdk();
~RenderThemeGdk();
virtual bool supportsHover(const RenderStyle* style) const { return true; }
virtual bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
{ return paintButton(o, i, r); }
virtual void setCheckboxSize(RenderStyle* style) const;
virtual bool paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
{ return paintButton(o, i, r); }
virtual void setRadioSize(RenderStyle* style) const;
virtual void adjustButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
virtual bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
virtual void adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
virtual bool paintTextField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
private:
void addIntrinsicMargins(RenderStyle*) const;
void close();
unsigned determineState(RenderObject*);
bool supportsFocus(EAppearance);
ThemeData getThemeData(RenderObject*);
};
}
#endif