comparison src/dialogs.c @ 717:d7c39f12eb89

[gaim-migrate @ 727] redid 'add away' for the prefs dialog so that adding messages doesn't make set you to 'away' automatically committer: Tailor Script <tailor@pidgin.im>
author Todd Kulesza <fflewddur>
date Fri, 18 Aug 2000 04:37:44 +0000
parents efd72a117875
children a509d6fad0de
comparison
equal deleted inserted replaced
716:0995382d0c46 717:d7c39f12eb89
2804 2804
2805 /*------------------------------------------------------------------------*/ 2805 /*------------------------------------------------------------------------*/
2806 /* The dialog for new away messages */ 2806 /* The dialog for new away messages */
2807 /*------------------------------------------------------------------------*/ 2807 /*------------------------------------------------------------------------*/
2808 2808
2809 void save_away_mess(GtkWidget *widget, struct create_away *ca)
2810 {
2811 struct away_message *am;
2812 guint text_len;
2813 gchar *away_message;
2814
2815 am = g_new0(struct away_message, 1);
2816 g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry)));
2817 text_len = gtk_text_get_length(GTK_TEXT(ca->text));
2818 away_message = gtk_editable_get_chars(GTK_EDITABLE(ca->text), 0, text_len);
2819
2820 g_snprintf(am->message, sizeof(am->message), "%s", away_message);
2821 g_free(away_message);
2822
2823 away_messages = g_list_append(away_messages, am);
2824 save_prefs();
2825 do_away_menu();
2826
2827 destroy_dialog(NULL, ca->window);
2828
2829 return;
2830 }
2831
2809 void create_mess(GtkWidget *widget, struct create_away *ca) 2832 void create_mess(GtkWidget *widget, struct create_away *ca)
2810 { 2833 {
2811 struct away_message *b; 2834 struct away_message *b;
2812 gchar *away_message; 2835 gchar *away_message;
2813 guint text_len; 2836 guint text_len;
2897 gtk_text_set_editable(GTK_TEXT(ca->text), TRUE ); 2920 gtk_text_set_editable(GTK_TEXT(ca->text), TRUE );
2898 gtk_container_add(GTK_CONTAINER(sw), ca->text); 2921 gtk_container_add(GTK_CONTAINER(sw), ca->text);
2899 gtk_widget_show(ca->text); 2922 gtk_widget_show(ca->text);
2900 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 5); 2923 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 5);
2901 2924
2902 button = picture_button(ca->window, _("Away"), save_xpm); 2925 /* Checkbox for showing away msg */
2903 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_mess), ca); 2926 ca->checkbx = gtk_check_button_new_with_label(_("Save for later use"));
2927
2928 if (!dummy) /* this only exits if we're comming from the prefs dialog */
2929 {
2930 gtk_widget_show(ca->checkbx);
2931
2932 button = picture_button(ca->window, _("Away"), save_xpm);
2933 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_mess), ca);
2934
2935 }
2936 else
2937 {
2938 button = picture_button(ca->window, _("Save"), save_xpm);
2939 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(save_away_mess), ca);
2940 }
2941
2904 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5); 2942 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);
2905 2943
2906 button = picture_button(ca->window, _("Cancel"), cancel_xpm); 2944 button = picture_button(ca->window, _("Cancel"), cancel_xpm);
2907 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), ca->window); 2945 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), ca->window);
2908 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); 2946 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
2909 2947
2910 /* Checkbox for showing away msg */
2911 ca->checkbx = gtk_check_button_new_with_label(_("Save for later use"));
2912
2913 /* pack boxes where they belong */ 2948 /* pack boxes where they belong */
2914 gtk_box_pack_start(GTK_BOX(fbox), titlebox, TRUE, TRUE, 5); 2949 gtk_box_pack_start(GTK_BOX(fbox), titlebox, TRUE, TRUE, 5);
2915 gtk_box_pack_start(GTK_BOX(fbox), bbox, TRUE, TRUE, 5); 2950 gtk_box_pack_start(GTK_BOX(fbox), bbox, TRUE, TRUE, 5);
2916 gtk_box_pack_start(GTK_BOX(fbox), ca->checkbx, TRUE, TRUE, 5); 2951 gtk_box_pack_start(GTK_BOX(fbox), ca->checkbx, TRUE, TRUE, 5);
2917
2918 gtk_container_add(GTK_CONTAINER(frame), fbox); 2952 gtk_container_add(GTK_CONTAINER(frame), fbox);
2919 gtk_container_set_border_width(GTK_CONTAINER(frame), 5); 2953 gtk_container_set_border_width(GTK_CONTAINER(frame), 5);
2920 gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); 2954 gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0);
2921 gtk_box_pack_start(GTK_BOX(tbox), hbox, TRUE, FALSE, 5); 2955 gtk_box_pack_start(GTK_BOX(tbox), hbox, TRUE, FALSE, 5);
2922 2956
2923 gtk_container_add(GTK_CONTAINER(ca->window), tbox); 2957 gtk_container_add(GTK_CONTAINER(ca->window), tbox);
2924 2958
2925 /* let the world see what we have done. */ 2959 /* let the world see what we have done. */
2960 if (!dummy)
2961 gtk_widget_show(ca->checkbx);
2926 gtk_widget_show(label); 2962 gtk_widget_show(label);
2927 gtk_widget_show(ca->checkbx);
2928 gtk_widget_show(ca->entry); 2963 gtk_widget_show(ca->entry);
2929 gtk_widget_show(titlebox); 2964 gtk_widget_show(titlebox);
2930 gtk_widget_show(hbox); 2965 gtk_widget_show(hbox);
2931 gtk_widget_show(tbox); 2966 gtk_widget_show(tbox);
2932 gtk_widget_show(bbox); 2967 gtk_widget_show(bbox);
2933 gtk_widget_show(fbox); 2968 gtk_widget_show(fbox);
2934 gtk_widget_show(frame); 2969 gtk_widget_show(frame);
2935 2970
2936 gtk_widget_realize(ca->window); 2971 gtk_widget_realize(ca->window);
2937 aol_icon(ca->window->window); 2972 aol_icon(ca->window->window);
2973 gtk_widget_grab_focus(ca->entry);
2938 } 2974 }
2939 2975
2940 /* smiley dialog */ 2976 /* smiley dialog */
2941 2977
2942 void close_smiley_dialog(GtkWidget *widget, struct conversation *c) 2978 void close_smiley_dialog(GtkWidget *widget, struct conversation *c)