summaryrefslogtreecommitdiffstats
path: root/src/sp-conn-end.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-conn-end.h')
-rw-r--r--src/sp-conn-end.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/sp-conn-end.h b/src/sp-conn-end.h
new file mode 100644
index 000000000..a565b6404
--- /dev/null
+++ b/src/sp-conn-end.h
@@ -0,0 +1,51 @@
+#ifndef SEEN_SP_CONN_END
+#define SEEN_SP_CONN_END
+
+#include <glib/gtypes.h>
+#include <sigc++/connection.h>
+
+#include "sp-use-reference.h"
+
+
+class SPConnEnd {
+public:
+ SPConnEnd(SPObject *owner);
+
+ SPUseReference ref;
+ gchar *href;
+
+ /** Change of href string (not a modification of the attributes of the referrent). */
+ sigc::connection _changed_connection;
+
+ /** Called when the attached object gets deleted. */
+ sigc::connection _delete_connection;
+
+ /** A sigc connection for transformed signal, used to do move compensation. */
+ sigc::connection _transformed_connection;
+
+ void setAttacherHref(gchar const *);
+
+private:
+ SPConnEnd(SPConnEnd const &);
+ SPConnEnd &operator=(SPConnEnd const &);
+};
+
+void sp_conn_end_href_changed(SPObject *old_ref, SPObject *ref,
+ SPConnEnd *connEnd, SPPath *path, unsigned const handle_ix);
+void sp_conn_adjust_invalid_path(SPPath *const path);
+void sp_conn_adjust_path(SPPath *const path);
+void sp_conn_end_detach(SPObject *const owner, unsigned const handle_ix);
+
+
+#endif /* !SEEN_SP_CONN_END */
+
+/*
+ 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 :