summaryrefslogtreecommitdiffstats
path: root/src/helper/action.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/helper/action.cpp')
-rw-r--r--src/helper/action.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/helper/action.cpp b/src/helper/action.cpp
index 9584c5dae..1c8c7ec15 100644
--- a/src/helper/action.cpp
+++ b/src/helper/action.cpp
@@ -13,7 +13,6 @@
#include <string.h>
-
#include "helper/action.h"
static void sp_action_class_init (SPActionClass *klass);
@@ -206,6 +205,37 @@ sp_action_set_sensitive (SPAction *action, unsigned int sensitive)
}
}
+
+/**
+ * Change name for all actions that can be taken with the action.
+ */
+void
+sp_action_set_name (SPAction *action, Glib::ustring name)
+{
+ nr_return_if_fail (action != NULL);
+ nr_return_if_fail (SP_IS_ACTION (action));
+
+ NRActiveObject *aobject;
+ g_free(action->name);
+ action->name = g_strdup(name.c_str());
+ aobject = (NRActiveObject *) action;
+ if (aobject->callbacks) {
+ unsigned int i;
+ for (i = 0; i < aobject->callbacks->length; i++) {
+ NRObjectListener *listener;
+ SPActionEventVector *avector;
+ listener = aobject->callbacks->listeners + i;
+ avector = (SPActionEventVector *) listener->vector;
+ if ((listener->size >= sizeof (SPActionEventVector)) && avector->set_name) {
+ avector->set_name (action, name, listener->data);
+ }
+ }
+ }
+}
+
+
+
+
/**
* Return View associated with the action.
*/