Code

Added attr-widgets, missing from my last commit
authornicholasbishop <nicholasbishop@users.sourceforge.net>
Thu, 26 Jul 2007 08:27:43 +0000 (08:27 +0000)
committernicholasbishop <nicholasbishop@users.sourceforge.net>
Thu, 26 Jul 2007 08:27:43 +0000 (08:27 +0000)
src/ui/widget/attr-widget.h [new file with mode: 0644]

diff --git a/src/ui/widget/attr-widget.h b/src/ui/widget/attr-widget.h
new file mode 100644 (file)
index 0000000..73e96ea
--- /dev/null
@@ -0,0 +1,66 @@
+/**
+ * \brief Very basic interface for classes that control attributes
+ *
+ * Authors:
+ *   Nicholas Bishop <nicholasbishop@gmail.com>
+ *
+ * Copyright (C) 2007 Authors
+ *
+ * Released under GNU GPL.  Read the file 'COPYING' for more information.
+ */
+
+#ifndef INKSCAPE_UI_WIDGET_ATTR_WIDGET_H
+#define INKSCAPE_UI_WIDGET_ATTR_WIDGET_H
+
+#include "attributes.h"
+#include "sp-object.h"
+#include "xml/node.h"
+
+namespace Inkscape {
+namespace UI {
+namespace Widget {
+
+class AttrWidget
+{
+public:
+    AttrWidget(const SPAttributeEnum a)
+        : _attr(a)
+    {}
+
+    virtual ~AttrWidget()
+    {}
+
+    virtual Glib::ustring get_as_attribute() const = 0;
+    virtual void set_from_attribute(SPObject*) = 0;
+
+protected:
+    const gchar* attribute_value(SPObject* o) const
+    {
+        const gchar* name = (const gchar*)sp_attribute_name(_attr);
+        if(name && o) {
+            const gchar* val = SP_OBJECT_REPR(o)->attribute(name);
+            return val;
+        }
+        return 0;
+    }
+
+private:
+    const SPAttributeEnum _attr;
+};
+
+}
+}
+}
+
+#endif
+
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :