diff options
| author | Nicolas Dufour <nicoduf@yahoo.fr> | 2011-08-06 18:48:21 +0000 |
|---|---|---|
| committer | JazzyNico <nicoduf@yahoo.fr> | 2011-08-06 18:48:21 +0000 |
| commit | ec8d0b742153e4715efd13fb19607c3167cc2092 (patch) | |
| tree | d26d7c4e09e293481d9cf5af322b4178f6deb605 /src | |
| parent | Patch from Yu-Jie Lin for bug 820863 to add the option to disable libwpg (diff) | |
| download | inkscape-ec8d0b742153e4715efd13fb19607c3167cc2092.tar.gz inkscape-ec8d0b742153e4715efd13fb19607c3167cc2092.zip | |
Extensions. New "indent" attribute to add an indent level to extension elements.
Filters. Adding the new "indent" attribute to parameters groups.
(bzr r10529)
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/internal/filter/bumps.h | 34 | ||||
| -rwxr-xr-x | src/extension/internal/filter/experimental.h | 20 | ||||
| -rw-r--r-- | src/extension/param/bool.cpp | 18 | ||||
| -rw-r--r-- | src/extension/param/bool.h | 1 | ||||
| -rw-r--r-- | src/extension/param/description.cpp | 26 | ||||
| -rw-r--r-- | src/extension/param/description.h | 1 | ||||
| -rw-r--r-- | src/extension/param/enum.cpp | 43 | ||||
| -rw-r--r-- | src/extension/param/enum.h | 2 | ||||
| -rw-r--r-- | src/extension/param/float.cpp | 41 | ||||
| -rw-r--r-- | src/extension/param/float.h | 1 | ||||
| -rw-r--r-- | src/extension/param/int.cpp | 39 | ||||
| -rw-r--r-- | src/extension/param/int.h | 1 | ||||
| -rw-r--r-- | src/extension/param/radiobutton.cpp | 41 | ||||
| -rw-r--r-- | src/extension/param/radiobutton.h | 2 | ||||
| -rw-r--r-- | src/extension/param/string.cpp | 40 | ||||
| -rw-r--r-- | src/extension/param/string.h | 1 |
16 files changed, 210 insertions, 101 deletions
diff --git a/src/extension/internal/filter/bumps.h b/src/extension/internal/filter/bumps.h index 3591377be..b52581844 100644 --- a/src/extension/internal/filter/bumps.h +++ b/src/extension/internal/filter/bumps.h @@ -84,10 +84,10 @@ public: "<param name=\"simplifyBump\" gui-text=\"" N_("Bump simplification:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"10.00\">0.01</param>\n" "<param name=\"crop\" gui-text=\"" N_("Crop:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"-1.\" max=\"1.\">0</param>\n" "<_param name=\"sourceHeader\" type=\"description\" appearance=\"header\">Bump source</_param>\n" - "<param name=\"red\" gui-text=\"" N_("Red:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"-50.\" max=\"50.\">0</param>\n" - "<param name=\"green\" gui-text=\"" N_("Green:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"-50.\" max=\"50.\">0</param>\n" - "<param name=\"blue\" gui-text=\"" N_("Blue:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"-50.\" max=\"50.\">0</param>\n" - "<param name=\"background\" gui-text=\"" N_("Bump from background") "\" type=\"boolean\">false</param>\n" + "<param name=\"red\" gui-text=\"" N_("Red:") "\" type=\"float\" indent=\"1\" appearance=\"full\" precision=\"2\" min=\"-50.\" max=\"50.\">0</param>\n" + "<param name=\"green\" gui-text=\"" N_("Green:") "\" type=\"float\" indent=\"1\" appearance=\"full\" precision=\"2\" min=\"-50.\" max=\"50.\">0</param>\n" + "<param name=\"blue\" gui-text=\"" N_("Blue:") "\" type=\"float\" indent=\"1\" appearance=\"full\" precision=\"2\" min=\"-50.\" max=\"50.\">0</param>\n" + "<param name=\"background\" gui-text=\"" N_("Bump from background") "\" indent=\"1\" type=\"boolean\">false</param>\n" "</page>\n" "<page name=\"lightingtab\" _gui-text=\"Lighting\">\n" "<param name=\"lightType\" gui-text=\"" N_("Lighting type:") "\" type=\"enum\">\n" @@ -106,21 +106,21 @@ public: "<_item value=\"spot\">" N_("Spot") "</_item>\n" "</param>\n" "<_param name=\"distantHeader\" type=\"description\" appearance=\"header\">Distant light options</_param>\n" - "<param name=\"distantAzimuth\" gui-text=\"" N_("Azimuth:") "\" type=\"int\" appearance=\"full\" min=\"0\" max=\"360\">225</param>\n" - "<param name=\"distantElevation\" gui-text=\"" N_("Elevation:") "\" type=\"int\" appearance=\"full\" min=\"0\" max=\"180\">45</param>\n" + "<param name=\"distantAzimuth\" gui-text=\"" N_("Azimuth:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"360\">225</param>\n" + "<param name=\"distantElevation\" gui-text=\"" N_("Elevation:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"180\">45</param>\n" "<_param name=\"pointHeader\" type=\"description\" appearance=\"header\">Point light options</_param>\n" - "<param name=\"pointX\" gui-text=\"" N_("X location:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">526</param>\n" - "<param name=\"pointY\" gui-text=\"" N_("Y location:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">372</param>\n" - "<param name=\"pointZ\" gui-text=\"" N_("Z location:") "\" type=\"int\" appearance=\"full\" min=\"0\" max=\"5000\">150</param>\n" + "<param name=\"pointX\" gui-text=\"" N_("X location:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">526</param>\n" + "<param name=\"pointY\" gui-text=\"" N_("Y location:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">372</param>\n" + "<param name=\"pointZ\" gui-text=\"" N_("Z location:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"5000\">150</param>\n" "<_param name=\"spotHeader\" type=\"description\" appearance=\"header\">Spot light options</_param>\n" - "<param name=\"spotX\" gui-text=\"" N_("X location:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">526</param>\n" - "<param name=\"spotY\" gui-text=\"" N_("Y location:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">372</param>\n" - "<param name=\"spotZ\" gui-text=\"" N_("Z location:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">150</param>\n" - "<param name=\"spotAtX\" gui-text=\"" N_("X target:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">0</param>\n" - "<param name=\"spotAtY\" gui-text=\"" N_("Y target:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"5000\">0</param>\n" - "<param name=\"spotAtZ\" gui-text=\"" N_("Z target:") "\" type=\"int\" appearance=\"full\" min=\"-5000\" max=\"0\">-1000</param>\n" - "<param name=\"spotExponent\" gui-text=\"" N_("Specular exponent:") "\" type=\"int\" appearance=\"full\" min=\"1\" max=\"100\">1</param>\n" - "<param name=\"spotConeAngle\" gui-text=\"" N_("Cone angle:") "\" type=\"int\" appearance=\"full\" min=\"0\" max=\"100\">50</param>\n" + "<param name=\"spotX\" gui-text=\"" N_("X location:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">526</param>\n" + "<param name=\"spotY\" gui-text=\"" N_("Y location:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">372</param>\n" + "<param name=\"spotZ\" gui-text=\"" N_("Z location:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">150</param>\n" + "<param name=\"spotAtX\" gui-text=\"" N_("X target:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">0</param>\n" + "<param name=\"spotAtY\" gui-text=\"" N_("Y target:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"5000\">0</param>\n" + "<param name=\"spotAtZ\" gui-text=\"" N_("Z target:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"-5000\" max=\"0\">-1000</param>\n" + "<param name=\"spotExponent\" gui-text=\"" N_("Specular exponent:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"1\" max=\"100\">1</param>\n" + "<param name=\"spotConeAngle\" gui-text=\"" N_("Cone angle:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"100\">50</param>\n" "</page>\n" "<page name=\"colortab\" _gui-text=\"Color bump\">\n" "<param name=\"imageColor\" gui-text=\"" N_("Image color") "\" type=\"color\">-987158017</param>\n" diff --git a/src/extension/internal/filter/experimental.h b/src/extension/internal/filter/experimental.h index 3dbb6a76d..2032cb513 100755 --- a/src/extension/internal/filter/experimental.h +++ b/src/extension/internal/filter/experimental.h @@ -332,18 +332,18 @@ public: "<param name=\"tab\" type=\"notebook\">\n" "<page name=\"optionstab\" _gui-text=\"Options\">\n" "<_param name=\"simplifyheader\" type=\"description\" appearance=\"header\">Simplify</_param>\n" - "<param name=\"simply\" gui-text=\"" N_("Strength:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"20.00\">0.6</param>\n" - "<param name=\"clean\" gui-text=\"" N_("Clean-up:") "\" type=\"int\" appearance=\"full\" min=\"1\" max=\"500\">10</param>\n" - "<param name=\"erase\" gui-text=\"" N_("Erase:") "\" type=\"float\" appearance=\"full\" min=\"0\" max=\"60\">0</param>\n" - "<param name=\"translucent\" gui-text=\"" N_("Translucent") "\" type=\"boolean\" >false</param>\n" + "<param name=\"simply\" gui-text=\"" N_("Strength:") "\" type=\"float\" indent=\"1\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"20.00\">0.6</param>\n" + "<param name=\"clean\" gui-text=\"" N_("Clean-up:") "\" type=\"int\" indent=\"1\" appearance=\"full\" min=\"1\" max=\"500\">10</param>\n" + "<param name=\"erase\" gui-text=\"" N_("Erase:") "\" type=\"float\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"60\">0</param>\n" + "<param name=\"translucent\" gui-text=\"" N_("Translucent") "\" indent=\"1\" type=\"boolean\" >false</param>\n" "<_param name=\"smoothheader\" type=\"description\" appearance=\"header\">Smoothness</_param>\n" - "<param name=\"smooth\" gui-text=\"" N_("Strength:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"20.00\">0.6</param>\n" - "<param name=\"dilat\" gui-text=\"" N_("Dilatation:") "\" type=\"float\" appearance=\"full\" min=\"1\" max=\"50\">6</param>\n" - "<param name=\"erosion\" gui-text=\"" N_("Erosion:") "\" type=\"float\" appearance=\"full\" min=\"0\" max=\"50\">2</param>\n" + "<param name=\"smooth\" gui-text=\"" N_("Strength:") "\" type=\"float\" indent=\"1\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"20.00\">0.6</param>\n" + "<param name=\"dilat\" gui-text=\"" N_("Dilatation:") "\" type=\"float\" indent=\"1\" appearance=\"full\" min=\"1\" max=\"50\">6</param>\n" + "<param name=\"erosion\" gui-text=\"" N_("Erosion:") "\" type=\"float\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"50\">2</param>\n" "<_param name=\"meltheader\" type=\"description\" appearance=\"header\">Melt</_param>\n" - "<param name=\"blur\" gui-text=\"" N_("Level:") "\" type=\"float\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"20.00\">1</param>\n" - "<param name=\"bdilat\" gui-text=\"" N_("Dilatation:") "\" type=\"float\" appearance=\"full\" min=\"1\" max=\"50\">6</param>\n" - "<param name=\"berosion\" gui-text=\"" N_("Erosion:") "\" type=\"float\" appearance=\"full\" min=\"0\" max=\"50\">2</param>\n" + "<param name=\"blur\" gui-text=\"" N_("Level:") "\" type=\"float\" indent=\"1\" appearance=\"full\" precision=\"2\" min=\"0.01\" max=\"20.00\">1</param>\n" + "<param name=\"bdilat\" gui-text=\"" N_("Dilatation:") "\" type=\"float\" indent=\"1\" appearance=\"full\" min=\"1\" max=\"50\">6</param>\n" + "<param name=\"berosion\" gui-text=\"" N_("Erosion:") "\" type=\"float\" indent=\"1\" appearance=\"full\" min=\"0\" max=\"50\">2</param>\n" "</page>\n" "<page name=\"co11tab\" _gui-text=\"Fill color\">\n" "<param name=\"fcolor\" gui-text=\"" N_("Fill color") "\" type=\"color\">-1515870721</param>\n" diff --git a/src/extension/param/bool.cpp b/src/extension/param/bool.cpp index a8a410382..36ea9c556 100644 --- a/src/extension/param/bool.cpp +++ b/src/extension/param/bool.cpp @@ -23,11 +23,13 @@ namespace Extension { /** \brief Use the superclass' allocator and set the \c _value */ ParamBool::ParamBool (const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml) : - Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), _value(false) + Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), + _value(false), _indent(0) { const char * defaultval = NULL; - if (sp_repr_children(xml) != NULL) + if (sp_repr_children(xml) != NULL) { defaultval = sp_repr_children(xml)->content(); + } if (defaultval != NULL && (!strcmp(defaultval, "true") || !strcmp(defaultval, "true") || !strcmp(defaultval, "1"))) { _value = true; @@ -35,6 +37,11 @@ ParamBool::ParamBool (const gchar * name, const gchar * guitext, const gchar * d _value = false; } + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } + gchar * pref_name = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _value = prefs->getBool(extension_pref_root + pref_name, _value); @@ -134,7 +141,10 @@ ParamBool::string (std::string &string) Gtk::Widget * ParamBool::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } + Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_LEFT)); @@ -143,7 +153,7 @@ ParamBool::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signa ParamBoolCheckButton * checkbox = Gtk::manage(new ParamBoolCheckButton(this, doc, node, changeSignal)); checkbox->show(); - hbox->pack_start(*checkbox, false, false); + hbox->pack_start(*checkbox, false, false, _indent); hbox->show(); diff --git a/src/extension/param/bool.h b/src/extension/param/bool.h index a1cd4ce4a..964778f8f 100644 --- a/src/extension/param/bool.h +++ b/src/extension/param/bool.h @@ -20,6 +20,7 @@ class ParamBool : public Parameter { private: /** \brief Internal value. */ bool _value; + int _indent; public: ParamBool(const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml); bool get (const SPDocument * doc, const Inkscape::XML::Node * node); diff --git a/src/extension/param/description.cpp b/src/extension/param/description.cpp index 049b7d5a3..7a68aff62 100644 --- a/src/extension/param/description.cpp +++ b/src/extension/param/description.cpp @@ -39,18 +39,26 @@ ParamDescription::ParamDescription (const gchar * name, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml, AppearanceMode mode) : - Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), _value(NULL), _mode(mode) + Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), + _value(NULL), _mode(mode), _indent(0) { // printf("Building Description\n"); const char * defaultval = NULL; - if (sp_repr_children(xml) != NULL) + if (sp_repr_children(xml) != NULL) { defaultval = sp_repr_children(xml)->content(); + } - if (defaultval != NULL) + if (defaultval != NULL) { _value = g_strdup(defaultval); - + } + _context = xml->attribute("msgctxt"); - + + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } + return; } @@ -58,7 +66,9 @@ ParamDescription::ParamDescription (const gchar * name, Gtk::Widget * ParamDescription::get_widget (SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/, sigc::signal<void> * /*changeSignal*/) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } Glib::ustring newguitext; @@ -69,12 +79,12 @@ ParamDescription::get_widget (SPDocument * /*doc*/, Inkscape::XML::Node * /*node } Gtk::Label * label; - int padding = 12; + int padding = 12 + _indent; if (_mode == HEADER) { label = Gtk::manage(new Gtk::Label(Glib::ustring("<b>") +newguitext + Glib::ustring("</b>"), Gtk::ALIGN_LEFT)); label->set_padding(0,5); label->set_use_markup(true); - padding = 0; + padding = _indent; } else { label = Gtk::manage(new Gtk::Label(newguitext, Gtk::ALIGN_LEFT)); } diff --git a/src/extension/param/description.h b/src/extension/param/description.h index c34e4ee38..a33ff719a 100644 --- a/src/extension/param/description.h +++ b/src/extension/param/description.h @@ -36,6 +36,7 @@ private: /** \brief Internal value. */ gchar * _value; AppearanceMode _mode; + int _indent; const gchar* _context; }; diff --git a/src/extension/param/enum.cpp b/src/extension/param/enum.cpp index 9ed5aac16..e25559eeb 100644 --- a/src/extension/param/enum.cpp +++ b/src/extension/param/enum.cpp @@ -49,7 +49,7 @@ public: ParamComboBox::ParamComboBox (const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml) : - Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext) + Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), _indent(0) { choices = NULL; _value = NULL; @@ -62,7 +62,9 @@ ParamComboBox::ParamComboBox (const gchar * name, const gchar * guitext, const g if (!strcmp(chname, INKSCAPE_EXTENSION_NS "item") || !strcmp(chname, INKSCAPE_EXTENSION_NS "_item")) { Glib::ustring newguitext, newvalue; const char * contents = NULL; - if (node->firstChild()) contents = node->firstChild()->content(); + if (node->firstChild()) { + contents = node->firstChild()->content(); + } if (contents != NULL) { // don't translate when 'item' but do translate when '_item' // NOTE: internal extensions use build_from_mem and don't need _item but @@ -80,10 +82,11 @@ ParamComboBox::ParamComboBox (const gchar * name, const gchar * guitext, const g continue; const char * val = node->attribute("value"); - if (val != NULL) + if (val != NULL) { newvalue = val; - else + } else { newvalue = contents; + } if ( (!newguitext.empty()) && (!newvalue.empty()) ) { // logical error if this is not true here choices = g_slist_append( choices, new enumentry(newvalue, newguitext) ); @@ -95,18 +98,26 @@ ParamComboBox::ParamComboBox (const gchar * name, const gchar * guitext, const g // Initialize _value with the default value from xml // for simplicity : default to the contents of the first xml-child const char * defaultval = NULL; - if (xml->firstChild() && xml->firstChild()->firstChild()) + if (xml->firstChild() && xml->firstChild()->firstChild()) { defaultval = xml->firstChild()->attribute("value"); + } + + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } gchar * pref_name = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name); g_free(pref_name); - if (!paramval.empty()) + if (!paramval.empty()) { defaultval = paramval.data(); - if (defaultval != NULL) + } + if (defaultval != NULL) { _value = g_strdup(defaultval); + } return; } @@ -139,7 +150,9 @@ ParamComboBox::~ParamComboBox (void) const gchar * ParamComboBox::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/) { - if (in == NULL) return NULL; /* Can't have NULL string */ + if (in == NULL) { + return NULL; /* Can't have NULL string */ + } Glib::ustring settext; for (GSList * list = choices; list != NULL; list = g_slist_next(list)) { @@ -150,7 +163,9 @@ ParamComboBox::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node } } if (!settext.empty()) { - if (_value != NULL) g_free(_value); + if (_value != NULL) { + g_free(_value); + } _value = g_strdup(settext.data()); gchar * prefname = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -221,13 +236,15 @@ ParamComboBoxEntry::changed (void) Gtk::Widget * ParamComboBox::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_LEFT)); label->show(); - hbox->pack_start(*label, false, false); + hbox->pack_start(*label, false, false, _indent); ParamComboBoxEntry * combo = Gtk::manage(new ParamComboBoxEntry(this, doc, node, changeSignal)); // add choice strings: @@ -240,7 +257,9 @@ ParamComboBox::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::s settext = entr->guitext; } } - if (!settext.empty()) combo->set_active_text(settext); + if (!settext.empty()) { + combo->set_active_text(settext); + } combo->show(); hbox->pack_start(*combo, true, true); diff --git a/src/extension/param/enum.h b/src/extension/param/enum.h index 3f9707c34..6fc22e8aa 100644 --- a/src/extension/param/enum.h +++ b/src/extension/param/enum.h @@ -33,7 +33,7 @@ private: been allocated in memory. And should be free'd. It is the value of the current selected string */ gchar * _value; - + int _indent; GSList * choices; /**< A table to store the choice strings */ public: diff --git a/src/extension/param/float.cpp b/src/extension/param/float.cpp index 4ef816d61..ea6a70855 100644 --- a/src/extension/param/float.cpp +++ b/src/extension/param/float.cpp @@ -34,27 +34,31 @@ ParamFloat::ParamFloat (const gchar * name, Inkscape::XML::Node * xml, AppearanceMode mode) : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), - _value(0.0), _mode(mode), _min(0.0), _max(10.0) + _value(0.0), _mode(mode), _indent(0), _min(0.0), _max(10.0) { const gchar * defaultval = NULL; - if (sp_repr_children(xml) != NULL) + if (sp_repr_children(xml) != NULL) { defaultval = sp_repr_children(xml)->content(); + } if (defaultval != NULL) { _value = g_ascii_strtod (defaultval,NULL); } const char * maxval = xml->attribute("max"); - if (maxval != NULL) + if (maxval != NULL) { _max = g_ascii_strtod (maxval,NULL); + } const char * minval = xml->attribute("min"); - if (minval != NULL) + if (minval != NULL) { _min = g_ascii_strtod (minval,NULL); + } _precision = 1; const char * precision = xml->attribute("precision"); - if (precision != NULL) + if (precision != NULL) { _precision = atoi(precision); + } /* We're handling this by just killing both values */ if (_max < _min) { @@ -62,6 +66,11 @@ ParamFloat::ParamFloat (const gchar * name, _min = 0.0; } + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } + gchar * pref_name = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _value = prefs->getDouble(extension_pref_root + pref_name, _value); @@ -69,8 +78,12 @@ ParamFloat::ParamFloat (const gchar * name, // std::cout << "New Float:: value: " << _value << " max: " << _max << " min: " << _min << std::endl; - if (_value > _max) _value = _max; - if (_value < _min) _value = _min; + if (_value > _max) { + _value = _max; + } + if (_value < _min) { + _value = _min; + } return; } @@ -88,8 +101,12 @@ float ParamFloat::set (float in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/) { _value = in; - if (_value > _max) _value = _max; - if (_value < _min) _value = _min; + if (_value > _max) { + _value = _max; + } + if (_value < _min) { + _value = _min; + } gchar * prefname = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -154,13 +171,15 @@ ParamFloatAdjustment::val_changed (void) Gtk::Widget * ParamFloat::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_LEFT)); label->show(); - hbox->pack_start(*label, true, true); + hbox->pack_start(*label, true, true, _indent); ParamFloatAdjustment * fadjust = Gtk::manage(new ParamFloatAdjustment(this, doc, node, changeSignal)); diff --git a/src/extension/param/float.h b/src/extension/param/float.h index 2e816d4dc..a2c19441d 100644 --- a/src/extension/param/float.h +++ b/src/extension/param/float.h @@ -42,6 +42,7 @@ private: /** \brief Internal value. */ float _value; AppearanceMode _mode; + int _indent; float _min; float _max; int _precision; diff --git a/src/extension/param/int.cpp b/src/extension/param/int.cpp index 3ed8addd9..090441c17 100644 --- a/src/extension/param/int.cpp +++ b/src/extension/param/int.cpp @@ -34,29 +34,36 @@ ParamInt::ParamInt (const gchar * name, Inkscape::XML::Node * xml, AppearanceMode mode) : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), - _value(0), _mode(mode), _min(0), _max(10) + _value(0), _mode(mode), _indent(0), _min(0), _max(10) { const char * defaultval = NULL; - if (sp_repr_children(xml) != NULL) + if (sp_repr_children(xml) != NULL) { defaultval = sp_repr_children(xml)->content(); + } if (defaultval != NULL) { _value = atoi(defaultval); } const char * maxval = xml->attribute("max"); - if (maxval != NULL) + if (maxval != NULL) { _max = atoi(maxval); + } const char * minval = xml->attribute("min"); - if (minval != NULL) + if (minval != NULL) { _min = atoi(minval); - + } /* We're handling this by just killing both values */ if (_max < _min) { _max = 10; _min = 0; } + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } + gchar *pref_name = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _value = prefs->getInt(extension_pref_root + pref_name, _value); @@ -64,8 +71,12 @@ ParamInt::ParamInt (const gchar * name, // std::cout << "New Int:: value: " << _value << " max: " << _max << " min: " << _min << std::endl; - if (_value > _max) _value = _max; - if (_value < _min) _value = _min; + if (_value > _max) { + _value = _max; + } + if (_value < _min) { + _value = _min; + } return; } @@ -83,8 +94,12 @@ int ParamInt::set (int in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/) { _value = in; - if (_value > _max) _value = _max; - if (_value < _min) _value = _min; + if (_value > _max) { + _value = _max; + } + if (_value < _min) { + _value = _min; + } gchar * prefname = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -139,13 +154,15 @@ ParamIntAdjustment::val_changed (void) Gtk::Widget * ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_LEFT)); label->show(); - hbox->pack_start(*label, true, true); + hbox->pack_start(*label, true, true, _indent); ParamIntAdjustment * fadjust = Gtk::manage(new ParamIntAdjustment(this, doc, node, changeSignal)); diff --git a/src/extension/param/int.h b/src/extension/param/int.h index fce085378..138368ff3 100644 --- a/src/extension/param/int.h +++ b/src/extension/param/int.h @@ -41,6 +41,7 @@ private: /** \brief Internal value. */ int _value; AppearanceMode _mode; + int _indent; int _min; int _max; }; diff --git a/src/extension/param/radiobutton.cpp b/src/extension/param/radiobutton.cpp index 23655baea..a805efc7e 100644 --- a/src/extension/param/radiobutton.cpp +++ b/src/extension/param/radiobutton.cpp @@ -69,9 +69,7 @@ ParamRadioButton::ParamRadioButton (const gchar * name, Inkscape::XML::Node * xml, AppearanceMode mode) : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), - _value(0), - _mode(mode), - choices(0) + _value(0), _mode(mode), _indent(0), choices(0) { // Read XML tree to add enumeration items: // printf("Extension Constructor: "); @@ -95,16 +93,17 @@ ParamRadioButton::ParamRadioButton (const gchar * name, } else { newguitext = new Glib::ustring(contents); } - } else + } else { continue; - + } const char * val = child_repr->attribute("value"); - if (val != NULL) + if (val != NULL) { newvalue = new Glib::ustring(val); - else + } else { newvalue = new Glib::ustring(contents); + } if ( (newguitext) && (newvalue) ) { // logical error if this is not true here choices = g_slist_append( choices, new optionentry(newvalue, newguitext) ); @@ -117,18 +116,26 @@ ParamRadioButton::ParamRadioButton (const gchar * name, // Initialize _value with the default value from xml // for simplicity : default to the contents of the first xml-child const char * defaultval = NULL; - if (choices) + if (choices) { defaultval = ((optionentry*) choices->data)->value->c_str(); + } + + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } gchar * pref_name = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name); g_free(pref_name); - if (!paramval.empty()) + if (!paramval.empty()) { defaultval = paramval.data(); - if (defaultval != NULL) + } + if (defaultval != NULL) { _value = g_strdup(defaultval); // allocate space for _value + } return; } @@ -161,7 +168,9 @@ ParamRadioButton::~ParamRadioButton (void) const gchar * ParamRadioButton::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/) { - if (in == NULL) return NULL; /* Can't have NULL string */ + if (in == NULL) { + return NULL; /* Can't have NULL string */ + } Glib::ustring * settext = NULL; for (GSList * list = choices; list != NULL; list = g_slist_next(list)) { @@ -172,7 +181,9 @@ ParamRadioButton::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::No } } if (settext) { - if (_value != NULL) g_free(_value); + if (_value != NULL) { + g_free(_value); + } _value = g_strdup(settext->c_str()); gchar * prefname = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -269,14 +280,16 @@ protected: Gtk::Widget * ParamRadioButton::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); Gtk::VBox * vbox = Gtk::manage(new Gtk::VBox(false, 0)); Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_LEFT, Gtk::ALIGN_TOP)); label->show(); - hbox->pack_start(*label, false, false); + hbox->pack_start(*label, false, false, _indent); Gtk::ComboBoxText* cbt = 0; bool comboSet = false; diff --git a/src/extension/param/radiobutton.h b/src/extension/param/radiobutton.h index ea8440de2..e15afdbc7 100644 --- a/src/extension/param/radiobutton.h +++ b/src/extension/param/radiobutton.h @@ -55,7 +55,7 @@ private: It is the value of the current selected string */ gchar * _value; AppearanceMode _mode; - + int _indent; GSList * choices; /**< A table to store the choice strings */ }; /* class ParamRadioButton */ diff --git a/src/extension/param/string.cpp b/src/extension/param/string.cpp index e32224332..18cc754a6 100644 --- a/src/extension/param/string.cpp +++ b/src/extension/param/string.cpp @@ -44,10 +44,14 @@ ParamString::~ParamString(void) const gchar * ParamString::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/) { - if (in == NULL) return NULL; /* Can't have NULL string */ + if (in == NULL) { + return NULL; /* Can't have NULL string */ + } - if (_value != NULL) + if (_value != NULL) { g_free(_value); + } + _value = g_strdup(in); gchar * prefname = this->pref_name(); @@ -62,31 +66,40 @@ ParamString::set (const gchar * in, SPDocument * /*doc*/, Inkscape::XML::Node * void ParamString::string (std::string &string) { - if (_value == NULL) + if (_value == NULL) { return; - + } string += _value; return; } /** \brief Initialize the object, to do that, copy the data. */ ParamString::ParamString (const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml) : - Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), _value(NULL) + Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, ext), + _value(NULL), _indent(0) { const char * defaultval = NULL; - if (sp_repr_children(xml) != NULL) + if (sp_repr_children(xml) != NULL) { defaultval = sp_repr_children(xml)->content(); + } + + const char * indent = xml->attribute("indent"); + if (indent != NULL) { + _indent = atoi(indent) * 12; + } gchar * pref_name = this->pref_name(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring paramval = prefs->getString(extension_pref_root + pref_name); g_free(pref_name); - if (!paramval.empty()) + if (!paramval.empty()) { defaultval = paramval.data(); - if (defaultval != NULL) + } + if (defaultval != NULL) { _value = g_strdup(defaultval); - + } + _max_length = 0; return; @@ -106,8 +119,9 @@ public: */ ParamStringEntry (ParamString * pref, SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) : Gtk::Entry(), _pref(pref), _doc(doc), _node(node), _changeSignal(changeSignal) { - if (_pref->get(NULL, NULL) != NULL) + if (_pref->get(NULL, NULL) != NULL) { this->set_text(Glib::ustring(_pref->get(NULL, NULL))); + } this->set_max_length(_pref->getMaxLength()); //Set the max lenght - default zero means no maximum this->signal_changed().connect(sigc::mem_fun(this, &ParamStringEntry::changed_text)); }; @@ -139,13 +153,15 @@ ParamStringEntry::changed_text (void) Gtk::Widget * ParamString::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal) { - if (_gui_hidden) return NULL; + if (_gui_hidden) { + return NULL; + } Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_LEFT)); label->show(); - hbox->pack_start(*label, false, false); + hbox->pack_start(*label, false, false, _indent); ParamStringEntry * textbox = new ParamStringEntry(this, doc, node, changeSignal); textbox->show(); diff --git a/src/extension/param/string.h b/src/extension/param/string.h index 10f45e5ac..a1892fe9c 100644 --- a/src/extension/param/string.h +++ b/src/extension/param/string.h @@ -23,6 +23,7 @@ private: gchar * _value; /** \brief Internal value. This indicates the maximum leght of the string. Zero meaning unlimited. */ + int _indent; gint _max_length; public: ParamString(const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml); |
