| 70 imhtml_cb(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)), data); |
70 imhtml_cb(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)), data); |
| 71 } |
71 } |
| 72 |
72 |
| 73 static void |
73 static void |
| 74 make_string_pref(GtkWidget *parent, GaimPluginPref *pref, GtkSizeGroup *sg) { |
74 make_string_pref(GtkWidget *parent, GaimPluginPref *pref, GtkSizeGroup *sg) { |
| 75 GtkWidget *hbox, *gtk_label, *entry; |
75 GtkWidget *box, *gtk_label, *entry; |
| 76 gchar *pref_name, *pref_label; |
76 const gchar *pref_name; |
| |
77 const gchar *pref_label; |
| 77 GaimStringFormatType format; |
78 GaimStringFormatType format; |
| 78 |
79 |
| 79 pref_name = gaim_plugin_pref_get_name(pref); |
80 pref_name = gaim_plugin_pref_get_name(pref); |
| 80 pref_label = gaim_plugin_pref_get_label(pref); |
81 pref_label = gaim_plugin_pref_get_label(pref); |
| 81 format = gaim_plugin_pref_get_format_type(pref); |
82 format = gaim_plugin_pref_get_format_type(pref); |
| 91 gtk_size_group_add_widget(sg, gtk_label); |
92 gtk_size_group_add_widget(sg, gtk_label); |
| 92 |
93 |
| 93 break; |
94 break; |
| 94 case GAIM_PLUGIN_PREF_NONE: |
95 case GAIM_PLUGIN_PREF_NONE: |
| 95 default: |
96 default: |
| 96 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
97 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
| 97 gtk_widget_show(hbox); |
98 box = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
| 98 gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0); |
99 else |
| |
100 box = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
| |
101 |
| |
102 gtk_widget_show(box); |
| |
103 gtk_box_pack_start(GTK_BOX(parent), box, FALSE, FALSE, 0); |
| 99 |
104 |
| 100 gtk_label = gtk_label_new_with_mnemonic(pref_label); |
105 gtk_label = gtk_label_new_with_mnemonic(pref_label); |
| 101 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
106 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5); |
| 102 gtk_widget_show(gtk_label); |
107 gtk_widget_show(gtk_label); |
| 103 gtk_box_pack_start(GTK_BOX(hbox), gtk_label, FALSE, FALSE, 0); |
108 gtk_box_pack_start(GTK_BOX(box), gtk_label, FALSE, FALSE, 0); |
| 104 |
109 |
| 105 if(sg) |
110 if(sg) |
| 106 gtk_size_group_add_widget(sg, gtk_label); |
111 gtk_size_group_add_widget(sg, gtk_label); |
| 107 |
112 |
| 108 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
113 if (format == GAIM_STRING_FORMAT_TYPE_NONE) |
| 119 g_signal_connect(G_OBJECT(entry), "changed", |
124 g_signal_connect(G_OBJECT(entry), "changed", |
| 120 G_CALLBACK(entry_cb), |
125 G_CALLBACK(entry_cb), |
| 121 (gpointer)pref_name); |
126 (gpointer)pref_name); |
| 122 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), entry); |
127 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), entry); |
| 123 gtk_widget_show(entry); |
128 gtk_widget_show(entry); |
| 124 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); |
129 gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); |
| 125 } |
130 } |
| 126 else |
131 else |
| 127 { |
132 { |
| 128 GtkWidget *imhtml, *toolbar, *frame; |
133 GtkWidget *hbox; |
| |
134 GtkWidget *spacer; |
| |
135 GtkWidget *imhtml; |
| |
136 GtkWidget *toolbar; |
| |
137 GtkWidget *frame; |
| |
138 |
| |
139 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
| |
140 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); |
| |
141 gtk_widget_show(hbox); |
| |
142 |
| |
143 spacer = gtk_label_new(" "); |
| |
144 gtk_box_pack_start(GTK_BOX(hbox), spacer, FALSE, FALSE, 0); |
| |
145 gtk_widget_show(spacer); |
| 129 |
146 |
| 130 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar); |
147 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar); |
| 131 if (!(format & GAIM_STRING_FORMAT_TYPE_HTML)) |
148 if (!(format & GAIM_STRING_FORMAT_TYPE_HTML)) |
| 132 gtk_widget_destroy(toolbar); |
149 gtk_widget_destroy(toolbar); |
| 133 |
150 |
| 134 gtk_imhtml_append_text(GTK_IMHTML(imhtml), gaim_prefs_get_string(pref_name), |
151 gtk_imhtml_append_text(GTK_IMHTML(imhtml), gaim_prefs_get_string(pref_name), |
| 135 (format & GAIM_STRING_FORMAT_TYPE_MULTILINE) ? 0 : GTK_IMHTML_NO_NEWLINE); |
152 (format & GAIM_STRING_FORMAT_TYPE_MULTILINE) ? 0 : GTK_IMHTML_NO_NEWLINE); |
| 136 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), imhtml); |
153 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), imhtml); |
| 137 gtk_widget_show_all(frame); |
154 gtk_widget_show_all(frame); |
| 138 g_object_set_data(G_OBJECT(imhtml), "pref-key", pref_name); |
155 g_object_set_data(G_OBJECT(imhtml), "pref-key", (gpointer)pref_name); |
| 139 g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml))), |
156 g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml))), |
| 140 "changed", G_CALLBACK(imhtml_cb), imhtml); |
157 "changed", G_CALLBACK(imhtml_cb), imhtml); |
| 141 g_signal_connect(G_OBJECT(imhtml), |
158 g_signal_connect(G_OBJECT(imhtml), |
| 142 "format_function_toggle", G_CALLBACK(imhtml_format_cb), imhtml); |
159 "format_function_toggle", G_CALLBACK(imhtml_format_cb), imhtml); |
| 143 gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, FALSE, 0); |
160 gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, FALSE, 0); |