diff --git a/src/extension/effect.h b/src/extension/effect.h
index 493af142b653e398a9ad66ac83f18510540c603b..c02ce542b09e7d4de1c3366ad1a6edb3a52bedb6 100644 (file)
--- a/src/extension/effect.h
+++ b/src/extension/effect.h
#include <config.h>
#include <glibmm/i18n.h>
+#include <gtkmm/dialog.h>
#include <gtk/gtkdialog.h>
#include "verbs.h"
+#include "prefdialog.h"
#include "extension.h"
struct SPDocument;
/** \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;
- /** \brief The location of the effects menu on the menu structure
+ /** \brief The location of the Extensions and Filters menus on the menu structure
XML file. This is saved so it only has to be discovered
once. */
static Inkscape::XML::Node * _effects_list;
- bool find_effects_list (Inkscape::XML::Node * menustruct);
+ static Inkscape::XML::Node * _filters_list;
+ Inkscape::XML::Node *find_menu (Inkscape::XML::Node * menustruct, const gchar *name);
void merge_menu (Inkscape::XML::Node * base, Inkscape::XML::Node * start, Inkscape::XML::Node * patern, Inkscape::XML::Node * mergee);
/** \brief This is the verb type that is used for all effect's verbs.
/** \brief The effect that this verb represents. */
Effect * _effect;
+ /** \brief Whether or not to show preferences on display */
+ bool _showPrefs;
+ /** \brief Name with elipses if that makes sense */
+ gchar * _elip_name;
protected:
virtual SPAction * make_action (Inkscape::UI::View::View * view);
public:
gchar const * name,
gchar const * tip,
gchar const * image,
- Effect * effect) :
- Verb(id, _(name), _(tip), image), _effect(effect) {
+ Effect * effect,
+ bool showPrefs) :
+ Verb(id, _(name), _(tip), image),
+ _effect(effect),
+ _showPrefs(showPrefs),
+ _elip_name(NULL) {
/* No clue why, but this is required */
this->set_default_sensitive(true);
+ if (_showPrefs && effect != NULL && effect->param_visible_count() != 0) {
+ _elip_name = g_strdup_printf("%s...", _(name));
+ set_name(_elip_name);
+ }
+ }
+
+ /** \brief Destructor */
+ ~EffectVerb() {
+ if (_elip_name != NULL) {
+ g_free(_elip_name);
+ }
}
};
+ /** \brief ID used for the verb without preferences */
+ Glib::ustring _id_noprefs;
+ /** \brief Name used for the verb without preferences */
+ Glib::ustring _name_noprefs;
+
/** \brief The verb representing this effect. */
EffectVerb _verb;
+ /** \brief The verb representing this effect. Without preferences. */
+ EffectVerb _verb_nopref;
/** \brief Menu node created for this effect */
Inkscape::XML::Node * _menu_node;
+ /** \brief Whehter a working dialog should be shown */
+ bool _workingDialog;
+
+ /** \brief The preference dialog if it is shown */
+ PrefDialog * _prefDialog;
public:
Effect (Inkscape::XML::Node * in_repr,
Implementation::Implementation * in_imp);
Gtk::VBox * get_info_widget(void);
+ bool no_doc; // if true, the effect does not process SVG document at all, so no need to save, read, and watch for errors
+ bool no_live_preview; // if true, the effect does not need "live preview" checkbox in its dialog
+
+ void set_pref_dialog (PrefDialog * prefdialog);
private:
static gchar * remove_ (gchar * instr);
};