Mercurial > pidgin
comparison src/dialogs.c @ 4262:7103653dd34e
[gaim-migrate @ 4513]
I am tispy. Here is insert link
committer: Tailor Script <tailor@pidgin.im>
| author | Rob Flynn <gaim@robflynn.com> |
|---|---|
| date | Thu, 09 Jan 2003 06:38:09 +0000 |
| parents | 9c7fcb211886 |
| children | 37fd8ad463ba |
comparison
equal
deleted
inserted
replaced
| 4261:e252238f99df | 4262:7103653dd34e |
|---|---|
| 238 GtkWidget *window; | 238 GtkWidget *window; |
| 239 GtkWidget *url; | 239 GtkWidget *url; |
| 240 GtkWidget *text; | 240 GtkWidget *text; |
| 241 GtkWidget *toggle; | 241 GtkWidget *toggle; |
| 242 GtkWidget *entry; | 242 GtkWidget *entry; |
| 243 struct conversation *c; | |
| 243 }; | 244 }; |
| 244 | 245 |
| 245 struct passwddlg { | 246 struct passwddlg { |
| 246 GtkWidget *window; | 247 GtkWidget *window; |
| 247 GtkWidget *ok; | 248 GtkWidget *ok; |
| 2953 } | 2954 } |
| 2954 destroy_dialog(NULL, c->link_dialog); | 2955 destroy_dialog(NULL, c->link_dialog); |
| 2955 c->link_dialog = NULL; | 2956 c->link_dialog = NULL; |
| 2956 } | 2957 } |
| 2957 | 2958 |
| 2958 void do_add_link(GtkWidget *widget, struct linkdlg *b) | 2959 void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b) |
| 2959 { | 2960 { |
| 2960 char *open_tag; | 2961 char *open_tag; |
| 2961 const char *urltext, *showtext; | 2962 const char *urltext, *showtext; |
| 2962 open_tag = g_malloc(2048); | 2963 |
| 2963 | 2964 if (resp == GTK_RESPONSE_OK) { |
| 2964 | 2965 |
| 2965 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); | 2966 open_tag = g_malloc(2048); |
| 2966 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | 2967 |
| 2967 | 2968 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); |
| 2968 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); | 2969 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); |
| 2969 /* FIXME surround(b, open_tag, "</A>");*/ | 2970 |
| 2970 | 2971 if (!strlen(showtext)) |
| 2971 g_free(open_tag); | 2972 showtext = urltext; |
| 2973 | |
| 2974 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); | |
| 2975 surround(b->c, open_tag, "</A>"); | |
| 2976 | |
| 2977 g_free(open_tag); | |
| 2978 } | |
| 2979 | |
| 2980 if (b->c->link) { | |
| 2981 set_state_lock(1); | |
| 2982 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->c->link), FALSE); | |
| 2983 set_state_lock(0); | |
| 2984 } | |
| 2985 | |
| 2986 b->c->link_dialog = NULL; | |
| 2972 destroy_dialog(NULL, b->window); | 2987 destroy_dialog(NULL, b->window); |
| 2973 } | 2988 } |
| 2974 | 2989 |
| 2975 | 2990 void show_insert_link(GtkWidget *linky, struct conversation *c) |
| 2976 void show_add_link(GtkWidget *linky, struct conversation *c) | 2991 { |
| 2977 { | 2992 GtkWidget *table; |
| 2993 GtkWidget *label; | |
| 2994 GtkWidget *hbox; | |
| 2978 GtkWidget *vbox; | 2995 GtkWidget *vbox; |
| 2979 GtkWidget *bbox; | |
| 2980 GtkWidget *hbox; | |
| 2981 GtkWidget *label; | |
| 2982 GtkWidget *frame; | |
| 2983 GtkWidget *fbox; | |
| 2984 | 2996 |
| 2985 if (!c->link_dialog) { | 2997 if (!c->link_dialog) { |
| 2986 struct linkdlg *b = g_new0(struct linkdlg, 1); | 2998 struct linkdlg *a = g_new0(struct linkdlg, 1); |
| 2987 GAIM_DIALOG(c->link_dialog); | 2999 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 2988 gtk_window_set_role(GTK_WINDOW(c->link_dialog), "add_link"); | 3000 GtkWidget *img = gtk_image_new_from_file(filename); |
| 2989 dialogwindows = g_list_prepend(dialogwindows, c->link_dialog); | 3001 |
| 2990 | 3002 g_free(filename); |
| 2991 gtk_widget_set_usize(c->link_dialog, 270, 165); | 3003 |
| 2992 gtk_window_set_policy(GTK_WINDOW(c->link_dialog), FALSE, FALSE, TRUE); | 3004 a->c = c; |
| 2993 gtk_widget_show(c->link_dialog); | 3005 GAIM_DIALOG(a->window); |
| 2994 | 3006 a->window = gtk_dialog_new_with_buttons(_("Gaim - Insert Link"), GTK_WINDOW(c->window), GTK_DIALOG_MODAL, |
| 2995 vbox = gtk_vbox_new(FALSE, 10); | 3007 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("Insert"), GTK_RESPONSE_OK, NULL); |
| 2996 bbox = gtk_hbox_new(TRUE, 10); | 3008 |
| 2997 frame = gtk_frame_new(_("Insert Link")); | 3009 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); |
| 2998 fbox = gtk_vbox_new(FALSE, 5); | 3010 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); |
| 2999 | 3011 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); |
| 3000 /* Build OK Button */ | 3012 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); |
| 3001 | 3013 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); |
| 3002 b->ok = picture_button(c->link_dialog, _("OK"), ok_xpm); | 3014 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); |
| 3003 b->cancel = picture_button(c->link_dialog, _("Cancel"), cancel_xpm); | 3015 gtk_window_set_role(GTK_WINDOW(a->window), "insert_link"); |
| 3004 /* | 3016 |
| 3005 gtk_widget_set_usize(b->ok, 75, 30); | 3017 hbox = gtk_hbox_new(FALSE, 12); |
| 3006 gtk_widget_set_usize(b->cancel, 75, 30); | 3018 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); |
| 3007 */ | 3019 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
| 3008 gtk_box_pack_start(GTK_BOX(bbox), b->ok, FALSE, FALSE, 10); | 3020 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3009 gtk_box_pack_end(GTK_BOX(bbox), b->cancel, FALSE, FALSE, 10); | 3021 |
| 3010 gtk_widget_show(bbox); | 3022 vbox = gtk_vbox_new(FALSE, 0); |
| 3011 | 3023 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
| 3012 b->url = gtk_entry_new(); | 3024 |
| 3013 b->text = gtk_entry_new(); | 3025 label = gtk_label_new(_("Please enter the URL and description of the link that you want to insert. The description is optional.\n")); |
| 3014 | 3026 |
| 3015 hbox = gtk_hbox_new(FALSE, 5); | 3027 gtk_widget_set_size_request(GTK_WIDGET(label), 335, -1); |
| 3028 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 3029 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3030 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 3031 | |
| 3032 hbox = gtk_hbox_new(FALSE, 6); | |
| 3033 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3034 | |
| 3035 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window); | |
| 3036 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a); | |
| 3037 dialogwindows = g_list_prepend(dialogwindows, a->window); | |
| 3038 | |
| 3039 table = gtk_table_new(4, 2, FALSE); | |
| 3040 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 3041 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 3042 gtk_container_set_border_width(GTK_CONTAINER(table), 0); | |
| 3043 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 3044 | |
| 3016 label = gtk_label_new(_("URL")); | 3045 label = gtk_label_new(_("URL")); |
| 3017 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | 3046 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 3018 gtk_box_pack_end(GTK_BOX(hbox), b->url, FALSE, FALSE, 5); | 3047 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 3019 gtk_widget_show(label); | 3048 |
| 3020 gtk_widget_show(hbox); | 3049 a->url = gtk_entry_new(); |
| 3021 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | 3050 gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1); |
| 3022 | 3051 gtk_widget_grab_focus(a->url); |
| 3023 hbox = gtk_hbox_new(FALSE, 5); | 3052 |
| 3053 gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE); | |
| 3054 | |
| 3024 label = gtk_label_new(_("Description")); | 3055 label = gtk_label_new(_("Description")); |
| 3025 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | 3056 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 3026 gtk_box_pack_end(GTK_BOX(hbox), b->text, FALSE, FALSE, 5); | 3057 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 3027 gtk_widget_show(label); | 3058 |
| 3028 gtk_widget_show(hbox); | 3059 a->text = gtk_entry_new(); |
| 3029 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | 3060 gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2); |
| 3030 | 3061 gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE); |
| 3031 gtk_widget_show(b->url); | 3062 |
| 3032 gtk_widget_show(b->text); | 3063 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_insert_link), a); |
| 3033 gtk_widget_show(frame); | 3064 |
| 3034 gtk_widget_show(fbox); | 3065 a->toggle = linky; |
| 3035 | 3066 c->link_dialog = a->window; |
| 3036 gtk_container_add(GTK_CONTAINER(frame), vbox); | 3067 } |
| 3037 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5); | 3068 |
| 3038 gtk_box_pack_start(GTK_BOX(fbox), bbox, TRUE, TRUE, 5); | 3069 gtk_widget_show_all(GTK_WIDGET(c->link_dialog)); |
| 3039 gtk_widget_show(vbox); | |
| 3040 | |
| 3041 g_signal_connect(GTK_OBJECT(c->link_dialog), "destroy", | |
| 3042 G_CALLBACK(cancel_link), c); | |
| 3043 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(cancel_link), c); | |
| 3044 g_signal_connect(GTK_OBJECT(b->ok), "clicked", G_CALLBACK(do_add_link), b); | |
| 3045 | |
| 3046 gtk_container_add(GTK_CONTAINER(c->link_dialog), fbox); | |
| 3047 gtk_container_border_width(GTK_CONTAINER(c->link_dialog), 10); | |
| 3048 gtk_window_set_title(GTK_WINDOW(c->link_dialog), _("Gaim - Add URL")); | |
| 3049 gtk_window_set_focus(GTK_WINDOW(c->link_dialog), b->url); | |
| 3050 b->window = c->link_dialog; | |
| 3051 b->toggle = linky; | |
| 3052 /* FIXME b->entry_view = c->entry_view;*/ | |
| 3053 gtk_widget_realize(c->link_dialog); | |
| 3054 | |
| 3055 } | |
| 3056 | |
| 3057 gtk_widget_show(c->link_dialog); | |
| 3058 gdk_window_raise(c->link_dialog->window); | 3070 gdk_window_raise(c->link_dialog->window); |
| 3059 } | 3071 } |
| 3060 | |
| 3061 | 3072 |
| 3062 /*------------------------------------------------------*/ | 3073 /*------------------------------------------------------*/ |
| 3063 /* Color Selection Dialog */ | 3074 /* Color Selection Dialog */ |
| 3064 /*------------------------------------------------------*/ | 3075 /*------------------------------------------------------*/ |
| 3065 | 3076 |
