comparison src/away.c @ 9827:430ef8fc963d

[gaim-migrate @ 10698] Patch 1013229 from Rhett Robinson. See the ChangeLog. "If at first you don't succeed, try try try again." committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 22 Aug 2004 18:24:33 +0000
parents 4a15962c344a
children e4a27c9aec4c
comparison
equal deleted inserted replaced
9826:6f2a90c36ee2 9827:430ef8fc963d
208 208
209 209
210 void do_away_message(GtkWidget *w, struct away_message *a) 210 void do_away_message(GtkWidget *w, struct away_message *a)
211 { 211 {
212 GtkWidget *back; 212 GtkWidget *back;
213 GtkWidget *edit;
213 GtkWidget *awaytext; 214 GtkWidget *awaytext;
214 GtkWidget *sw; 215 GtkWidget *sw;
215 GtkWidget *vbox; 216 GtkWidget *vbox;
217 GtkWidget *hbox;
216 GtkTreeViewColumn *column; 218 GtkTreeViewColumn *column;
217 GtkCellRenderer *renderer; 219 GtkCellRenderer *renderer;
218 char *buf; 220 char *buf;
219 221
220 if (!a) 222 if (!a)
234 236
235 vbox = gtk_vbox_new(FALSE, 5); 237 vbox = gtk_vbox_new(FALSE, 5);
236 gtk_container_add(GTK_CONTAINER(imaway), vbox); 238 gtk_container_add(GTK_CONTAINER(imaway), vbox);
237 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); 239 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
238 gtk_widget_show(vbox); 240 gtk_widget_show(vbox);
241
242 hbox = gtk_hbox_new(FALSE, 5);
243 gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
244 gtk_widget_show(hbox);
239 245
240 sw = gtk_scrolled_window_new(NULL, NULL); 246 sw = gtk_scrolled_window_new(NULL, NULL);
241 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, 247 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER,
242 GTK_POLICY_AUTOMATIC); 248 GTK_POLICY_AUTOMATIC);
243 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); 249 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
290 if (gaim_prefs_get_bool("/gaim/gtk/away/queue_messages")) { 296 if (gaim_prefs_get_bool("/gaim/gtk/away/queue_messages")) {
291 gtk_widget_show(awayqueuesw); 297 gtk_widget_show(awayqueuesw);
292 gtk_widget_show(awayqueue); 298 gtk_widget_show(awayqueue);
293 } 299 }
294 300
301 awaymessage = a;
302
303 edit = gaim_pixbuf_button_from_stock(_("Edit This Message"), GTK_STOCK_CONVERT, GAIM_BUTTON_HORIZONTAL);
304 gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 0);
305 g_signal_connect(G_OBJECT(edit), "clicked", G_CALLBACK(create_away_mess), awaymessage);
306 gtk_widget_show(edit);
307
295 back = gaim_pixbuf_button_from_stock(_("I'm Back!"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL); 308 back = gaim_pixbuf_button_from_stock(_("I'm Back!"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL);
296 gtk_box_pack_start(GTK_BOX(vbox), back, FALSE, FALSE, 0); 309 gtk_box_pack_start(GTK_BOX(hbox), back, TRUE, TRUE, 0);
297 g_signal_connect(G_OBJECT(back), "clicked", G_CALLBACK(do_im_back), imaway); 310 g_signal_connect(G_OBJECT(back), "clicked", G_CALLBACK(do_im_back), imaway);
298 gtk_window_set_focus(GTK_WINDOW(imaway), back); 311 gtk_window_set_focus(GTK_WINDOW(imaway), back);
299 gtk_widget_show(back); 312 gtk_widget_show(back);
300 313
301 awaymessage = a; 314 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
302 315
303 gtk_widget_show(imaway); 316 gtk_widget_show(imaway);
304 serv_set_away_all(awaymessage->message); 317 serv_set_away_all(awaymessage->message);
305 } 318 }
306 319
870 883
871 gtk_container_add(GTK_CONTAINER(sw), ca->text); 884 gtk_container_add(GTK_CONTAINER(sw), ca->text);
872 focus_chain = g_list_append(focus_chain, sw); 885 focus_chain = g_list_append(focus_chain, sw);
873 886
874 if (dummy) { 887 if (dummy) {
875 struct away_message *amt; 888 /* If anything is passed here, it is an away_message pointer */
876 GtkTreeIter iter; 889 struct away_message *amt = (struct away_message *) dummy ;
877 GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dummy)));
878 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy));
879 GValue val = { 0, };
880
881 if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter))
882 return;
883 gtk_tree_model_get_value (GTK_TREE_MODEL(ls), &iter, 1, &val);
884 amt = g_value_get_pointer (&val);
885 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); 890 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name);
886 gtk_imhtml_append_text_with_images(GTK_IMHTML(ca->text), amt->message, 0, NULL); 891 gtk_imhtml_append_text_with_images(GTK_IMHTML(ca->text), amt->message, 0, NULL);
887 ca->mess = amt; 892 ca->mess = amt;
888 } 893 }
889 894