/* ------------------ * preferences dialog function * ------------------ */ static PurplePluginPrefFrame * get_plugin_pref_frame(PurplePlugin *plugin) { PurplePluginPrefFrame *frame; PurplePluginPref *ppref; gpgme_error_t error; gpgme_ctx_t ctx; gpgme_key_t key; // create preferences frame frame = purple_plugin_pref_frame_new(); // connect to gpgme gpgme_check_version (NULL); error = gpgme_new(&ctx); if (error) { purple_debug_error(PLUGIN_ID,"gpgme_new failed: %s %s\n",gpgme_strsource (error), gpgme_strerror (error)); return NULL; } // create key chooser preference ppref = purple_plugin_pref_new_with_name_and_label(PREF_MY_KEY,"My key"); purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(ppref, "None", ""); // list keys (secret keys) error = gpgme_op_keylist_start (ctx,NULL,1); if (error == GPG_ERR_NO_ERROR) { while (!error) { error = gpgme_op_keylist_next (ctx, &key); if (error) break; // add key to preference chooser //TODO: find something better for g_strdup, or some possibility to free memory after preferences dialog closed purple_plugin_pref_add_choice(ppref, g_strdup(key->uids->uid), g_strdup(key->subkeys->fpr)); purple_debug_info(PLUGIN_ID,"Found secret key for: %s has fpr %s\n",key->uids->uid,key->subkeys->fpr); gpgme_key_release (key); } }else { purple_debug_error(PLUGIN_ID,"gpgme_op_keylist_start failed: %s %s\n",gpgme_strsource (error), gpgme_strerror (error)); } // close gpgme connection gpgme_release (ctx); purple_plugin_pref_frame_add(frame, ppref); return frame; }
static PurplePluginPrefFrame* get_plugin_pref_frame(PurplePlugin* plugin) { PurplePluginPrefFrame* frame = purple_plugin_pref_frame_new(); PurplePluginPref* pref = NULL; pref = purple_plugin_pref_new_with_label("Prefix preferences"); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(USERCAST_CONF_PREFIX, "Nick prefix"); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(USERCAST_CONF_PREFIX_POLICY, "Prefix use policy"); purple_plugin_pref_set_type(pref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(pref, "Always", GINT_TO_POINTER(POLICY_ALWAYS)); purple_plugin_pref_add_choice(pref, "First word", GINT_TO_POINTER(POLICY_FIRST_WORD)); purple_plugin_pref_add_choice(pref, "Last word", GINT_TO_POINTER(POLICY_LAST_WORD)); purple_plugin_pref_add_choice(pref, "Never", GINT_TO_POINTER(POLICY_NEVER)); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_label("Postfix preferences"); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(USERCAST_CONF_POSTFIX, "Nick postfix"); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(USERCAST_CONF_POSTFIX_POLICY, "Postfix use policy"); purple_plugin_pref_set_type(pref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(pref, "Always", GINT_TO_POINTER(POLICY_ALWAYS)); purple_plugin_pref_add_choice(pref, "First word", GINT_TO_POINTER(POLICY_FIRST_WORD)); purple_plugin_pref_add_choice(pref, "Last word", GINT_TO_POINTER(POLICY_LAST_WORD)); purple_plugin_pref_add_choice(pref, "Never", GINT_TO_POINTER(POLICY_NEVER)); purple_plugin_pref_frame_add(frame, pref); return frame; }
///////////////////////////////////////////////////////////////////////////// // Builds the plugin configuration frame. ///////////////////////////////////////////////////////////////////////////// static PurplePluginPrefFrame* get_config_frame(PurplePlugin *plugin) { PurplePluginPrefFrame *frame; PurplePluginPref *pref; frame = purple_plugin_pref_frame_new(); pref = purple_plugin_pref_new_with_name_and_label(LNR_PREF_MESSAGE, "Raise this message when the computer is locked:"); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(LNR_PREF_STATUS, "Which status should be set?"); purple_plugin_pref_set_type(pref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(pref, "Away", GINT_TO_POINTER(PURPLE_STATUS_AWAY)); purple_plugin_pref_add_choice(pref, "Extended Away", GINT_TO_POINTER(PURPLE_STATUS_EXTENDED_AWAY)); purple_plugin_pref_add_choice(pref, "Unavailable/DND", GINT_TO_POINTER(PURPLE_STATUS_UNAVAILABLE)); purple_plugin_pref_add_choice(pref, "Invisible", GINT_TO_POINTER(PURPLE_STATUS_INVISIBLE)); purple_plugin_pref_add_choice(pref, "Offline", GINT_TO_POINTER(PURPLE_STATUS_OFFLINE)); purple_plugin_pref_frame_add(frame, pref); return frame; }
static PurplePluginPrefFrame * get_plugin_pref_frame(PurplePlugin *plugin) { PurplePluginPrefFrame *frame; PurplePluginPref *pref; frame = purple_plugin_pref_frame_new(); /* XXX: Is there a better way than this? There really should be. */ pref = purple_plugin_pref_new_with_name_and_label(PREF_PATH, _("Path to save the files in\n" "(Please provide the full path)")); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(PREF_STRANGER, _("When a file-transfer request arrives from a user who is\n" "*not* on your buddy list:")); purple_plugin_pref_set_type(pref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(pref, _("Ask"), GINT_TO_POINTER(FT_ASK)); purple_plugin_pref_add_choice(pref, _("Auto Accept"), GINT_TO_POINTER(FT_ACCEPT)); purple_plugin_pref_add_choice(pref, _("Auto Reject"), GINT_TO_POINTER(FT_REJECT)); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(PREF_NOTIFY, _("Notify with a popup when an autoaccepted file transfer is complete\n" "(only when there's no conversation with the sender)")); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(PREF_NEWDIR, _("Create a new directory for each user")); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name_and_label(PREF_ESCAPE, _("Escape the filenames")); purple_plugin_pref_frame_add(frame, pref); return frame; }
static PurplePluginPrefFrame * plugin_config_frame(PurplePlugin *plugin) { PurplePluginPrefFrame *frame; PurplePluginPref *ppref; GList *l = NULL; PurpleKeyValuePair *pair; frame = purple_plugin_pref_frame_new(); ppref = purple_plugin_pref_new_with_name_and_label( LOCALE_PREF, _("My language:")); purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); for(l = supported_languages; l; l = l->next) { pair = (PurpleKeyValuePair *) l->data; purple_plugin_pref_add_choice(ppref, pair->value, pair->key); } purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( SERVICE_PREF, _("Use service:")); purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(ppref, _("Google Translate"), "google"); purple_plugin_pref_add_choice(ppref, _("Microsoft Translator"), "bing"); purple_plugin_pref_frame_add(frame, ppref); return frame; }
/** * Create the plugin's preferences window * * @param[in] plugin Unused * @return Pointer to the newly created preferences window **/ static PurplePluginPrefFrame *get_plugin_pref_frame(U PurplePlugin *plugin) { PurplePluginPrefFrame *frame; /*< The plugin preferences window frame */ PurplePluginPref *ppref; /*< A plugin preference option */ frame = purple_plugin_pref_frame_new(); /* TRANSLATORS: This is the name of the plugin preference for deciding the orientation of the panes created for the Buddy List and conversations. */ ppref = purple_plugin_pref_new_with_name_and_label( PREF_SIDE, _("" "Conversation pane location")); purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); /* TRANSLATORS: This value means: Buddy List left, conversations right. */ purple_plugin_pref_add_choice(ppref, _("Right of Buddy List"), "right"); /* TRANSLATORS: This value means: conversations left, Buddy List right. */ purple_plugin_pref_add_choice(ppref, _("Left of Buddy List"), "left"); /* TRANSLATORS: This value means: conversations top, Buddy List bottom. */ purple_plugin_pref_add_choice(ppref, _("Above Buddy List"), "top"); /* TRANSLATORS: This value means: Buddy List top, conversations bottom. */ purple_plugin_pref_add_choice(ppref, _("Below Buddy List"), "bottom"); purple_plugin_pref_frame_add(frame, ppref); return frame; }
static PurplePluginPrefFrame * get_plugin_pref_frame(PurplePlugin *plugin) { PurplePluginPrefFrame *frame; PurplePluginPref *ppref; char *tmp; frame = purple_plugin_pref_frame_new(); ppref = purple_plugin_pref_new_with_label(_("Timestamp Format Options")); purple_plugin_pref_frame_add(frame, ppref); tmp = g_strdup_printf(_("_Force 24-hour time format")); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/gtk/timestamp_format/force_24hr", tmp); purple_plugin_pref_frame_add(frame, ppref); g_free(tmp); ppref = purple_plugin_pref_new_with_label(_("Show dates in...")); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/gtk/timestamp_format/use_dates/conversation", _("Co_nversations:")); purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(ppref, _("For delayed messages"), "automatic"); purple_plugin_pref_add_choice(ppref, _("For delayed messages and in chats"), "chats"); purple_plugin_pref_add_choice(ppref, _("Always"), "always"); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/gtk/timestamp_format/use_dates/log", _("_Message Logs:")); purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(ppref, _("For delayed messages"), "automatic"); purple_plugin_pref_add_choice(ppref, _("For delayed messages and in chats"), "chats"); purple_plugin_pref_add_choice(ppref, _("Always"), "always"); purple_plugin_pref_frame_add(frame, ppref); return frame; }