00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KPROPERTY_PROPERTYWIDGET_H
00022 #define KPROPERTY_PROPERTYWIDGET_H
00023
00024 #include <QWidget>
00025
00026 #include <QResizeEvent>
00027 #include <QEvent>
00028 #include "koproperty_global.h"
00029
00030 namespace KoProperty {
00031
00032 class WidgetPrivate;
00033 class Property;
00034
00039 class KOPROPERTY_EXPORT Widget : public QWidget
00040 {
00041 Q_OBJECT
00042
00043 public:
00044 Widget(Property *property, QWidget *parent);
00045 virtual ~Widget();
00046
00048 virtual QVariant value() const = 0;
00049
00052 virtual void setValue(const QVariant &value, bool emitChange=true) = 0;
00053
00055 virtual Property* property() const;
00056
00058 virtual void setProperty(Property *property);
00059
00061 virtual void drawViewer(QPainter *p, const QColorGroup &cg, const QRect &r, const QVariant &value);
00062
00064 virtual void undo();
00065
00067 void setFocusWidget(QWidget*focusProxy);
00068
00070 bool leavesTheSpaceForRevertButton() const;
00071
00074 bool hasBorders() const;
00075
00081 bool isReadOnly() const;
00082
00086 void setReadOnly(bool readOnly);
00087
00090 bool visibleFlag() const;
00091
00092 signals:
00093 void valueChanged(Widget *widget);
00094 void acceptInput(Widget *widget);
00095 void rejectInput(Widget *widget);
00096
00097 protected:
00098 void setEditor(QWidget* editor);
00099
00101 virtual bool eventFilter(QObject* watched, QEvent* e);
00102
00103 virtual void resizeEvent(QResizeEvent *e);
00104
00105 void setLeavesTheSpaceForRevertButton(bool set);
00106 void setHasBorders(bool set);
00107
00110 virtual void setReadOnlyInternal(bool readOnly) = 0;
00111
00115 void setVisibleFlag(bool visible);
00116
00117 protected:
00118 WidgetPrivate *d;
00119 };
00120
00121 }
00122
00123 #endif