comparison src/protocols/oscar/oscar.c @ 2170:c24595d3c364

[gaim-migrate @ 2180] buddy_menu committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 27 Aug 2001 07:11:50 +0000
parents edf8c5a70e5b
children cdf43acb5b83
comparison
equal deleted inserted replaced
2169:b7807144bf44 2170:c24595d3c364
2889 if (uc & UC_UNCONFIRMED) 2889 if (uc & UC_UNCONFIRMED)
2890 return (char **)dt_icon_xpm; 2890 return (char **)dt_icon_xpm;
2891 return NULL; 2891 return NULL;
2892 } 2892 }
2893 2893
2894 static void oscar_info(GtkObject *obj, char *who) {
2895 struct gaim_connection *gc = (struct gaim_connection *)gtk_object_get_user_data(obj);
2896 serv_get_info(gc, who);
2897 }
2898
2899 static void oscar_away_msg(GtkObject *obj, char *who) {
2900 struct gaim_connection *gc = (struct gaim_connection *)gtk_object_get_user_data(obj);
2901 serv_get_away_msg(gc, who);
2902 }
2903
2904 static int gaim_directim_initiate(struct aim_session_t *sess, struct command_rx_struct *command, ...) { 2894 static int gaim_directim_initiate(struct aim_session_t *sess, struct command_rx_struct *command, ...) {
2905 va_list ap; 2895 va_list ap;
2906 struct gaim_connection *gc = sess->aux_data; 2896 struct gaim_connection *gc = sess->aux_data;
2907 struct oscar_data *od = (struct oscar_data *)gc->proto_data; 2897 struct oscar_data *od = (struct oscar_data *)gc->proto_data;
2908 struct aim_directim_priv *priv; 2898 struct aim_directim_priv *priv;
3046 do_error_dialog(_("Unable to open Direct IM"), _("Error")); 3036 do_error_dialog(_("Unable to open Direct IM"), _("Error"));
3047 g_free(dim); 3037 g_free(dim);
3048 } 3038 }
3049 } 3039 }
3050 3040
3051 static void oscar_ask_direct_im(GtkObject *m, gchar *who) { 3041 static void oscar_ask_direct_im(struct gaim_connection *gc, gchar *who) {
3052 char buf[BUF_LONG]; 3042 char buf[BUF_LONG];
3053 struct ask_do_dir_im *data = g_new0(struct ask_do_dir_im, 1); 3043 struct ask_do_dir_im *data = g_new0(struct ask_do_dir_im, 1);
3054 data->who = who; 3044 data->who = who;
3055 data->gc = gtk_object_get_user_data(m); 3045 data->gc = gc;
3056 g_snprintf(buf, sizeof(buf), _("You have selected to open a Direct IM connection with %s." 3046 g_snprintf(buf, sizeof(buf), _("You have selected to open a Direct IM connection with %s."
3057 " Doing this will let them see your IP address, and may be" 3047 " Doing this will let them see your IP address, and may be"
3058 " a security risk. Do you wish to continue?"), who); 3048 " a security risk. Do you wish to continue?"), who);
3059 do_ask_dialog(buf, data, oscar_direct_im, oscar_cancel_direct_im); 3049 do_ask_dialog(buf, data, oscar_direct_im, oscar_cancel_direct_im);
3060 } 3050 }
3061 3051
3062 static void oscar_buddy_menu(GtkWidget *menu, struct gaim_connection *gc, char *who) { 3052 static GList *oscar_buddy_menu(struct gaim_connection *gc, char *who) {
3063 GtkWidget *button; 3053 GList *m = NULL;
3054 struct proto_buddy_menu *pbm;
3064 char *n = g_strdup(normalize(gc->username)); 3055 char *n = g_strdup(normalize(gc->username));
3065 3056
3066 button = gtk_menu_item_new_with_label(_("Get Info")); 3057 pbm = g_new0(struct proto_buddy_menu, 1);
3067 gtk_signal_connect(GTK_OBJECT(button), "activate", 3058 pbm->label = _("Get Info");
3068 GTK_SIGNAL_FUNC(oscar_info), who); 3059 pbm->callback = oscar_get_info;
3069 gtk_object_set_user_data(GTK_OBJECT(button), gc); 3060 pbm->gc = gc;
3070 gtk_menu_append(GTK_MENU(menu), button); 3061 m = g_list_append(m, pbm);
3071 gtk_widget_show(button); 3062
3072 3063 pbm = g_new0(struct proto_buddy_menu, 1);
3073 button = gtk_menu_item_new_with_label(_("Get Away Msg")); 3064 pbm->label = _("Get Away Msg");
3074 gtk_signal_connect(GTK_OBJECT(button), "activate", 3065 pbm->callback = oscar_get_away_msg;
3075 GTK_SIGNAL_FUNC(oscar_away_msg), who); 3066 pbm->gc = gc;
3076 gtk_object_set_user_data(GTK_OBJECT(button), gc); 3067 m = g_list_append(m, pbm);
3077 gtk_menu_append(GTK_MENU(menu), button);
3078 gtk_widget_show(button);
3079 3068
3080 if (strcmp(n, normalize(who))) { 3069 if (strcmp(n, normalize(who))) {
3081 button = gtk_menu_item_new_with_label(_("Direct IM")); 3070 pbm = g_new0(struct proto_buddy_menu, 1);
3082 gtk_signal_connect(GTK_OBJECT(button), "activate", 3071 pbm->label = _("Direct IM");
3083 GTK_SIGNAL_FUNC(oscar_ask_direct_im), who); 3072 pbm->callback = oscar_ask_direct_im;
3084 gtk_object_set_user_data(GTK_OBJECT(button), gc); 3073 pbm->gc = gc;
3085 gtk_menu_append(GTK_MENU(menu), button); 3074 m = g_list_append(m, pbm);
3086 gtk_widget_show(button);
3087 } 3075 }
3088 g_free(n); 3076 g_free(n);
3077
3078 return m;
3089 } 3079 }
3090 3080
3091 static GList *oscar_user_opts() 3081 static GList *oscar_user_opts()
3092 { 3082 {
3093 GList *m = NULL; 3083 GList *m = NULL;