Mercurial > pidgin
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), >kimhtml_cbs); | 95 gtk_imhtml_set_funcs(GTK_IMHTML(imhtml), >kimhtml_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) |