Mercurial > pidgin.yaz
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 |