Mercurial > pidgin
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; |