| Yattm - unified GTK instant-messaging client | ![]() |
| [Generated for version 0.2-17 - Mon Jan 6 19:01:23 GMT+1 2003] |
#include <gtk/gtk.h>#include <glib.h>Include dependency graph for log_window.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | _log_window |
Typedefs | |
| typedef _log_window | log_window |
Functions | |
| log_window * | eb_log_window_new (struct contact *rc) |
|
|
|
|
|
Definition at line 304 of file log_window.c. References _, close_log_window_callback(), _log_window::date_html_hbox, _log_window::date_list, _log_window::date_scroller, destroy_event(), _log_window::html_display, load_log_information(), contact::logwindow, contact::nick, _log_window::remote, search_callback(), select_date_callback(), and _log_window::window. Referenced by eb_view_log().
00305 {
00306 GtkWidget *iconwid0;
00307 GdkPixmap *icon0;
00308 GdkBitmap *mask;
00309
00310 log_window* lw = g_new0(log_window, 1);
00311 char buffer[512];
00312 GtkWidget* vbox;
00313 GtkWidget* hbox;
00314 GtkWidget* button;
00315 GtkWidget* toolbar;
00316 GtkWidget* search_label;
00317 GtkWidget* search_entry;
00318 lw->remote = rc;
00319 rc->logwindow = lw;
00320 lw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
00321 gtk_window_set_position(GTK_WINDOW(lw->window), GTK_WIN_POS_MOUSE);
00322 /* show who the conversation is with */
00323 sprintf(buffer, _("Past conversations with %s"), rc->nick);
00324 gtk_window_set_title(GTK_WINDOW(lw->window), buffer);
00325 gtk_container_set_border_width(GTK_CONTAINER(lw->window), 5);
00326
00327
00328 /* for the html and list box */
00329 lw->date_html_hbox = gtk_hbox_new(FALSE, 0);
00330
00331 lw->date_list = gtk_clist_new(1);
00332 gtk_clist_set_column_width(GTK_CLIST(lw->date_list), 0, 100);
00333 gtk_clist_set_selection_mode(GTK_CLIST(lw->date_list), GTK_SELECTION_BROWSE);
00334
00335 /* scroll window for the date list */
00336 lw->date_scroller = gtk_scrolled_window_new(NULL, NULL);
00337 gtk_widget_set_usize(lw->date_scroller, 180, 150);
00338 gtk_container_add(GTK_CONTAINER(lw->date_scroller), lw->date_list);
00339 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(lw->date_scroller), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
00340
00341 /* let the packing begin (god that sounds wrong) */
00342 gtk_box_pack_start(GTK_BOX(lw->date_html_hbox), lw->date_scroller, TRUE, TRUE, 5);
00343 vbox = gtk_vbox_new(FALSE, 0);
00344 gtk_box_pack_start(GTK_BOX(vbox), lw->date_html_hbox, TRUE, TRUE, 5);
00345 gtk_container_add(GTK_CONTAINER(lw->window), vbox);
00346
00347 gtk_signal_connect(GTK_OBJECT(lw->window), "destroy",
00348 GTK_SIGNAL_FUNC(destroy_event), lw);
00349
00350 /* buttons toolbar */
00351 hbox = gtk_hbox_new(FALSE, 0);
00352 toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
00353 gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolbar), GTK_RELIEF_NONE);
00354 gtk_container_set_border_width(GTK_CONTAINER(toolbar), 0);
00355
00356 /* need to realize the window for the pixmaps */
00357 gtk_widget_realize(GTK_WIDGET(lw->window));
00358
00359
00360 /* search field */
00361 search_label = gtk_label_new(_("Search: "));
00362 search_entry = gtk_entry_new();
00363 gtk_box_pack_start(GTK_BOX(hbox), search_label, FALSE, FALSE, 0);
00364 gtk_box_pack_start(GTK_BOX(hbox), search_entry, TRUE, TRUE, 0);
00365 gtk_widget_show (search_label);
00366 gtk_widget_show (search_entry);
00367 gtk_signal_connect(GTK_OBJECT(search_entry), "key_press_event",
00368 GTK_SIGNAL_FUNC(search_callback), lw);
00369
00370
00371 /* close button*/
00372 icon0 = gdk_pixmap_create_from_xpm_d(lw->window->window, &mask, NULL, cancel_xpm);
00373 iconwid0 = gtk_pixmap_new(icon0, mask);
00374 gtk_widget_show(iconwid0);
00375 button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar),
00376 GTK_TOOLBAR_CHILD_BUTTON,
00377 NULL,
00378 "close",
00379 "Close",
00380 "close",
00381 iconwid0,
00382 GTK_SIGNAL_FUNC(close_log_window_callback),
00383 lw);
00384 gtk_widget_show(GTK_WIDGET(button));
00385 gtk_widget_show(GTK_WIDGET(toolbar));
00386
00387 gtk_box_pack_end(GTK_BOX(hbox), toolbar, FALSE, FALSE, 0);
00388 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
00389
00390 /* connect signals to the date list */
00391 gtk_signal_connect(GTK_OBJECT(lw->date_list), "select-row",
00392 GTK_SIGNAL_FUNC(select_date_callback), lw);
00393
00394 load_log_information(lw);
00395
00396 /* show everything... can you get arrested for baring it all? */
00397 gtk_widget_show(GTK_WIDGET(lw->date_list));
00398 gtk_widget_show(GTK_WIDGET(lw->html_display));
00399 gtk_widget_show(GTK_WIDGET(lw->date_scroller));
00400 gtk_widget_show(GTK_WIDGET(lw->date_html_hbox));
00401 gtk_widget_show(GTK_WIDGET(hbox));
00402 gtk_widget_show(GTK_WIDGET(vbox));
00403
00404 gtk_widget_show(GTK_WIDGET(lw->window));
00405
00406 gtk_clist_select_row(GTK_CLIST(lw->date_list), 0, 0);
00407
00408 return lw;
00409 }
|