comparison src/gtkutils.c @ 10175:53410b84336f

[gaim-migrate @ 11290] I wrote a helper function that creates the imhtml and toolbar and puts them in a widget and what not. And I changed some places to use this. And I removed some whitespace from log.c. And I changed the conversation colors back to normal. And I'm not committing everything in my tree, so let me know if this doesn't compile. And that's all. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 14 Nov 2004 01:52:25 +0000
parents 83eb12b1f1a1
children 82c1322c4b56
comparison
equal deleted inserted replaced
10174:8dd4535dd359 10175:53410b84336f
51 #include "util.h" 51 #include "util.h"
52 52
53 #include "gtkconv.h" 53 #include "gtkconv.h"
54 #include "gtkdialogs.h" 54 #include "gtkdialogs.h"
55 #include "gtkimhtml.h" 55 #include "gtkimhtml.h"
56 #include "gtkimhtmltoolbar.h"
56 #include "gtkutils.h" 57 #include "gtkutils.h"
57 58
58 guint accels_save_timer = 0; 59 guint accels_save_timer = 0;
59 60
60 static gboolean 61 static gboolean
92 smiley_themeize(imhtml); 93 smiley_themeize(imhtml);
93 94
94 gtk_imhtml_set_funcs(GTK_IMHTML(imhtml), &gtkimhtml_cbs); 95 gtk_imhtml_set_funcs(GTK_IMHTML(imhtml), &gtkimhtml_cbs);
95 } 96 }
96 97
98 GtkWidget *
99 gaim_gtk_create_imhtml(gboolean editable, GtkWidget **imhtml_ret, GtkWidget **toolbar_ret)
100 {
101 GtkWidget *frame;
102 GtkWidget *imhtml;
103 GtkWidget *sep;
104 GtkWidget *sw;
105 GtkWidget *toolbar;
106 GtkWidget *vbox;
107
108 frame = gtk_frame_new(NULL);
109 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
110 gtk_widget_show(frame);
111
112 vbox = gtk_vbox_new(FALSE, 0);
113 gtk_container_add(GTK_CONTAINER(frame), vbox);
114 gtk_widget_show(vbox);
115
116 if (editable) {
117 toolbar = gtk_imhtmltoolbar_new();
118 gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
119 gtk_widget_show(toolbar);
120
121 sep = gtk_hseparator_new();
122 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
123 gtk_widget_show(sep);
124 }
125
126 /*
127 * We never show the horizontal scrollbar in editable imhtmls becuase
128 * it was causing weird lockups when typing text just as you type the
129 * character that would cause both scrollbars to appear. Definitely
130 * seems like a gtk bug to me.
131 */
132 sw = gtk_scrolled_window_new(NULL, NULL);
133 if (editable)
134 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
135 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
136 else
137 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
138 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
139 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
140 gtk_widget_show(sw);
141
142 imhtml = gtk_imhtml_new(NULL, NULL);
143 gtk_imhtml_set_editable(GTK_IMHTML(imhtml), editable);
144 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), GTK_IMHTML_ALL ^ GTK_IMHTML_IMAGE);
145 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(imhtml), GTK_WRAP_WORD_CHAR);
146 if (editable && gaim_prefs_get_bool("/gaim/gtk/conversations/spellcheck"))
147 gaim_gtk_setup_gtkspell(GTK_TEXT_VIEW(imhtml));
148 gtk_widget_show(imhtml);
149
150 if (editable) {
151 gtk_imhtmltoolbar_attach(GTK_IMHTMLTOOLBAR(toolbar), imhtml);
152 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(toolbar), "default");
153 }
154 gaim_setup_imhtml(imhtml);
155
156 gtk_container_add(GTK_CONTAINER(sw), imhtml);
157
158 if (imhtml_ret != NULL)
159 *imhtml_ret = imhtml;
160
161 if (toolbar_ret != NULL)
162 *toolbar_ret = toolbar;
163
164 return frame;
165 }
166
97 void 167 void
98 toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle) 168 toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle)
99 { 169 {
100 gboolean sensitivity = GTK_WIDGET_IS_SENSITIVE(to_toggle); 170 gboolean sensitivity = GTK_WIDGET_IS_SENSITIVE(to_toggle);
101 171
135 if (element == NULL) 205 if (element == NULL)
136 continue; 206 continue;
137 207
138 sensitivity = GTK_WIDGET_IS_SENSITIVE(element); 208 sensitivity = GTK_WIDGET_IS_SENSITIVE(element);
139 209
140 gtk_widget_set_sensitive(element, !sensitivity); 210 gtk_widget_set_sensitive(element, !sensitivity);
141 } 211 }
142 } 212 }
143 213
144 void 214 void
145 gaim_gtk_toggle_showhide(GtkWidget *widget, GtkWidget *to_toggle) 215 gaim_gtk_toggle_showhide(GtkWidget *widget, GtkWidget *to_toggle)