--- a/protocols/demo/purpledemoprotocolactions.c Wed May 01 15:24:10 2024 -0500
+++ b/protocols/demo/purpledemoprotocolactions.c Mon May 06 00:07:59 2024 -0500
@@ -190,217 +190,6 @@
*****************************************************************************/
-purple_demo_protocol_request_input_ok_cb(G_GNUC_UNUSED gpointer data,
- g_message(_("Successfully requested input from UI: %s"), value);
-purple_demo_protocol_request_input_cancel_cb(G_GNUC_UNUSED gpointer data,
- G_GNUC_UNUSED const char *value)
- g_message(_("UI cancelled input request"));
-purple_demo_protocol_request_input_activate(G_GNUC_UNUSED GSimpleAction *action,
- G_GNUC_UNUSED gpointer data)
- PurpleConnection *connection = NULL;
- const gchar *account_id = NULL;
- PurpleAccountManager *manager = NULL;
- PurpleAccount *account = NULL;
- gboolean multiline = FALSE, masked = FALSE;
- char *secondary = NULL;
- if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
- g_critical("Demo failure action parameter is of incorrect type %s",
- g_variant_get_type_string(parameter));
- account_id = g_variant_get_string(parameter, NULL);
- manager = purple_account_manager_get_default();
- account = purple_account_manager_find_by_id(manager, account_id);
- connection = purple_account_get_connection(account);
- g_clear_object(&account);
- /* Alternate through all four combinations of {masked, multiline}. */
- masked = form % 2 == 1;
- multiline = (form / 2) % 2 == 1;
- secondary = g_strdup_printf(_("The input will be %s %s."),
- masked ? "masked" : "unmasked",
- multiline ? "multiple lines" : "single line");
- purple_request_input(connection, _("Request Input Demo"),
- _("Please input some text…"), secondary, _("default"),
- multiline, masked, NULL,
- G_CALLBACK(purple_demo_protocol_request_input_ok_cb),
- G_CALLBACK(purple_demo_protocol_request_input_cancel_cb),
- purple_request_cpar_from_connection(connection), NULL);
-purple_demo_protocol_request_choice_ok_cb(G_GNUC_UNUSED gpointer data,
- const char *text = value;
- g_message(_("Successfully requested a choice from UI: %s"), text);
-purple_demo_protocol_request_choice_cancel_cb(G_GNUC_UNUSED gpointer data,
- G_GNUC_UNUSED gpointer value)
- g_message(_("UI cancelled choice request"));
-purple_demo_protocol_request_choice_activate(G_GNUC_UNUSED GSimpleAction *action,
- G_GNUC_UNUSED gpointer data)
- PurpleConnection *connection = NULL;
- const gchar *account_id = NULL;
- PurpleAccountManager *manager = NULL;
- PurpleAccount *account = NULL;
- if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
- g_critical("Demo failure action parameter is of incorrect type %s",
- g_variant_get_type_string(parameter));
- account_id = g_variant_get_string(parameter, NULL);
- manager = purple_account_manager_get_default();
- account = purple_account_manager_find_by_id(manager, account_id);
- connection = purple_account_get_connection(account);
- g_clear_object(&account);
- purple_request_choice(connection, _("Request Choice Demo"),
- _("Please pick an option…"), NULL, _("foo"),
- G_CALLBACK(purple_demo_protocol_request_choice_ok_cb),
- G_CALLBACK(purple_demo_protocol_request_choice_cancel_cb),
- purple_request_cpar_from_connection(connection),
- NULL, _("foo"), "foo", _("bar"), "bar",
- _("baz"), "baz", NULL);
-purple_demo_protocol_request_action_cb(G_GNUC_UNUSED gpointer data, int action)
- g_message(_("Successfully requested an action from the UI: %d"), action);
-purple_demo_protocol_request_action_activate(G_GNUC_UNUSED GSimpleAction *action,
- G_GNUC_UNUSED gpointer data)
- PurpleConnection *connection = NULL;
- const gchar *account_id = NULL;
- PurpleAccountManager *manager = NULL;
- PurpleAccount *account = NULL;
- if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
- g_critical("Demo failure action parameter is of incorrect type %s",
- g_variant_get_type_string(parameter));
- account_id = g_variant_get_string(parameter, NULL);
- manager = purple_account_manager_get_default();
- account = purple_account_manager_find_by_id(manager, account_id);
- connection = purple_account_get_connection(account);
- g_clear_object(&account);
- purple_request_action(connection, _("Request Action Demo"),
- _("Please choose an action…"), NULL, 1,
- purple_request_cpar_from_connection(connection),
- _("foo"), purple_demo_protocol_request_action_cb,
- _("bar"), purple_demo_protocol_request_action_cb,
- _("baz"), purple_demo_protocol_request_action_cb);
-} PurpleDemoProtocolWaitData;
-purple_demo_protocol_request_wait_pulse_cb(gpointer data) {
- PurpleDemoProtocolWaitData *wait = data;
- purple_request_wait_pulse(wait->ui_handle);
- return G_SOURCE_CONTINUE;
-purple_demo_protocol_request_wait_cancel_cb(G_GNUC_UNUSED gpointer data) {
- g_message(_("UI cancelled wait request"));
-purple_demo_protocol_request_wait_close_cb(gpointer data) {
- PurpleDemoProtocolWaitData *wait = data;
- g_source_remove(wait->id);
-purple_demo_protocol_request_wait_activate(G_GNUC_UNUSED GSimpleAction *action,
- G_GNUC_UNUSED gpointer data)
- PurpleConnection *connection = NULL;
- const gchar *account_id = NULL;
- PurpleAccountManager *manager = NULL;
- PurpleAccount *account = NULL;
- PurpleDemoProtocolWaitData *wait = NULL;
- if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
- g_critical("Demo failure action parameter is of incorrect type %s",
- g_variant_get_type_string(parameter));
- account_id = g_variant_get_string(parameter, NULL);
- manager = purple_account_manager_get_default();
- account = purple_account_manager_find_by_id(manager, account_id);
- connection = purple_account_get_connection(account);
- g_clear_object(&account);
- wait = g_new0(PurpleDemoProtocolWaitData, 1);
- wait->ui_handle = purple_request_wait(connection, _("Request Wait Demo"),
- _("Please wait…"), NULL, TRUE,
- purple_demo_protocol_request_wait_cancel_cb,
- purple_request_cpar_from_connection(connection),
- wait->id = g_timeout_add(250, purple_demo_protocol_request_wait_pulse_cb,
- purple_request_add_close_notify(wait->ui_handle,
- purple_demo_protocol_request_wait_close_cb,
purple_demo_protocol_request_fields_ok_cb(G_GNUC_UNUSED gpointer data,
@@ -635,79 +424,6 @@
g_clear_object(&account);
-purple_demo_protocol_request_path_ok_cb(gpointer data, const char *filename) {
- const char *type = data;
- g_message(_("Successfully requested %s from UI: %s"), type, filename);
-purple_demo_protocol_request_path_cancel_cb(gpointer data) {
- const char *type = data;
- g_message(_("UI cancelled %s request"), type);
-purple_demo_protocol_request_file_activate(G_GNUC_UNUSED GSimpleAction *action,
- G_GNUC_UNUSED gpointer data)
- PurpleConnection *connection = NULL;
- const gchar *account_id = NULL;
- PurpleAccountManager *manager = NULL;
- PurpleAccount *account = NULL;
- if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
- g_critical("Demo failure action parameter is of incorrect type %s",
- g_variant_get_type_string(parameter));
- account_id = g_variant_get_string(parameter, NULL);
- manager = purple_account_manager_get_default();
- account = purple_account_manager_find_by_id(manager, account_id);
- connection = purple_account_get_connection(account);
- g_clear_object(&account);
- purple_request_file(connection, _("Request File Demo"),
- G_CALLBACK(purple_demo_protocol_request_path_ok_cb),
- G_CALLBACK(purple_demo_protocol_request_path_cancel_cb),
- purple_request_cpar_from_connection(connection),
-purple_demo_protocol_request_folder_activate(G_GNUC_UNUSED GSimpleAction *action,
- G_GNUC_UNUSED gpointer data)
- PurpleConnection *connection = NULL;
- const gchar *account_id = NULL;
- PurpleAccountManager *manager = NULL;
- PurpleAccount *account = NULL;
- if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
- g_critical("Demo failure action parameter is of incorrect type %s",
- g_variant_get_type_string(parameter));
- account_id = g_variant_get_string(parameter, NULL);
- manager = purple_account_manager_get_default();
- account = purple_account_manager_find_by_id(manager, account_id);
- connection = purple_account_get_connection(account);
- g_clear_object(&account);
- purple_request_folder(connection, _("Request Folder Demo"), NULL,
- G_CALLBACK(purple_demo_protocol_request_path_ok_cb),
- G_CALLBACK(purple_demo_protocol_request_path_cancel_cb),
- purple_request_cpar_from_connection(connection),
/******************************************************************************
* Contact action implementations
*****************************************************************************/
@@ -816,33 +532,9 @@
.activate = purple_demo_protocol_remote_add,
- .name = "request-input",
- .activate = purple_demo_protocol_request_input_activate,
- .name = "request-choice",
- .activate = purple_demo_protocol_request_choice_activate,
- .name = "request-action",
- .activate = purple_demo_protocol_request_action_activate,
- .name = "request-wait",
- .activate = purple_demo_protocol_request_wait_activate,
.name = "request-fields",
.activate = purple_demo_protocol_request_fields_activate,
- .name = "request-file",
- .activate = purple_demo_protocol_request_file_activate,
- .name = "request-folder",
- .activate = purple_demo_protocol_request_folder_activate,
gsize nentries = G_N_ELEMENTS(entries);
@@ -859,7 +551,6 @@
G_GNUC_UNUSED PurpleConnection *connection)
@@ -892,53 +583,12 @@
g_menu_append_item(menu, item);
- submenu = g_menu_new();
- item = g_menu_item_new(_("Input"), "prpl-demo.request-input");
- g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
- item = g_menu_item_new(_("Choice"), "prpl-demo.request-choice");
- g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
- item = g_menu_item_new(_("Action"), "prpl-demo.request-action");
- g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
- item = g_menu_item_new(_("Wait"), "prpl-demo.request-wait");
+ item = g_menu_item_new(_("Request Fields"), "prpl-demo.request-fields"); g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
- item = g_menu_item_new(_("Fields"), "prpl-demo.request-fields");
- g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
+ g_menu_append_item(menu, item); - item = g_menu_item_new(_("File"), "prpl-demo.request-file");
- g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
- item = g_menu_item_new(_("Folder"), "prpl-demo.request-folder");
- g_menu_item_set_attribute(item, PURPLE_MENU_ATTRIBUTE_DYNAMIC_TARGET, "s",
- g_menu_append_item(submenu, item);
- g_menu_append_submenu(menu, _("Trigger requests"), G_MENU_MODEL(submenu));
- g_object_unref(submenu);