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