diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-21 19:32:53 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-21 19:32:53 +0000 |
| commit | d483730f7dbad0c29366354b32b4b2a1020eba0d (patch) | |
| tree | 8a9a3a2863ce4d203b704ae064290f0b402fc3e5 /src | |
| parent | Cleaned up a bit. (diff) | |
| download | inkscape-d483730f7dbad0c29366354b32b4b2a1020eba0d.tar.gz inkscape-d483730f7dbad0c29366354b32b4b2a1020eba0d.zip | |
More cleaning.
(bzr r11608.1.103)
Diffstat (limited to 'src')
| -rw-r--r-- | src/arc-context.cpp | 2 | ||||
| -rw-r--r-- | src/desktop.cpp | 24 | ||||
| -rw-r--r-- | src/event-context.cpp | 24 | ||||
| -rw-r--r-- | src/event-context.h | 12 | ||||
| -rw-r--r-- | src/rect-context.cpp | 2 | ||||
| -rw-r--r-- | src/star-context.cpp | 2 |
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; |
