comparison pidgin/gtkconv.c @ 19556:11de4598b4c5

Document the function to reattach conv-ui. Introduce the conversation-hiding and conversation-displayed signals in pidgin.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Fri, 31 Aug 2007 18:02:09 +0000
parents e2b7dadac415
children 11849a5c3951
comparison
equal deleted inserted replaced
19555:858d279314b2 19556:11de4598b4c5
1301 1301
1302 static void 1302 static void
1303 menu_hide_conv_cb(gpointer data, guint action, GtkWidget *widget) 1303 menu_hide_conv_cb(gpointer data, guint action, GtkWidget *widget)
1304 { 1304 {
1305 PidginWindow *win = data; 1305 PidginWindow *win = data;
1306 PidginConversation *gtkconv = pidgin_conv_window_get_active_gtkconv(win);
1306 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win); 1307 PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win);
1308 purple_signal_emit(pidgin_conversations_get_handle(),
1309 "conversation-hiding", gtkconv);
1307 purple_conversation_set_ui_ops(conv, NULL); 1310 purple_conversation_set_ui_ops(conv, NULL);
1308 } 1311 }
1309 1312
1310 static void 1313 static void
1311 menu_close_conv_cb(gpointer data, guint action, GtkWidget *widget) 1314 menu_close_conv_cb(gpointer data, guint action, GtkWidget *widget)
7204 } 7207 }
7205 gtkconv->attach.timer = timer; 7208 gtkconv->attach.timer = timer;
7206 if (gtkconv->attach.current) 7209 if (gtkconv->attach.current)
7207 return TRUE; 7210 return TRUE;
7208 7211
7212 purple_signal_emit(pidgin_conversations_get_handle(),
7213 "conversation-displayed", gtkconv);
7209 g_source_remove(gtkconv->attach.timer); 7214 g_source_remove(gtkconv->attach.timer);
7210 gtkconv->attach.timer = 0; 7215 gtkconv->attach.timer = 0;
7211 return FALSE; 7216 return FALSE;
7212 } 7217 }
7213 7218
7226 list = purple_conversation_get_message_history(conv); 7231 list = purple_conversation_get_message_history(conv);
7227 if (list) { 7232 if (list) {
7228 list = g_list_last(list); 7233 list = g_list_last(list);
7229 gtkconv->attach.current = list; 7234 gtkconv->attach.current = list;
7230 gtkconv->attach.timer = g_idle_add(add_message_history_to_gtkconv, gtkconv); 7235 gtkconv->attach.timer = g_idle_add(add_message_history_to_gtkconv, gtkconv);
7236 } else {
7237 purple_signal_emit(pidgin_conversations_get_handle(),
7238 "conversation-displayed", gtkconv);
7231 } 7239 }
7232 7240
7233 /* XXX: If this is a chat: 7241 /* XXX: If this is a chat:
7234 * - populate the userlist 7242 * - populate the userlist
7235 * - set the topic 7243 * - set the topic
7412 7420
7413 purple_signal_register(handle, "conversation-switched", 7421 purple_signal_register(handle, "conversation-switched",
7414 purple_marshal_VOID__POINTER_POINTER, NULL, 1, 7422 purple_marshal_VOID__POINTER_POINTER, NULL, 1,
7415 purple_value_new(PURPLE_TYPE_SUBTYPE, 7423 purple_value_new(PURPLE_TYPE_SUBTYPE,
7416 PURPLE_SUBTYPE_CONVERSATION)); 7424 PURPLE_SUBTYPE_CONVERSATION));
7425
7426 purple_signal_register(handle, "conversation-hiding",
7427 purple_marshal_VOID__POINTER_POINTER, NULL, 1,
7428 purple_value_new(PURPLE_TYPE_BOXED,
7429 "PidginConversation *"));
7430
7431 purple_signal_register(handle, "conversation-displayed",
7432 purple_marshal_VOID__POINTER_POINTER, NULL, 1,
7433 purple_value_new(PURPLE_TYPE_BOXED,
7434 "PidginConversation *"));
7417 7435
7418 /********************************************************************** 7436 /**********************************************************************
7419 * Register commands 7437 * Register commands
7420 **********************************************************************/ 7438 **********************************************************************/
7421 purple_cmd_register("say", "S", PURPLE_CMD_P_DEFAULT, 7439 purple_cmd_register("say", "S", PURPLE_CMD_P_DEFAULT,