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 key_dialog_print_text (GtkXText *xtext, char *text) { unsigned int old = prefs.hex_stamp_text; prefs.hex_stamp_text = 0; /* temporarily disable stamps */ gtk_xtext_clear (GTK_XTEXT (xtext)->buffer, 0); PrintTextRaw (GTK_XTEXT (xtext)->buffer, text, 0, 0); prefs.hex_stamp_text = old; }
void open_rawlog (struct server *serv) { GtkWidget *hbox, *vscrollbar, *vbox; char tbuf[256]; if (serv->gui->rawlog_window) { mg_bring_tofront (serv->gui->rawlog_window); return; } snprintf (tbuf, sizeof tbuf, _(DISPLAY_NAME": Raw Log (%s)"), serv->servername); serv->gui->rawlog_window = mg_create_generic_tab ("RawLog", tbuf, FALSE, TRUE, close_rawlog, serv, 640, 320, &vbox, serv); gtkutil_destroy_on_esc (serv->gui->rawlog_window); hbox = gtk_hbox_new (FALSE, 2); gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); gtk_widget_show (hbox); serv->gui->rawlog_textlist = gtk_xtext_new (colors, 0); gtk_xtext_set_tint (GTK_XTEXT (serv->gui->rawlog_textlist), prefs.hex_text_tint_red, prefs.hex_text_tint_green, prefs.hex_text_tint_blue); gtk_xtext_set_background (GTK_XTEXT (serv->gui->rawlog_textlist), channelwin_pix, prefs.hex_text_transparent); gtk_container_add (GTK_CONTAINER (hbox), serv->gui->rawlog_textlist); gtk_xtext_set_font (GTK_XTEXT (serv->gui->rawlog_textlist), prefs.hex_text_font); GTK_XTEXT (serv->gui->rawlog_textlist)->ignore_hidden = 1; gtk_widget_show (serv->gui->rawlog_textlist); vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (serv->gui->rawlog_textlist)->adj); gtk_box_pack_start (GTK_BOX (hbox), vscrollbar, FALSE, FALSE, 0); show_and_unfocus (vscrollbar); hbox = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_SPREAD); gtk_box_pack_end (GTK_BOX (vbox), hbox, 0, 0, 0); gtk_widget_show (hbox); gtkutil_button (hbox, GTK_STOCK_CLEAR, NULL, rawlog_clearbutton, serv, _("Clear Raw Log")); gtkutil_button (hbox, GTK_STOCK_SAVE_AS, NULL, rawlog_savebutton, serv, _("Save As...")); /* Copy selection to clipboard when Ctrl+Shift+C is pressed AND text auto-copy is disabled */ g_signal_connect (G_OBJECT (serv->gui->rawlog_window), "key_press_event", G_CALLBACK (rawlog_key_cb), serv->gui->rawlog_textlist); gtk_widget_show (serv->gui->rawlog_window); }
void open_rawlog (struct server *serv) { GtkWidget *hbox, *vscrollbar, *vbox; char tbuf[256]; if (serv->gui->rawlog_window) { mg_bring_tofront (serv->gui->rawlog_window); return; } snprintf (tbuf, sizeof tbuf, _("XChat: Rawlog (%s)"), serv->servername); serv->gui->rawlog_window = mg_create_generic_tab ("RawLog", tbuf, FALSE, TRUE, close_rawlog, serv, 640, 320, &vbox, serv); hbox = gtk_hbox_new (FALSE, 2); gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); gtk_widget_show (hbox); serv->gui->rawlog_textlist = gtk_xtext_new (colors, 0); gtk_xtext_set_tint (GTK_XTEXT (serv->gui->rawlog_textlist), prefs.tint_red, prefs.tint_green, prefs.tint_blue); gtk_xtext_set_background (GTK_XTEXT (serv->gui->rawlog_textlist), channelwin_pix, prefs.transparent); gtk_container_add (GTK_CONTAINER (hbox), serv->gui->rawlog_textlist); gtk_xtext_set_font (GTK_XTEXT (serv->gui->rawlog_textlist), prefs.font_normal); GTK_XTEXT (serv->gui->rawlog_textlist)->ignore_hidden = 1; gtk_widget_show (serv->gui->rawlog_textlist); vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (serv->gui->rawlog_textlist)->adj); gtk_box_pack_start (GTK_BOX (hbox), vscrollbar, FALSE, FALSE, 0); show_and_unfocus (vscrollbar); hbox = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_SPREAD); gtk_box_pack_end (GTK_BOX (vbox), hbox, 0, 0, 0); gtk_widget_show (hbox); gtkutil_button (hbox, GTK_STOCK_CLEAR, NULL, rawlog_clearbutton, serv, _("Clear rawlog")); gtkutil_button (hbox, GTK_STOCK_SAVE_AS, NULL, rawlog_savebutton, serv, _("Save As...")); gtk_widget_show (serv->gui->rawlog_window); }
static void search_search (session * sess, const gchar *text) { gtk_xtext_search_flags flags; textentry *last; GError *err = NULL; flags = ((prefs.text_search_case_match == 1? case_match: 0) | (prefs.text_search_backward == 1? backward: 0) | (prefs.text_search_highlight_all == 1? highlight: 0) | (prefs.text_search_follow == 1? follow: 0) | (prefs.text_search_regexp == 1? regexp: 0)); if (!is_session (sess)) { fe_message (_("The window you opened this Search " "for doesn't exist anymore."), FE_MSG_ERROR); return; } last = gtk_xtext_search (GTK_XTEXT (sess->gui->xtext), text, flags, &err); if (text == NULL || text[0] == 0) { return; } if (err) { fe_message (_(err->message), FE_MSG_ERROR); g_error_free (err); } else if (!last) { fe_message (_("Search hit end, not found."), FE_MSG_ERROR); } }
void fe_add_rawlog (server *serv, char *text, int len, int outbound) { char **split_text; char *new_text; size_t i; if (!serv->gui->rawlog_window) return; split_text = g_strsplit (text, "\r\n", 0); for (i = 0; i < g_strv_length (split_text); i++) { if (split_text[i][0] == 0) break; if (outbound) new_text = g_strconcat ("\0034<<\017 ", split_text[i], NULL); else new_text = g_strconcat ("\0033>>\017 ", split_text[i], NULL); gtk_xtext_append (GTK_XTEXT (serv->gui->rawlog_textlist)->buffer, new_text, strlen (new_text), 0); g_free (new_text); } g_strfreev (split_text); }
static void pevent_dialog_update (GtkWidget * wid, GtkWidget * twid) { int len, m; const char *text; char *out; int sig; GtkTreeIter iter; GtkListStore *store; if (!gtkutil_treeview_get_selected (GTK_TREE_VIEW (pevent_dialog_list), &iter, COL_ROW, &sig, -1)) return; text = gtk_entry_get_text (GTK_ENTRY (wid)); len = strlen (text); if (pevt_build_string (text, &out, &m) != 0) { fe_message (_("There was an error parsing the string"), FE_MSG_ERROR); return; } if (m > (te[sig].num_args & 0x7f)) { free (out); out = malloc (4096); snprintf (out, 4096, _("This signal is only passed %d args, $%d is invalid"), te[sig].num_args & 0x7f, m); fe_message (out, FE_MSG_WARN); free (out); return; } store = (GtkListStore *)gtk_tree_view_get_model (GTK_TREE_VIEW (pevent_dialog_list)); gtk_list_store_set (store, &iter, COL_EVENT_TEXT, text, -1); if (pntevts_text[sig]) free (pntevts_text[sig]); if (pntevts[sig]) free (pntevts[sig]); pntevts_text[sig] = malloc (len + 1); memcpy (pntevts_text[sig], text, len + 1); pntevts[sig] = out; out = malloc (len + 2); memcpy (out, text, len + 1); out[len] = '\n'; out[len + 1] = 0; check_special_chars (out, TRUE); PrintTextRaw (GTK_XTEXT (twid)->buffer, out, 0, 0); free (out); /* save this when we exit */ prefs.save_pevents = 1; }
void conversation_window_set_transparency(ConversationWindow *win, double trans) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_if_fail(win != NULL); g_return_if_fail(priv_win->xtext != NULL); gtk_xtext_set_transparency(GTK_XTEXT(priv_win->xtext), trans); }
void open_rawlog (struct server *serv) { GtkWidget *bbox, *scrolledwindow, *vbox; char tbuf[256]; if (serv->gui->rawlog_window) { mg_bring_tofront (serv->gui->rawlog_window); return; } g_snprintf (tbuf, sizeof tbuf, _(DISPLAY_NAME": Raw Log (%s)"), serv->servername); serv->gui->rawlog_window = mg_create_generic_tab ("RawLog", tbuf, FALSE, TRUE, close_rawlog, serv, 640, 320, &vbox, serv); gtkutil_destroy_on_esc (serv->gui->rawlog_window); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER (vbox), scrolledwindow); serv->gui->rawlog_textlist = gtk_xtext_new (colors, 0); gtk_container_add (GTK_CONTAINER (scrolledwindow), serv->gui->rawlog_textlist); gtk_xtext_set_font (GTK_XTEXT (serv->gui->rawlog_textlist), prefs.hex_text_font); GTK_XTEXT (serv->gui->rawlog_textlist)->ignore_hidden = 1; bbox = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_SPREAD); gtk_box_pack_end (GTK_BOX (vbox), bbox, 0, 0, 4); gtkutil_button (bbox, GTK_STOCK_CLEAR, NULL, rawlog_clearbutton, serv, _("Clear Raw Log")); gtkutil_button (bbox, GTK_STOCK_SAVE_AS, NULL, rawlog_savebutton, serv, _("Save As...")); /* Copy selection to clipboard when Ctrl+Shift+C is pressed AND text auto-copy is disabled */ g_signal_connect (G_OBJECT (serv->gui->rawlog_window), "key_press_event", G_CALLBACK (rawlog_key_cb), serv->gui->rawlog_textlist); gtk_widget_show_all (serv->gui->rawlog_window); }
void conversation_window_set_urlcheck_function(ConversationWindow *win, int (*urlcheck_function) (GtkWidget *, char *, int)) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_if_fail(win != NULL); g_return_if_fail(priv_win->xtext != NULL); gtk_xtext_set_urlcheck_function(GTK_XTEXT(priv_win->xtext), urlcheck_function); }
gpointer conversation_window_get_opaque_buffer(ConversationWindow *win) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_val_if_fail(win != NULL, NULL); g_return_val_if_fail(priv_win->xtext != NULL, NULL); return (GTK_XTEXT(priv_win->xtext)->buffer); }
void conversation_window_set_opaque_buffer(ConversationWindow *win, gpointer buf) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_if_fail(win != NULL); g_return_if_fail(priv_win->xtext != NULL); gtk_xtext_buffer_show(GTK_XTEXT(priv_win->xtext), buf, TRUE); }
void conversation_window_clear(ConversationWindow *win) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_if_fail(win != NULL); g_return_if_fail(priv_win->xtext != NULL); conversation_buffer_clear(GTK_XTEXT(priv_win->xtext)->buffer); }
static void redraw_trans_xtexts (void) { GSList *list = sess_list; struct session *sess; while (list) { sess = (struct session *) list->data; #ifdef USE_ZVT if (sess->type == SESS_SHELL) { menu_newshell_set_palette (sess); gtk_widget_queue_draw (sess->gui->textgad); } else #endif if (GTK_XTEXT (sess->gui->textgad)->transparent) gtk_xtext_refresh (GTK_XTEXT (sess->gui->textgad), 1); list = list->next; } }
void conversation_window_append_text(ConversationWindow *win, guchar *text, time_t stamp) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; g_return_if_fail(win != NULL); g_return_if_fail(priv_win->xtext != NULL); g_return_if_fail(text != NULL); conversation_buffer_append_text(GTK_XTEXT(priv_win->xtext)->buffer, text, stamp); }
gpointer conversation_buffer_new(ConversationWindow *win, gboolean timestamp) { ConversationWindowPriv *priv_win = (ConversationWindowPriv *) win; gpointer buf; g_return_val_if_fail(win != NULL, NULL); g_return_val_if_fail(priv_win->xtext != NULL, NULL); buf = gtk_xtext_buffer_new(GTK_XTEXT(priv_win->xtext)); conversation_buffer_set_time_stamp(buf, timestamp); return buf; }
static void search_search (session * sess, const gchar *text) { if (!is_session (sess)) { fe_message (_("The window you opened this Search " "for doesn't exist anymore."), FE_MSG_ERROR); return; } last = gtk_xtext_search (GTK_XTEXT (sess->gui->xtext), text, last, case_match, search_backward); if (!last) fe_message (_("Search hit end, not found."), FE_MSG_ERROR); }
static void savebuffer_req_done (session *sess, char *file) { #if 0 int fh; if (!file) return; fh = open (file, O_TRUNC | O_WRONLY | O_CREAT, 0600); if (fh != -1) { gtk_xtext_save (GTK_XTEXT (sess->gui->xtext), fh); close (fh); } #endif }
static void rawlog_save (server *serv, char *file) { int fh = -1; if (file) { if (serv->gui->rawlog_window) fh = hexchat_open_file (file, O_TRUNC | O_WRONLY | O_CREAT, 0600, XOF_DOMODE | XOF_FULLPATH); if (fh != -1) { gtk_xtext_save (GTK_XTEXT (serv->gui->rawlog_textlist), fh); close (fh); } } }
ConversationWindow * conversation_window_new(void) { ConversationWindowPriv *priv_win = g_slice_new0(ConversationWindowPriv); ConversationWindow *win = (ConversationWindow *) priv_win; win->widget = gtk_hbox_new(FALSE, 2); priv_win->xtext = gtk_xtext_new(colors, 0); gtk_box_pack_start(GTK_BOX(win->widget), priv_win->xtext, TRUE, TRUE, 0); priv_win->vs = gtk_vscrollbar_new(GTK_XTEXT(priv_win->xtext)->adj); gtk_box_pack_start(GTK_BOX(win->widget), priv_win->vs, FALSE, FALSE, 0); gtk_widget_show_all(win->widget); return win; }
static void key_dialog_sel_act (GtkWidget * un, int num) { int row = gtkutil_clist_selection (key_dialog_kb_clist); struct key_binding *kb; if (row != -1) { kb = gtk_clist_get_row_data (GTK_CLIST (key_dialog_kb_clist), row); kb->action = num; gtk_clist_set_text (GTK_CLIST (key_dialog_kb_clist), row, 2, _(key_actions[num].name)); if (key_actions[num].help) { key_print_text (GTK_XTEXT (key_dialog_text), _(key_actions[num].help)); } } }
void key_dialog_show () { GtkWidget *vbox, *box; GtkWidget *view, *xtext; GtkListStore *store; if (key_dialog) { mg_bring_tofront (key_dialog); return; } key_dialog = mg_create_generic_tab ("editkeys", _(DISPLAY_NAME": Keyboard Shortcuts"), TRUE, FALSE, key_dialog_close, NULL, 600, 360, &vbox, 0); view = key_dialog_treeview_new (vbox); xtext = gtk_xtext_new (colors, 0); gtk_box_pack_start (GTK_BOX (vbox), xtext, FALSE, TRUE, 2); gtk_xtext_set_font (GTK_XTEXT (xtext), prefs.hex_text_font); g_object_set_data (G_OBJECT (key_dialog), "view", view); g_object_set_data (G_OBJECT (key_dialog), "xtext", xtext); box = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (box), GTK_BUTTONBOX_SPREAD); gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 2); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtkutil_button (box, GTK_STOCK_NEW, NULL, key_dialog_add, NULL, _("Add")); gtkutil_button (box, GTK_STOCK_DELETE, NULL, key_dialog_delete, NULL, _("Delete")); gtkutil_button (box, GTK_STOCK_CANCEL, NULL, key_dialog_close, NULL, _("Cancel")); gtkutil_button (box, GTK_STOCK_SAVE, NULL, key_dialog_save, NULL, _("Save")); store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (view))); key_dialog_load (store); gtk_widget_show_all (key_dialog); }
static void key_dialog_sel_row (GtkWidget * clist, gint row, gint column, GdkEventButton * evt, gpointer data) { struct key_binding *kb = gtk_clist_get_row_data (GTK_CLIST (clist), row); if (kb == NULL) { printf ("*** key_dialog_sel_row: kb == NULL\n"); abort (); } if (kb->action > -1 && kb->action <= KEY_MAX_ACTIONS) { gtk_option_menu_set_history (GTK_OPTION_MENU (key_dialog_act_menu), kb->action); if (key_actions[kb->action].help) { key_print_text (GTK_XTEXT (key_dialog_text), _(key_actions[kb->action].help)); } } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (key_dialog_tog_c), (kb->mod & STATE_CTRL) == STATE_CTRL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (key_dialog_tog_s), (kb->mod & STATE_SHIFT) == STATE_SHIFT); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (key_dialog_tog_a), (kb->mod & STATE_ALT) == STATE_ALT); if (kb->data1) gtk_entry_set_text (GTK_ENTRY (key_dialog_ent_d1), kb->data1); else gtk_entry_set_text (GTK_ENTRY (key_dialog_ent_d1), ""); if (kb->data2) gtk_entry_set_text (GTK_ENTRY (key_dialog_ent_d2), kb->data2); else gtk_entry_set_text (GTK_ENTRY (key_dialog_ent_d2), ""); if (kb->keyname) gtk_entry_set_text (GTK_ENTRY (key_dialog_ent_key), kb->keyname); else gtk_entry_set_text (GTK_ENTRY (key_dialog_ent_key), ""); }
void fe_add_rawlog (server *serv, char *text, int len, int outbound) { char *new_text; if (!serv->gui->rawlog_window) return; new_text = malloc (len + 7); len = sprintf (new_text, "\0033>>\017 %s", text); if (outbound) { new_text[1] = '4'; new_text[2] = '<'; new_text[3] = '<'; } gtk_xtext_append (GTK_XTEXT (serv->gui->rawlog_textlist)->buffer, new_text, len); free (new_text); }
void fe_lastlog (session *sess, session *lastlog_sess, char *sstr) { textentry *ent; ent = GTK_XTEXT(sess->gui->textgad)->text_first; if (!ent) { PrintText (lastlog_sess, "Search buffer is empty.\n"); } else { do { if (nocasestrstr (ent->str, sstr)) PrintText (lastlog_sess, ent->str); ent = ent->next; } while (ent); } }
static void pevent_test_cb (GtkWidget * wid, GtkWidget * twid) { int len, n; char *out, *text; for (n = 0; n < NUM_XP; n++) { text = _(pntevts_text[n]); len = strlen (text); out = malloc (len + 2); memcpy (out, text, len + 1); out[len] = '\n'; out[len + 1] = 0; check_special_chars (out, TRUE); PrintTextRaw (GTK_XTEXT (twid)->buffer, out, 0, 0); free (out); } }
static void key_dialog_selection_changed (GtkTreeSelection *sel, gpointer userdata) { GtkTreeModel *model; GtkTreeIter iter; GtkXText *xtext; char *actiontext; int action; if (!gtk_tree_selection_get_selected (sel, &model, &iter) || model == NULL) return; xtext = GTK_XTEXT (g_object_get_data (G_OBJECT (key_dialog), "xtext")); gtk_tree_model_get (model, &iter, ACTION_COLUMN, &actiontext, -1); if (actiontext) { action = key_get_action_from_string (actiontext); key_dialog_print_text (xtext, key_actions[action].help); g_free (actiontext); } else key_dialog_print_text (xtext, _("Select a row to get help information on its Action.")); }
static void key_dialog_combo_changed (GtkCellRendererCombo *combo, gchar *pathstr, GtkTreeIter *new_iter, gpointer data) { GtkTreeModel *model; GtkXText *xtext; gchar *actiontext = NULL; gint action; xtext = GTK_XTEXT (g_object_get_data (G_OBJECT (key_dialog), "xtext")); model = GTK_TREE_MODEL (data); gtk_tree_model_get (model, new_iter, 0, &actiontext, -1); if (actiontext) { #ifdef WIN32 /* We need to manually update the store */ GtkTreePath *path; GtkTreeIter iter; path = gtk_tree_path_new_from_string (pathstr); model = get_store (); gtk_tree_model_get_iter (model, &iter, path); gtk_list_store_set (GTK_LIST_STORE (model), &iter, ACTION_COLUMN, actiontext, -1); gtk_tree_path_free (path); #endif action = key_get_action_from_string (actiontext); key_dialog_print_text (xtext, key_actions[action].help); g_free (actiontext); } }
static int rawlog_clearbutton (GtkWidget * wid, server *serv) { gtk_xtext_clear (GTK_XTEXT (serv->gui->rawlog_textlist)->buffer, 0); return FALSE; }
void pevent_dialog_show () { GtkWidget *vbox, *hbox, *tbox, *wid, *bh, *th; GtkListStore *store, *hstore; GtkTreeSelection *sel; if (pevent_dialog) { mg_bring_tofront (pevent_dialog); return; } pevent_dialog = mg_create_generic_tab ("edit events", _("Edit Events"), TRUE, FALSE, pevent_dialog_close, NULL, 600, 455, &vbox, 0); wid = gtk_vpaned_new (); th = gtk_vbox_new (0, 2); bh = gtk_vbox_new (0, 2); gtk_widget_show (th); gtk_widget_show (bh); gtk_paned_pack1 (GTK_PANED (wid), th, 1, 1); gtk_paned_pack2 (GTK_PANED (wid), bh, 0, 1); gtk_box_pack_start (GTK_BOX (vbox), wid, 1, 1, 0); gtk_widget_show (wid); store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); pevent_dialog_list = gtkutil_treeview_new (th, GTK_TREE_MODEL (store), NULL, COL_EVENT_NAME, _("Event"), COL_EVENT_TEXT, _("Text"), -1); sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (pevent_dialog_list)); g_signal_connect (G_OBJECT (sel), "changed", G_CALLBACK (pevent_dialog_select), store); pevent_dialog_twid = gtk_xtext_new (colors, 0); gtk_xtext_set_tint (GTK_XTEXT (pevent_dialog_twid), prefs.tint_red, prefs.tint_green, prefs.tint_blue); gtk_xtext_set_background (GTK_XTEXT (pevent_dialog_twid), channelwin_pix, prefs.transparent); pevent_dialog_entry = gtk_entry_new_with_max_length (255); g_signal_connect (G_OBJECT (pevent_dialog_entry), "activate", G_CALLBACK (pevent_dialog_update), pevent_dialog_twid); gtk_box_pack_start (GTK_BOX (bh), pevent_dialog_entry, 0, 0, 0); gtk_widget_show (pevent_dialog_entry); tbox = gtk_hbox_new (0, 0); gtk_container_add (GTK_CONTAINER (bh), tbox); gtk_widget_show (tbox); gtk_widget_set_usize (pevent_dialog_twid, 150, 20); gtk_container_add (GTK_CONTAINER (tbox), pevent_dialog_twid); gtk_xtext_set_font (GTK_XTEXT (pevent_dialog_twid), prefs.font_normal); wid = gtk_vscrollbar_new (GTK_XTEXT (pevent_dialog_twid)->adj); gtk_box_pack_start (GTK_BOX (tbox), wid, FALSE, FALSE, 0); show_and_unfocus (wid); gtk_widget_show (pevent_dialog_twid); hstore = gtk_list_store_new (2, G_TYPE_INT, G_TYPE_STRING); pevent_dialog_hlist = gtkutil_treeview_new (bh, GTK_TREE_MODEL (hstore), NULL, 0, _("$ Number"), 1, _("Description"), -1); gtk_widget_show (pevent_dialog_hlist); pevent_dialog_fill (pevent_dialog_list); gtk_widget_show (pevent_dialog_list); hbox = gtk_hbutton_box_new (); gtk_box_pack_end (GTK_BOX (vbox), hbox, 0, 0, 2); /*wid = gtk_button_new_with_label (_("Save")); gtk_box_pack_end (GTK_BOX (hbox), wid, 0, 0, 0); gtk_signal_connect (GTK_OBJECT (wid), "clicked", GTK_SIGNAL_FUNC (pevent_save_cb), NULL); gtk_widget_show (wid);*/ gtkutil_button (hbox, GTK_STOCK_SAVE_AS, NULL, pevent_save_cb, (void *) 1, _("Save As...")); gtkutil_button (hbox, GTK_STOCK_OPEN, NULL, pevent_load_cb, (void *) 0, _("Load From...")); wid = gtk_button_new_with_label (_("Test All")); gtk_box_pack_end (GTK_BOX (hbox), wid, 0, 0, 0); g_signal_connect (G_OBJECT (wid), "clicked", G_CALLBACK (pevent_test_cb), pevent_dialog_twid); gtk_widget_show (wid); wid = gtk_button_new_from_stock (GTK_STOCK_OK); gtk_box_pack_start (GTK_BOX (hbox), wid, 0, 0, 0); g_signal_connect (G_OBJECT (wid), "clicked", G_CALLBACK (pevent_ok_cb), NULL); gtk_widget_show (wid); gtk_widget_show (hbox); gtk_widget_show (pevent_dialog); }