diff --git a/src/include/v3270/actions.h b/src/include/v3270/actions.h index 684bcd8..c654f9c 100644 --- a/src/include/v3270/actions.h +++ b/src/include/v3270/actions.h @@ -149,6 +149,7 @@ GVariant * (*get_state)(GAction *action, GtkWidget *terminal); const gchar * (*translate)(GAction *action, const gchar *text); + const gchar * (*get_name)(GAction *action); const gchar * (*get_icon_name)(GAction *action); const gchar * (*get_label)(GAction *action); const gchar * (*get_tooltip)(GAction *action); @@ -198,6 +199,7 @@ V3270Action parent; // Fixed data + const gchar * name; const gchar * icon_name; const gchar * label; const gchar * tooltip; diff --git a/src/terminal/actions/action.c b/src/terminal/actions/action.c index 72e6030..2dfb4dc 100644 --- a/src/terminal/actions/action.c +++ b/src/terminal/actions/action.c @@ -46,6 +46,7 @@ static const gchar * get_icon_name(GAction *action); static const gchar * get_label(GAction *action); static const gchar * get_tooltip(GAction *action); + static const gchar * get_name(GAction *action); static void change_widget(GAction *action, GtkWidget *from, GtkWidget *to); static void finalize(GObject *object); @@ -88,6 +89,7 @@ klass->change_widget = change_widget; klass->get_enabled = get_enabled; klass->get_state = get_state; + klass->get_name = get_name; klass->translate = translate; klass->get_icon_name = get_icon_name; @@ -396,7 +398,7 @@ } const gchar * iface_get_name(GAction *action) { - return V3270_ACTION_GET_DESCRIPTOR(action)->name; + return V3270_ACTION_GET_CLASS(action)->get_name(action); } GVariant * iface_get_state(GAction *object) { @@ -497,6 +499,10 @@ } + const gchar * get_name(GAction *action) { + return V3270_ACTION_GET_DESCRIPTOR(action)->name; + } + const gchar * v3270_action_get_icon_name(GAction *action) { return V3270_ACTION_GET_CLASS(action)->get_icon_name(action); } diff --git a/src/terminal/actions/simple.c b/src/terminal/actions/simple.c index e240b4b..9d9fbfa 100644 --- a/src/terminal/actions/simple.c +++ b/src/terminal/actions/simple.c @@ -57,6 +57,10 @@ return V3270_SIMPLE_ACTION(action)->tooltip; } + static const gchar * get_name(GAction *action) { + return V3270_SIMPLE_ACTION(action)->name; + } + static void dispose(GObject *object) { V3270SimpleAction *action = V3270_SIMPLE_ACTION(object); @@ -71,6 +75,7 @@ static void V3270SimpleAction_class_init(V3270SimpleActionClass *klass) { + klass->parent_class.get_name = get_name; klass->parent_class.get_icon_name = get_icon_name; klass->parent_class.get_label = get_label; klass->parent_class.get_tooltip = get_tooltip; -- libgit2 0.21.2