summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-21 19:32:53 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-21 19:32:53 +0000
commitd483730f7dbad0c29366354b32b4b2a1020eba0d (patch)
tree8a9a3a2863ce4d203b704ae064290f0b402fc3e5 /src
parentCleaned up a bit. (diff)
downloadinkscape-d483730f7dbad0c29366354b32b4b2a1020eba0d.tar.gz
inkscape-d483730f7dbad0c29366354b32b4b2a1020eba0d.zip
More cleaning.
(bzr r11608.1.103)
Diffstat (limited to 'src')
-rw-r--r--src/arc-context.cpp2
-rw-r--r--src/desktop.cpp24
-rw-r--r--src/event-context.cpp24
-rw-r--r--src/event-context.h12
-rw-r--r--src/rect-context.cpp2
-rw-r--r--src/star-context.cpp2
6 files changed, 29 insertions, 37 deletions
diff --git a/src/arc-context.cpp b/src/arc-context.cpp
index 5851df26f..1c8e7c860 100644
--- a/src/arc-context.cpp
+++ b/src/arc-context.cpp
@@ -76,7 +76,7 @@ SPArcContext::SPArcContext() : SPEventContext() {
this->tolerance = 0;
this->within_tolerance = false;
this->item_to_select = NULL;
- this->tool_url = "/tools/shapes/arc";
+ //this->tool_url = "/tools/shapes/arc";
this->arc = NULL;
}
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 2b768ede3..a9e608057 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -695,35 +695,17 @@ SPDesktop::change_document (SPDocument *theDocument)
void SPDesktop::set_event_context2(const std::string& toolName) {
if (event_context) {
- //sp_event_context_deactivate(event_context);
event_context->deactivate();
- //sp_event_context_finish(event_context);
event_context->finish();
- //g_object_unref(G_OBJECT(event_context));
delete event_context;
}
event_context = ToolFactory::instance().createObject(toolName);
- SPEventContext* ec = event_context;
- SPDesktop* desktop = this;
- ec->desktop = desktop;
- ec->_message_context
- = new Inkscape::MessageContext(desktop->messageStack());
- //ec->key = key;
- ec->key = 0;
- ec->pref_observer = NULL;
-
- const std::string& pref_path = toolName;
- //if (pref_path) {
- ec->pref_observer = new ToolPrefObserver(pref_path, ec);
-
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- prefs->addObserver(*(ec->pref_observer));
- //}
-
- ec->setup();
+ event_context->desktop = this;
+ event_context->_message_context = new Inkscape::MessageContext(this->messageStack());
+ event_context->setup();
sp_event_context_activate(event_context);
_event_context_changed_signal.emit(this, event_context);
diff --git a/src/event-context.cpp b/src/event-context.cpp
index 63bb87570..75d156a38 100644
--- a/src/event-context.cpp
+++ b/src/event-context.cpp
@@ -95,7 +95,7 @@ SPEventContext::SPEventContext() {
this->yp = 0;
this->within_tolerance = false;
this->tolerance = 0;
- this->key = 0;
+ //this->key = 0;
this->item_to_select = 0;
this->desktop = NULL;
@@ -107,7 +107,7 @@ SPEventContext::SPEventContext() {
this->shape_editor = NULL;
this->_delayed_snap_event = NULL;
this->_dse_callback_in_process = false;
- this->tool_url = NULL;
+ //this->tool_url = NULL;
}
SPEventContext::~SPEventContext() {
@@ -171,12 +171,12 @@ void sp_event_context_update_cursor(SPEventContext *ec) {
/* fixme: */
if (ec->cursor_shape) {
GdkDisplay *display = gdk_display_get_default();
- if (ec->tool_url && gdk_display_supports_cursor_alpha(display) && gdk_display_supports_cursor_color(display)) {
+ if (gdk_display_supports_cursor_alpha(display) && gdk_display_supports_cursor_color(display)) {
bool fillHasColor=false, strokeHasColor=false;
- guint32 fillColor = sp_desktop_get_color_tool(ec->desktop, ec->tool_url, true, &fillHasColor);
- guint32 strokeColor = sp_desktop_get_color_tool(ec->desktop, ec->tool_url, false, &strokeHasColor);
- double fillOpacity = fillHasColor ? sp_desktop_get_opacity_tool(ec->desktop, ec->tool_url, true) : 0;
- double strokeOpacity = strokeHasColor ? sp_desktop_get_opacity_tool(ec->desktop, ec->tool_url, false) : 0;
+ guint32 fillColor = sp_desktop_get_color_tool(ec->desktop, ec->getPrefsPath(), true, &fillHasColor);
+ guint32 strokeColor = sp_desktop_get_color_tool(ec->desktop, ec->getPrefsPath(), false, &strokeHasColor);
+ double fillOpacity = fillHasColor ? sp_desktop_get_opacity_tool(ec->desktop, ec->getPrefsPath(), true) : 0;
+ double strokeOpacity = strokeHasColor ? sp_desktop_get_opacity_tool(ec->desktop, ec->getPrefsPath(), false) : 0;
GdkPixbuf *pixbuf = sp_cursor_pixbuf_from_xpm(
ec->cursor_shape,
@@ -222,12 +222,14 @@ void sp_event_context_update_cursor(SPEventContext *ec) {
* Callback that gets called on initialization of SPEventContext object.
* Redraws mouse cursor, at the moment.
*/
-//static void sp_event_context_private_setup(SPEventContext *ec) {
-// //sp_event_context_update_cursor(ec);
-// ec->ceventcontext->setup();
-//}
+/**
+ * When you override it, call this method first.
+ */
void SPEventContext::setup() {
+ this->pref_observer = new ToolPrefObserver(this->getPrefsPath(), this);
+ Inkscape::Preferences::get()->addObserver(*(this->pref_observer));
+
sp_event_context_update_cursor(this);
}
diff --git a/src/event-context.h b/src/event-context.h
index f2b8377fd..d7db70104 100644
--- a/src/event-context.h
+++ b/src/event-context.h
@@ -110,7 +110,7 @@ public:
/// Desktop eventcontext stack
//SPEventContext *next;
- unsigned key;
+ //unsigned key;
SPDesktop *desktop;
Inkscape::Preferences::Observer *pref_observer;
gchar const *const *cursor_shape;
@@ -142,17 +142,25 @@ public:
DelayedSnapEvent *_delayed_snap_event;
bool _dse_callback_in_process;
- char const * tool_url; ///< the (preferences) url for the tool (if a subclass corresponding to a tool is used)
+ //char const * tool_url; ///< the (preferences) url for the tool (if a subclass corresponding to a tool is used)
virtual void setup();
virtual void finish();
+
+ // Is called by our pref_observer if a preference has been changed.
virtual void set(Inkscape::Preferences::Entry* val);
+
virtual void activate();
virtual void deactivate();
+
virtual gint root_handler(GdkEvent* event);
virtual gint item_handler(SPItem* item, GdkEvent* event);
virtual const std::string& getPrefsPath() = 0;
+
+private:
+ SPEventContext(const SPEventContext&);
+ SPEventContext& operator=(const SPEventContext&);
};
#define SP_EVENT_CONTEXT_DESKTOP(e) (SP_EVENT_CONTEXT(e)->desktop)
diff --git a/src/rect-context.cpp b/src/rect-context.cpp
index 3b1169017..e6c3cfdd9 100644
--- a/src/rect-context.cpp
+++ b/src/rect-context.cpp
@@ -74,7 +74,7 @@ SPRectContext::SPRectContext() : SPEventContext() {
this->tolerance = 0;
this->within_tolerance = false;
this->item_to_select = NULL;
- this->tool_url = "/tools/shapes/rect";
+ //this->tool_url = "/tools/shapes/rect";
this->rect = NULL;
diff --git a/src/star-context.cpp b/src/star-context.cpp
index 043e1430e..aecdd1b0d 100644
--- a/src/star-context.cpp
+++ b/src/star-context.cpp
@@ -83,7 +83,7 @@ SPStarContext::SPStarContext() : SPEventContext() {
event_context->tolerance = 0;
event_context->within_tolerance = false;
event_context->item_to_select = NULL;
- event_context->tool_url = "/tools/shapes/star";
+ //event_context->tool_url = "/tools/shapes/star";
star_context->star = NULL;