comparison finch/gntconv.c @ 16168:cc5917d70dde

merge of '7c800719ac0b585a5b02eaeb188880c191d1da89' and '8be1fbdce101b63280239db93e1dac106cea6681'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 15 Apr 2007 23:54:55 +0000
parents 7a2ffa981c1a
children 0f0832c13fcb
comparison
equal deleted inserted replaced
16167:aa6160248112 16168:cc5917d70dde
157 } 157 }
158 gnt_entry_add_to_history(GNT_ENTRY(ggconv->entry), text); 158 gnt_entry_add_to_history(GNT_ENTRY(ggconv->entry), text);
159 gnt_entry_clear(GNT_ENTRY(ggconv->entry)); 159 gnt_entry_clear(GNT_ENTRY(ggconv->entry));
160 return TRUE; 160 return TRUE;
161 } 161 }
162 else if (key[0] == 27)
163 {
164 if (strcmp(key, GNT_KEY_DOWN) == 0)
165 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 1);
166 else if (strcmp(key, GNT_KEY_UP) == 0)
167 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), -1);
168 else if (strcmp(key, GNT_KEY_PGDOWN) == 0)
169 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), ggconv->tv->priv.height - 2);
170 else if (strcmp(key, GNT_KEY_PGUP) == 0)
171 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), -(ggconv->tv->priv.height - 2));
172 else
173 return FALSE;
174 return TRUE;
175 }
176 else
177 {
178 }
179 162
180 return FALSE; 163 return FALSE;
181 } 164 }
182 165
183 static void 166 static void
323 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->tv); 306 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->tv);
324 gnt_widget_set_name(ggc->tv, "conversation-window-textview"); 307 gnt_widget_set_name(ggc->tv, "conversation-window-textview");
325 gnt_widget_set_size(ggc->tv, purple_prefs_get_int(PREF_ROOT "/size/width"), 308 gnt_widget_set_size(ggc->tv, purple_prefs_get_int(PREF_ROOT "/size/width"),
326 purple_prefs_get_int(PREF_ROOT "/size/height")); 309 purple_prefs_get_int(PREF_ROOT "/size/height"));
327 310
311 ggc->info = gnt_vbox_new(FALSE);
312 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->info);
313
328 ggc->entry = gnt_entry_new(NULL); 314 ggc->entry = gnt_entry_new(NULL);
329 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->entry); 315 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->entry);
330 gnt_widget_set_name(ggc->entry, "conversation-window-entry"); 316 gnt_widget_set_name(ggc->entry, "conversation-window-entry");
331 gnt_entry_set_history_length(GNT_ENTRY(ggc->entry), -1); 317 gnt_entry_set_history_length(GNT_ENTRY(ggc->entry), -1);
332 gnt_entry_set_word_suggest(GNT_ENTRY(ggc->entry), TRUE); 318 gnt_entry_set_word_suggest(GNT_ENTRY(ggc->entry), TRUE);
333 gnt_entry_set_always_suggest(GNT_ENTRY(ggc->entry), FALSE); 319 gnt_entry_set_always_suggest(GNT_ENTRY(ggc->entry), FALSE);
334 320
321 gnt_text_view_attach_scroll_widget(GNT_TEXT_VIEW(ggc->tv), ggc->entry);
335 g_signal_connect_after(G_OBJECT(ggc->entry), "key_pressed", G_CALLBACK(entry_key_pressed), ggc); 322 g_signal_connect_after(G_OBJECT(ggc->entry), "key_pressed", G_CALLBACK(entry_key_pressed), ggc);
336 g_signal_connect(G_OBJECT(ggc->window), "destroy", G_CALLBACK(closing_window), ggc); 323 g_signal_connect(G_OBJECT(ggc->window), "destroy", G_CALLBACK(closing_window), ggc);
337 324
338 gnt_widget_set_position(ggc->window, purple_prefs_get_int(PREF_ROOT "/position/x"), 325 gnt_widget_set_position(ggc->window, purple_prefs_get_int(PREF_ROOT "/position/x"),
339 purple_prefs_get_int(PREF_ROOT "/position/y")); 326 purple_prefs_get_int(PREF_ROOT "/position/y"));
756 title = get_conversation_title(conv, account); 743 title = get_conversation_title(conv, account);
757 gnt_screen_rename_widget(ggconv->window, title); 744 gnt_screen_rename_widget(ggconv->window, title);
758 g_free(title); 745 g_free(title);
759 } 746 }
760 747
748 void finch_conversation_set_info_widget(PurpleConversation *conv, GntWidget *widget)
749 {
750 FinchConv *fc = conv->ui_data;
751 int height, width;
752
753 gnt_box_remove_all(GNT_BOX(fc->info));
754
755 if (widget) {
756 gnt_box_add_widget(GNT_BOX(fc->info), widget);
757 gnt_box_readjust(GNT_BOX(fc->info));
758 }
759
760 gnt_widget_get_size(fc->window, &width, &height);
761 gnt_box_readjust(GNT_BOX(fc->window));
762 gnt_screen_resize_widget(fc->window, width, height);
763 gnt_box_give_focus_to_child(GNT_BOX(fc->window), fc->entry);
764 }
765