void conversation_window_update_preferences(ConversationWindow *win) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_if_fail(win != NULL); g_return_if_fail(priv_win->xtext != NULL); gtk_xtext_set_palette(GTK_XTEXT(priv_win->xtext), colors); gtk_xtext_set_max_indent(GTK_XTEXT(priv_win->xtext), prefs.max_auto_indent); gtk_xtext_set_thin_separator(GTK_XTEXT(priv_win->xtext), prefs.thin_separator); gtk_xtext_set_max_lines(GTK_XTEXT(priv_win->xtext), prefs.max_lines); gtk_xtext_set_wordwrap(GTK_XTEXT(priv_win->xtext), prefs.wordwrap); gtk_xtext_set_show_marker(GTK_XTEXT(priv_win->xtext), prefs.show_marker); gtk_xtext_set_show_separator(GTK_XTEXT(priv_win->xtext), prefs.show_separator); gtk_xtext_set_indent(GTK_XTEXT(priv_win->xtext), prefs.indent_nicks); if (!gtk_xtext_set_font(GTK_XTEXT(priv_win->xtext), prefs.font_normal)) { fe_message ("No font is available", FE_MSG_WAIT | FE_MSG_ERROR); exit(1); } gtk_xtext_refresh(GTK_XTEXT(priv_win->xtext)); }
static void open_dialog_window (struct session *sess) { GtkWidget *hbox, *vbox, *bbox; int page = prefs.privmsgtab; struct User *user; if (!main_window) page = 0; if (!page) { sess->gui->window = wins_new (sess->channel, "", kill_session_callback, sess, link_cb, sess, FALSE, FALSE, NULL); gtk_widget_set_usize (sess->gui->window, prefs.dialog_width, prefs.dialog_height); gtk_signal_connect ((GtkObject *) sess->gui->window, "focus_in_event", GTK_SIGNAL_FUNC (focus_in), sess); sess->is_tab = FALSE; } else { sess->gui->window = wins_new (sess->channel, "", kill_session_callback, sess, link_cb, sess, TRUE, FALSE, NULL); sess->is_tab = TRUE; } sess->gui->vbox = vbox = wins_get_vbox (sess->gui->window); if (!page) sess->gui->changad = NULL; else sess->gui->changad = wins_get_notebooklabel (sess->gui->window); sess->gui->tbox = hbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 2); if (prefs.topicbar) gtk_widget_show (hbox); /* create the X ^ < > buttons */ wins_create_linkbuttons (sess->gui->window, hbox); sess->gui->topicgad = gtk_entry_new (); gtk_entry_set_editable ((GtkEntry *) sess->gui->topicgad, FALSE); gtk_container_add (GTK_CONTAINER (hbox), sess->gui->topicgad); if (prefs.inputgad_superfocus) show_and_unfocus (sess->gui->topicgad); else gtk_widget_show (sess->gui->topicgad); /*if (prefs.dialogbuttons)*/ dialog_createbuttons (sess); /*else sess->gui->button_box = 0;*/ hbox = gtk_hbox_new (FALSE, 0); sess->gui->leftpane = hbox; gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_widget_show (hbox); sess->gui->textgad = gtk_xtext_new (prefs.dialog_indent_pixels * prefs.dialog_indent_nicks, prefs.dialog_show_separator); gtk_object_set_user_data (GTK_OBJECT (sess->gui->textgad), sess); ((GtkXText *) sess->gui->textgad)->wordwrap = prefs.dialog_wordwrap; ((GtkXText *) sess->gui->textgad)->max_auto_indent = prefs.max_auto_indent; ((GtkXText *) sess->gui->textgad)->auto_indent = prefs.auto_indent; ((GtkXText *) sess->gui->textgad)->thinline = prefs.thin_separator; ((GtkXText *) sess->gui->textgad)->max_lines = prefs.max_lines; ((GtkXText *) sess->gui->textgad)->error_function = gtkutil_simpledialog; ((GtkXText *) sess->gui->textgad)->urlcheck_function = maingui_word_check; ((GtkXText *) sess->gui->textgad)->tint_red = prefs.dialog_tint_red; ((GtkXText *) sess->gui->textgad)->tint_green = prefs.dialog_tint_green; ((GtkXText *) sess->gui->textgad)->tint_blue = prefs.dialog_tint_blue; if (prefs.timestamp && prefs.dialog_indent_nicks) ((GtkXText *) sess->gui->textgad)->time_stamp = TRUE; gtk_xtext_set_palette (GTK_XTEXT (sess->gui->textgad), colors); gtk_xtext_set_font (GTK_XTEXT (sess->gui->textgad), dialog_font_normal, 0); gtk_xtext_set_background (GTK_XTEXT (sess->gui->textgad), dialogwin_pix, prefs.dialog_transparent, prefs.dialog_tint); gtk_container_add (GTK_CONTAINER (hbox), sess->gui->textgad); show_and_unfocus (sess->gui->textgad); #ifdef USE_GNOME gtk_drag_dest_set (sess->gui->textgad, GTK_DEST_DEFAULT_ALL, dnd_targets, 1, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK); gtk_signal_connect (GTK_OBJECT (sess->gui->textgad), "drag_data_received", GTK_SIGNAL_FUNC (dialog_dnd_drop), sess); #endif sess->gui->vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (sess->gui->textgad)->adj); gtk_box_pack_start (GTK_BOX (hbox), sess->gui->vscrollbar, FALSE, FALSE, 1); show_and_unfocus (sess->gui->vscrollbar); if (!sess->is_tab) gtk_signal_connect_object (GTK_OBJECT (sess->gui->window), "configure_event", GTK_SIGNAL_FUNC (maingui_configure), GTK_OBJECT (sess)); bbox = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (bbox), 0); gtk_box_pack_end (GTK_BOX (vbox), bbox, FALSE, TRUE, 2); gtk_widget_show (bbox); gtk_signal_connect (GTK_OBJECT (sess->gui->textgad), "word_click", GTK_SIGNAL_FUNC (maingui_word_clicked), sess); sess->gui->inputgad = gtk_entry_new_with_max_length (2048); gtk_container_add (GTK_CONTAINER (bbox), sess->gui->inputgad); gtk_signal_connect (GTK_OBJECT (sess->gui->inputgad), "key_press_event", GTK_SIGNAL_FUNC (key_handle_key_press), sess); if (prefs.style_inputbox) gtk_widget_set_style (sess->gui->inputgad, inputgad_style); gtk_widget_show (sess->gui->inputgad); /* create the < ^ buttons on the bottom right (maingui.c) */ gui_create_toolbox (sess, bbox); gtk_widget_show (sess->gui->window); if (page && prefs.newtabstofront) wins_bring_tofront (sess->gui->window); fe_set_title (sess); user = find_name_global (sess->server, sess->channel); if (user) { if (user->hostname) gtk_entry_set_text (GTK_ENTRY (sess->gui->topicgad), user->hostname); } }