aboutsummaryrefslogtreecommitdiff
path: root/libmessaging-menu
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2012-11-27 16:18:18 +0100
committerLars Uebernickel <lars.uebernickel@canonical.com>2012-11-27 16:18:18 +0100
commit7c7c408e9fe4e1cddedae9a6882c714ac3e161d3 (patch)
tree7d4c93fad784c52d1193ff393fdd8134ec1759f1 /libmessaging-menu
parente8e99703ef0c565f07a9d1eba03c1003d82ff697 (diff)
downloadayatana-indicator-messages-7c7c408e9fe4e1cddedae9a6882c714ac3e161d3.tar.gz
ayatana-indicator-messages-7c7c408e9fe4e1cddedae9a6882c714ac3e161d3.tar.bz2
ayatana-indicator-messages-7c7c408e9fe4e1cddedae9a6882c714ac3e161d3.zip
Move 'activate' signal into MessagingMenuMessage
And add parameters 'action' and 'parameter' (though they are not set yet).
Diffstat (limited to 'libmessaging-menu')
-rw-r--r--libmessaging-menu/messaging-menu-app.c24
-rw-r--r--libmessaging-menu/messaging-menu-message.c20
2 files changed, 21 insertions, 23 deletions
diff --git a/libmessaging-menu/messaging-menu-app.c b/libmessaging-menu/messaging-menu-app.c
index 491c123..cea0eb9 100644
--- a/libmessaging-menu/messaging-menu-app.c
+++ b/libmessaging-menu/messaging-menu-app.c
@@ -126,7 +126,6 @@ enum {
enum {
ACTIVATE_SOURCE,
- ACTIVATE_MESSAGE,
STATUS_CHANGED,
N_SIGNALS
};
@@ -366,27 +365,6 @@ messaging_menu_app_class_init (MessagingMenuAppClass *class)
G_TYPE_NONE, 1, G_TYPE_STRING);
/**
- * MessagingMenuApp::activate-message:
- * @mmapp: the #MessagingMenuApp
- * @message: the activated #MessagingMenuMessage
- *
- * Emitted when the user has activated a message. The message is
- * immediately removed from the application's menu, handlers of this
- * signal do not need to call messaging_menu_app_remove_message().
- *
- * To get notified about the activation of a specific message, set the
- * signal's detail to the message id.
- */
- signals[ACTIVATE_MESSAGE] = g_signal_new ("activate-message",
- MESSAGING_MENU_TYPE_APP,
- G_SIGNAL_RUN_FIRST |
- G_SIGNAL_DETAILED,
- 0,
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1, MESSAGING_MENU_TYPE_MESSAGE);
-
- /**
* MessagingMenuApp::status-changed:
* @mmapp: the #MessagingMenuApp
* @status: a #MessagingMenuStatus
@@ -576,7 +554,7 @@ messaging_menu_app_activate_message (IndicatorMessagesApplication *app_interface
msg = g_hash_table_lookup (app->messages, message_id);
if (msg)
{
- g_signal_emit (app, signals[ACTIVATE_MESSAGE], g_quark_from_string (message_id), msg);
+ g_signal_emit_by_name (msg, "activate", NULL, NULL);
/* Activate implies removing the message, no need for MessageRemoved */
messaging_menu_app_remove_message_internal (app, message_id);
diff --git a/libmessaging-menu/messaging-menu-message.c b/libmessaging-menu/messaging-menu-message.c
index cf050d3..a17cdb6 100644
--- a/libmessaging-menu/messaging-menu-message.c
+++ b/libmessaging-menu/messaging-menu-message.c
@@ -245,6 +245,26 @@ messaging_menu_message_class_init (MessagingMenuMessageClass *klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (klass, NUM_PROPERTIES, properties);
+
+ /**
+ * MessagingMenuMessage::activate:
+ * @msg: the #MessagingMenuMessage
+ * @action: (allow-none): the id of activated action, or %NULL
+ * @parameter: (allow-none): activation parameter, or %NULL
+ *
+ * Emitted when the user has activated the message. The message is
+ * immediately removed from the application's menu, handlers of this
+ * signal do not need to call messaging_menu_app_remove_message().
+ */
+ g_signal_new ("activate",
+ MESSAGING_MENU_TYPE_MESSAGE,
+ G_SIGNAL_RUN_FIRST | G_SIGNAL_DETAILED,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE, 2,
+ G_TYPE_STRING,
+ G_TYPE_VARIANT);
}
static void