diff inkscape/firefox/inkscape-mb-patch.diff @ 339:63aaf96209cd

* Move location of files so that we can produce XPI file from them. * Add the produce to compile the inkscape for madbutterfly * Add makefile to produce inkscape and madbuilder.xpi
author wycc
date Sun, 08 Mar 2009 10:05:22 +0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inkscape/firefox/inkscape-mb-patch.diff	Sun Mar 08 10:05:22 2009 +0800
@@ -0,0 +1,278 @@
+diff -cr inkscape-0.46/share/ui/menus-bars.xml inkscape-0.46-mb/share/ui/menus-bars.xml
+*** inkscape-0.46/share/ui/menus-bars.xml	2008-03-11 12:21:15.000000000 +0800
+--- inkscape-0.46-mb/share/ui/menus-bars.xml	2009-01-18 12:09:57.000000000 +0800
+***************
+*** 22,27 ****
+--- 22,28 ----
+        <menuitem action='InkscapePreferences'/>
+        <separator/>
+        <menuitem action='Close'/>
++       <menuitem action='EffectMadButterfly'/>
+        <menuitem action='Quit'/>
+      </menu>
+      <menu action='MenuEdit'>
+diff -cr inkscape-0.46/src/dom/io/uristream.cpp inkscape-0.46-mb/src/dom/io/uristream.cpp
+*** inkscape-0.46/src/dom/io/uristream.cpp	2008-03-11 12:19:31.000000000 +0800
+--- inkscape-0.46-mb/src/dom/io/uristream.cpp	2008-11-04 23:08:25.000000000 +0800
+***************
+*** 39,45 ****
+   * Released under GNU GPL, read the file 'COPYING' for more information
+   */
+  
+! 
+  #include "uristream.h"
+  
+  
+--- 39,45 ----
+   * Released under GNU GPL, read the file 'COPYING' for more information
+   */
+  
+! #include <string.h>
+  #include "uristream.h"
+  
+  
+diff -cr inkscape-0.46/src/extension/effect.cpp inkscape-0.46-mb/src/extension/effect.cpp
+*** inkscape-0.46/src/extension/effect.cpp	2008-03-11 12:20:24.000000000 +0800
+--- inkscape-0.46-mb/src/extension/effect.cpp	2009-01-18 10:54:48.000000000 +0800
+***************
+*** 27,32 ****
+--- 27,35 ----
+  namespace Extension {
+  
+  Effect * Effect::_last_effect = NULL;
++ #ifdef CONF_MADBUTTERFLY
++ Effect * Effect::MadButterflyEffect = NULL;
++ #endif
+  Inkscape::XML::Node * Effect::_effects_list = NULL;
+  
+  Effect::Effect (Inkscape::XML::Node * in_repr, Implementation::Implementation * in_imp)
+***************
+*** 44,49 ****
+--- 47,58 ----
+      if (!strcmp(this->get_id(), "org.inkscape.filter.dropshadow"))
+          return;
+  
++ #ifdef CONF_MADBUTTERFLY
++     if (!strcmp(this->get_id(),"net.sourceforge.madbutterfly.filter.update")) {
++         MadButterflyEffect = this;
++     }
++ #endif
++ 
+      bool hidden = false;
+  
+      no_doc = false;
+diff -cr inkscape-0.46/src/extension/effect.h inkscape-0.46-mb/src/extension/effect.h
+*** inkscape-0.46/src/extension/effect.h	2008-03-11 12:20:18.000000000 +0800
+--- inkscape-0.46-mb/src/extension/effect.h	2009-01-18 09:51:23.000000000 +0800
+***************
+*** 40,45 ****
+--- 40,48 ----
+      /** \brief  This is the last effect that was used.  This is used in
+                  a menu item to rapidly recall the same effect. */
+      static Effect * _last_effect;
++ #ifdef CONF_MADBUTTERFLY
++     static Effect * MadButterflyEffect;
++ #endif
+      /** \brief  The location of the effects menu on the menu structure
+                  XML file.  This is saved so it only has to be discovered
+                  once. */
+***************
+*** 120,125 ****
+--- 123,131 ----
+  
+      /** \brief  Static function to get the last effect used */
+      static Effect *  get_last_effect (void) { return _last_effect; };
++ #ifdef CONF_MADBUTTERFLY
++     static Effect *  get_madbutterfly_effect (void) { return MadButterflyEffect; };
++ #endif
+      static void      set_last_effect (Effect * in_effect);
+  
+      static void      place_menus (void);
+diff -cr inkscape-0.46/src/extension/init.cpp inkscape-0.46-mb/src/extension/init.cpp
+*** inkscape-0.46/src/extension/init.cpp	2008-03-11 12:20:24.000000000 +0800
+--- inkscape-0.46-mb/src/extension/init.cpp	2009-01-18 10:16:51.000000000 +0800
+***************
+*** 97,103 ****
+  #include "internal/bitmap/unsharpmask.h"
+  #include "internal/bitmap/wave.h"
+  #endif /* WITH_IMAGE_MAGICK */
+! 
+  extern gboolean inkscape_app_use_gui( Inkscape::Application const *app );
+  
+  namespace Inkscape {
+--- 97,103 ----
+  #include "internal/bitmap/unsharpmask.h"
+  #include "internal/bitmap/wave.h"
+  #endif /* WITH_IMAGE_MAGICK */
+! #include "effect.h"
+  extern gboolean inkscape_app_use_gui( Inkscape::Application const *app );
+  
+  namespace Inkscape {
+diff -cr inkscape-0.46/src/inkscape.cpp inkscape-0.46-mb/src/inkscape.cpp
+*** inkscape-0.46/src/inkscape.cpp	2008-03-11 12:20:05.000000000 +0800
+--- inkscape-0.46-mb/src/inkscape.cpp	2009-01-21 23:48:17.000000000 +0800
+***************
+*** 61,66 ****
+--- 61,68 ----
+  #include "prefs-utils.h"
+  #include "xml/repr.h"
+  #include "io/sys.h"
++ #include "verbs.h"
++ #include "helper/action.h"
+  
+  #include "extension/init.h"
+  
+***************
+*** 577,582 ****
+--- 579,596 ----
+  }
+  
+  
++ #ifdef CONF_MADBUTTERFLY
++ void
++ inkscape_int_handler(int signo)
++ {
++     SPDesktop *desk = inkscape_active_desktop();
++     Inkscape::Verb *v = Inkscape::Verb::get(SP_VERB_EFFECT_MADBUTTERFLY);
++     SPAction *act = v->get_action(desk);
++     if (act)
++         sp_action_perform(act,NULL);
++     signal(SIGINT, inkscape_int_handler);
++ }
++ #endif
+  
+  void
+  inkscape_application_init (const gchar *argv0, gboolean use_gui)
+***************
+*** 591,596 ****
+--- 605,613 ----
+  #ifndef WIN32
+      bus_handler  = signal (SIGBUS,  inkscape_crash_handler);
+  #endif
++ //#ifdef CONF_MADBUTTERFLY
++     signal(SIGUSR2, inkscape_int_handler);
++ //#endif
+  
+      inkscape->use_gui = use_gui;
+      inkscape->argv0 = g_strdup(argv0);
+diff -cr inkscape-0.46/src/verbs.cpp inkscape-0.46-mb/src/verbs.cpp
+*** inkscape-0.46/src/verbs.cpp	2008-03-11 12:20:07.000000000 +0800
+--- inkscape-0.46-mb/src/verbs.cpp	2009-01-18 12:04:40.000000000 +0800
+***************
+*** 1903,1908 ****
+--- 1903,1974 ----
+  SPActionEventVector TextVerb::vector =
+              {{NULL},TextVerb::perform, NULL, NULL, NULL, NULL};
+  
++ #ifdef CONF_MADBUTTERFLY
++ /* *********** Effect MadButterfly ********** */
++ 
++ /** \brief A class to represent the last effect issued */
++ class EffectMadButterflyVerb : public Verb {
++ private:
++     static void perform(SPAction *action, void *mydata, void *otherdata);
++     static SPActionEventVector vector;
++ protected:
++     virtual SPAction *make_action(Inkscape::UI::View::View *view);
++ public:
++     /** \brief Use the Verb initializer with the same parameters. */
++     EffectMadButterflyVerb(unsigned int const code,
++                    gchar const *id,
++                    gchar const *name,
++                    gchar const *tip,
++                    gchar const *image) :
++         Verb(code, id, name, tip, image)
++     {
++         set_default_sensitive(false);
++     }
++ }; /* EffectMadButterflyVerb class */
++ 
++ /**
++  * The vector to attach in the last effect verb.
++  */
++ SPActionEventVector EffectMadButterflyVerb::vector =
++             {{NULL},EffectMadButterflyVerb::perform, NULL, NULL, NULL, NULL};
++ 
++ /** \brief  Create an action for a \c EffectLastVerb
++     \param  view  Which view the action should be created for
++     \return The built action.
++ 
++     Calls \c make_action_helper with the \c vector.
++ */
++ SPAction *
++ EffectMadButterflyVerb::make_action(Inkscape::UI::View::View *view)
++ {
++     return make_action_helper(view, &vector);
++ }
++ 
++ /** \brief  Decode the verb code and take appropriate action */
++ void
++ EffectMadButterflyVerb::perform(SPAction *action, void *data, void */*pdata*/)
++ {
++     /* These aren't used, but are here to remind people not to use
++        the CURRENT_DOCUMENT macros unless they really have to. */
++     Inkscape::UI::View::View *current_view = sp_action_get_view(action);
++     // SPDocument *current_document = SP_VIEW_DOCUMENT(current_view);
++     Inkscape::Extension::Effect *effect = Inkscape::Extension::Effect::get_madbutterfly_effect();
++ 
++     if (effect == NULL) return;
++     if (current_view == NULL) return;
++ 
++     switch ((long) data) {
++         case SP_VERB_EFFECT_MADBUTTERFLY:
++             effect->effect(current_view);
++             break;
++         default:
++             return;
++     }
++ 
++     return;
++ }
++ /* *********** End Effect MadButterfly ********** */
++ #endif
+  
+  /* *********** Effect Last ********** */
+  
+***************
+*** 2570,2575 ****
+--- 2636,2645 ----
+                         N_("Repeat the last effect with the same settings"), NULL),
+      new EffectLastVerb(SP_VERB_EFFECT_LAST_PREF, "EffectLastPref", N_("Previous Effect Settings..."),
+                         N_("Repeat the last effect with new settings"), NULL),
++ //#ifdef CONF_MADBUTTERFLY
++     new EffectMadButterflyVerb(SP_VERB_EFFECT_MADBUTTERFLY, "EffectMadButterfly", N_("Effect for MadButterfly"),
++                        N_("For MadButterfly integration"), NULL),
++ //#endif
+  
+      /* Fit Page */
+      new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION, "FitCanvasToSelection", N_("Fit Page to Selection"),
+diff -cr inkscape-0.46/src/verbs.h inkscape-0.46-mb/src/verbs.h
+*** inkscape-0.46/src/verbs.h	2008-03-11 12:20:28.000000000 +0800
+--- inkscape-0.46-mb/src/verbs.h	2009-01-18 00:37:43.000000000 +0800
+***************
+*** 23,29 ****
+  #include "helper/helper-forward.h"
+  #include "forward.h"
+  #include <glibmm/ustring.h>
+! 
+  /** \brief This anonymous enum is used to provide a list of the Verbs
+             which are defined staticly in the verb files.  There may be
+             other verbs which are defined dynamically also. */
+--- 23,29 ----
+  #include "helper/helper-forward.h"
+  #include "forward.h"
+  #include <glibmm/ustring.h>
+! #define CONF_MADBUTTERFLY
+  /** \brief This anonymous enum is used to provide a list of the Verbs
+             which are defined staticly in the verb files.  There may be
+             other verbs which are defined dynamically also. */
+***************
+*** 246,251 ****
+--- 246,252 ----
+      /* Effects */
+      SP_VERB_EFFECT_LAST,
+      SP_VERB_EFFECT_LAST_PREF,
++     SP_VERB_EFFECT_MADBUTTERFLY,
+      /* Fit Canvas */
+      SP_VERB_FIT_CANVAS_TO_SELECTION,
+      SP_VERB_FIT_CANVAS_TO_DRAWING,