summaryrefslogtreecommitdiffstats
path: root/src/extension/param/string.cpp
diff options
context:
space:
mode:
authorNicolas Dufour <nicoduf@yahoo.fr>2011-08-06 18:48:21 +0000
committerJazzyNico <nicoduf@yahoo.fr>2011-08-06 18:48:21 +0000
commitec8d0b742153e4715efd13fb19607c3167cc2092 (patch)
treed26d7c4e09e293481d9cf5af322b4178f6deb605 /src/extension/param/string.cpp
parentPatch from Yu-Jie Lin for bug 820863 to add the option to disable libwpg (diff)
downloadinkscape-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/extension/param/string.cpp')
-rw-r--r--src/extension/param/string.cpp40
1 files changed, 28 insertions, 12 deletions
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();