⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settings.c

📁 The major functionality added in this release includes: - Rootless mode in X11 - Widget Templt
💻 C
📖 第 1 页 / 共 5 页
字号:
static voidsettings_page_irc_notification (struct session *sess, GtkWidget * vbox){	GtkWidget *wid;	GtkWidget *tab;	GtkWidget *tog;	gint row_index;	wid = settings_create_group (vbox, _("Generic"));	tog = settings_create_toggle (_("Show notifies in active window"), wid,											prefs.show_notify_in_front_session,											settings_ptoggle_check,											&(sess->setup->											  prefs.show_notify_in_front_session));	tog =		settings_create_toggle (_("Send /whois"), wid,										prefs.whois_on_notifyonline,										settings_ptoggle_check,										&(sess->setup->prefs.whois_on_notifyonline));	wid = settings_create_group (vbox, _("User List Notify Highlighting"));	tog = settings_create_toggle (_("Highlight Notifies"), wid,											prefs.hilitenotify, settings_ptoggle_check,											&(sess->setup->prefs.hilitenotify));	add_tip (tog, _("Highlight notified users in the user list"));	tab = settings_create_table (wid);	row_index = 0;	settings_create_color_box (_("Notified User Color:"), tab,										prefs.nu_color,										&sess->setup->nu_color,										settings_nu_color_clicked, sess, row_index++);	wid = settings_create_group (vbox, _("Notification Timeouts"));	tab = settings_create_table (wid);	sess->setup->entry_timeout =		settings_create_numberentry (_("Notify Check Interval:"), 0, 960, 1, tab,								prefs.notify_timeout, 0, _("seconds (0=Disable)."));}#ifdef USE_TRANSstatic voidsettings_page_irc_charset (struct session *sess, GtkWidget * vbox){	GtkWidget *wid, *tog, *tab;	wid = settings_create_group (vbox, _("General"));	tog = settings_create_toggle (_("Enable Character Translation"), wid,											prefs.use_trans, settings_ptoggle_check,											&(sess->setup->prefs.use_trans));	tab = settings_create_table (wid);	settings_create_entry (_("Translation File:"),								  sizeof (prefs.trans_file) - 1, tab,								  prefs.trans_file,								  &sess->setup->entry_trans_file, 0,								  settings_openfiledialog, 1);	gtkutil_label_new (_("Use a ircII style translation file."), wid);}#endifstatic voidsettings_page_dcc (struct session *sess, GtkWidget * vbox){	GtkWidget *wid;	GtkWidget *tog;	wid = settings_create_group (vbox, _("General"));	tog = settings_create_toggle (_("Auto Open DCC Send Window"), wid,											prefs.autoopendccsendwindow,											settings_ptoggle_check,											&(sess->setup->prefs.											  autoopendccsendwindow));	add_tip (tog, _("Automatically open DCC Send Window"));	tog = settings_create_toggle (_("Auto Open DCC Recv Window"), wid,											prefs.autoopendccrecvwindow,											settings_ptoggle_check,											&(sess->setup->prefs.											  autoopendccrecvwindow));	add_tip (tog, _("Automatically open DCC Recv Window"));	tog = settings_create_toggle (_("Auto Open DCC Chat Window"), wid,											prefs.autoopendccchatwindow,											settings_ptoggle_check,											&(sess->setup->prefs.											  autoopendccchatwindow));	add_tip (tog, _("Automatically open DCC Chat Window"));	tog = settings_create_toggle (_("Resume on Auto Accept"), wid,											prefs.autoresume,											settings_ptoggle_check,											&(sess->setup->prefs.autoresume));	add_tip (tog, _("When Auto-Accepting DCC, try to resume."));}static voidsettings_page_dcc_filetransfer (struct session *sess, GtkWidget * vbox){	GtkWidget *wid;	GtkWidget *tab, *tog;	GtkWidget *left_box, *right_box;	gint row_index;	char buf[127];	wid = settings_create_group (vbox, _("Timeouts"));	tab = settings_create_table (wid);	row_index = 0;	sess->setup->entry_dcctimeout =		settings_create_numberentry (_("DCC Offers Timeout:"), 0, 10000, 1, tab,								prefs.dcctimeout, row_index++, _("seconds."));	sess->setup->entry_dccstalltimeout =		settings_create_numberentry (_("DCC Stall Timeout:"), 0, 10000, 1, tab,								prefs.dccstalltimeout, row_index++, _("seconds."));	wid = settings_create_group (vbox, _("Received files"));	tab = settings_create_table (wid);	row_index = 0;	sprintf (buf, "%04o", prefs.dccpermissions);	settings_create_entry (_("File Permissions:"),								  5, tab, buf,								  &sess->setup->entry_permissions, _("(octal)"), 0,								  row_index++);	settings_create_entry (_("Directory to save to:"),								  sizeof (prefs.dccdir) - 1, tab, prefs.dccdir,								  &sess->setup->entry_dccdir, 0, 0, row_index++);	tog = settings_create_toggle (_("Save file with Nickname"), wid,											prefs.dccwithnick, settings_ptoggle_check,											&(sess->setup->prefs.dccwithnick));	add_tip (tog, _("Put the sender\'s nickname in incoming filenames"));	wid = settings_create_group (vbox, _("DCC Send Options"));	tab = settings_create_table (wid);	settings_create_tworows (wid, &left_box, &right_box);	tog = settings_create_toggle (_("Fast DCC Send"), left_box,											prefs.fastdccsend, settings_ptoggle_check,											&(sess->setup->prefs.fastdccsend));	add_tip (tog, _("Don\'t wait for ACKs to send more data"));	tog = settings_create_toggle (_("Fill Spaces"), right_box,						 					prefs.dcc_send_fillspaces, settings_ptoggle_check,											&(sess->setup->prefs.dcc_send_fillspaces));	add_tip (tog, _("File names with spaces will be filled with underscore"));		sess->setup->entry_dcc_send_port_first =		settings_create_numberentry (_("First DCC Send Port:"), 0, 65535, 1, tab,								prefs.first_dcc_send_port, row_index++, _("(0=Disabled)"));	sess->setup->entry_dcc_send_port_last =		settings_create_numberentry (_("Last DCC Send Port:"), 0, 65535, 1, tab,								prefs.last_dcc_send_port, row_index++, 0);	sess->setup->entry_dcc_blocksize =		settings_create_numberentry (_("Send Block Size:"), 0, 10000, 1, tab,								prefs.dcc_blocksize, row_index++, _("(1024=Normal)"));}static voidsettings_page_ctcp (struct session *sess, GtkWidget * vbox){	GtkWidget *wid;	GtkWidget *tab;	GtkWidget *tog;	gint row_index;	wid = settings_create_group (vbox, _("Built-in Replies"));	tog = settings_create_toggle (_("Hide Version"), wid,											prefs.hidever, settings_ptoggle_check,											&(sess->setup->prefs.hidever));	add_tip (tog, _("Do not reply to CTCP version"));	wid = settings_create_group (vbox, _("Sound"));	tab = settings_create_table (wid);	row_index = 0;	settings_create_entry (_("Sound Dir:"),								  sizeof (prefs.sounddir) - 1, tab,								  prefs.sounddir,								  &sess->setup->entry_sounddir, 0, 0, row_index++);	settings_create_entry (_("Play Command:"),								  sizeof (prefs.soundcmd) - 1, tab,								  prefs.soundcmd,								  &sess->setup->entry_soundcmd, 0, 0, row_index++);}/* Create Interface */voidsettings_opengui (struct session *sess){	GtkCTreeNode *last_top;	GtkCTreeNode *last_child;	GtkWidget *dialog;	GtkWidget *hbbox;	GtkWidget *frame;	GtkWidget *ctree;	GtkWidget *book;	GtkWidget *hbox;	GtkWidget *vbox;	GtkWidget *wid;	gchar *titles[1];	gint page_index;	if (sess->setup)	{		gdk_window_show (sess->setup->settings_window->window);		return;	}	sess->setup = malloc (sizeof (struct setup));	memcpy (&sess->setup->prefs, &prefs, sizeof (struct xchatprefs));	/* prepare the dialog */	dialog = gtkutil_dialog_new (_("X-Chat: Preferences"), "preferences",										  settings_closegui, sess);	sess->setup->settings_window = dialog;	/* prepare the action area */	gtk_container_set_border_width		(GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2);	gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area),									 FALSE);	/* prepare the button box */	hbbox = gtk_hbutton_box_new ();	gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4);	gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox,							FALSE, FALSE, 0);	gtk_widget_show (hbbox);	/* i love buttons */#ifdef USE_GNOME	wid = gnome_stock_button (GNOME_STOCK_BUTTON_OK);#else	wid = gtk_button_new_with_label (_("Ok"));#endif	gtk_signal_connect (GTK_OBJECT (wid), "clicked",							  GTK_SIGNAL_FUNC (settings_ok_clicked), sess);	gtk_box_pack_start (GTK_BOX (hbbox), wid, FALSE, FALSE, 0);	gtk_widget_show (wid);#ifdef USE_GNOME	wid = gnome_stock_button (GNOME_STOCK_BUTTON_APPLY);#else	wid = gtk_button_new_with_label (_("Apply"));#endif	gtk_signal_connect (GTK_OBJECT (wid), "clicked",							  GTK_SIGNAL_FUNC (settings_apply_clicked), sess);	gtk_box_pack_start (GTK_BOX (hbbox), wid, FALSE, FALSE, 0);	gtk_widget_show (wid);#ifdef USE_GNOME	wid = gnome_stock_button (GNOME_STOCK_BUTTON_CANCEL);#else	wid = gtk_button_new_with_label (_("Cancel"));#endif	gtk_signal_connect (GTK_OBJECT (wid), "clicked",							  GTK_SIGNAL_FUNC (gtkutil_destroy),							  sess->setup->settings_window);	gtk_box_pack_start (GTK_BOX (hbbox), wid, FALSE, FALSE, 0);	gtk_widget_show (wid);	sess->setup->cancel_button = wid;	/* the main hbox */	hbox = gtk_hbox_new (FALSE, 6);	gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),							  hbox, TRUE, TRUE, 0);	gtk_widget_show (hbox);	/* the tree */	titles[0] = _("Categories");	ctree = gtk_ctree_new_with_titles (1, 0, titles);	gtk_clist_set_selection_mode (GTK_CLIST (ctree), GTK_SELECTION_BROWSE);	gtk_ctree_set_indent (GTK_CTREE (ctree), 15);	gtk_widget_set_usize (ctree, 164, 0);	gtk_box_pack_start (GTK_BOX (hbox), ctree, FALSE, FALSE, 0);	gtk_widget_show (ctree);	/* the preferences frame */	frame = gtk_frame_new (NULL);	gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);	gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0);	gtk_widget_show (frame);	/* the notebook */	book = gtk_notebook_new ();	gtk_notebook_set_show_tabs (GTK_NOTEBOOK (book), FALSE);	gtk_notebook_set_show_border (GTK_NOTEBOOK (book), FALSE);	gtk_container_add (GTK_CONTAINER (frame), book);	gtk_object_set_user_data (GTK_OBJECT (ctree), book);	gtk_signal_connect (GTK_OBJECT (ctree), "tree_select_row",							  GTK_SIGNAL_FUNC (settings_ctree_select), NULL);	page_index = 0;	vbox = settings_create_page (book, _("Interface Settings"),										  ctree, _("Interface"),										  NULL, &last_top, page_index++,										  settings_page_interface, sess);	gtk_ctree_select (GTK_CTREE (ctree), last_top);	vbox = settings_create_page (book, _("IRC Input/Output Settings"),										  ctree, _("IRC Input/Output"),										  last_top, &last_child, page_index++,										  settings_page_interface_inout, sess);	vbox = settings_create_page (book, _("Window Layout Settings"),										  ctree, _("Window Layout"),										  last_top, &last_child, page_index++,										  settings_page_interface_layout, sess);	vbox = settings_create_page (book, _("Main Window Settings"),										  ctree, _("Main Window"),										  last_top, &last_child, page_index++,										  settings_page_interface_mainwindow, sess);	vbox = settings_create_page (book, _("Channel Window Settings"),										  ctree, _("Channel Windows"),										  last_top, &last_child, page_index++,										  settings_page_interface_channelwindow, sess);	vbox = settings_create_page (book, _("Dialog Window Settings"),										  ctree, _("Dialog Windows"),										  last_top, &last_child, page_index++,										  settings_page_interface_dialogwindow, sess);#ifdef USE_PANEL	vbox = settings_create_page (book, _("Panel Settings"),										  ctree, _("Panel"),										  last_top, &last_child, page_index++,										  settings_page_interface_panel, sess);#endif	vbox = settings_create_page (book, _("IRC Settings"),										  ctree, _("IRC"),										  NULL, &last_top, page_index++,										  settings_page_irc, sess);	vbox = settings_create_page (book, _("IP Address Settings"),										  ctree, _("IP Address"),										  last_top, &last_child, page_index++,										  settings_page_irc_ipaddress, sess);	vbox = settings_create_page (book, _("Proxy Server"),										  ctree, _("Proxy Server"),										  last_top, &last_child, page_index++,										  settings_page_proxy, sess);	vbox = settings_create_page (book, _("Away Settings"),										  ctree, _("Away"),										  last_top, &last_child, page_index++,										  settings_page_irc_away, sess);	vbox = settings_create_page (book, _("Highlighting Settings"),										  ctree, _("Highlighting"),										  last_top, &last_child, page_index++,										  settings_page_irc_highlighting, sess);	vbox = settings_create_page (book, _("Logging Settings"),										  ctree, _("Logging"),										  last_top, &last_child, page_index++,										  settings_page_irc_logging, sess);	vbox = settings_create_page (book, _("Notification Settings"),										  ctree, _("Notification"),										  last_top, &last_child, page_index++,										  settings_page_irc_notification, sess);#ifdef USE_TRANS	vbox = settings_create_page (book, _("Character Set (Translation Tables)"),										  ctree, _("Character Set"),										  last_top, &last_child, page_index++,										  settings_page_irc_charset, sess);#endif	vbox = settings_create_page (book, _("CTCP Settings"),										  ctree, _("CTCP"),										  last_top, &last_child, page_index++,										  settings_page_ctcp, sess);	vbox = settings_create_page (book, _("DCC Settings"),										  ctree, _("DCC"),										  NULL, &last_top, page_index++,										  settings_page_dcc, sess);	vbox = settings_create_page (book, _("File Transfer Settings"),										  ctree, _("File Transfer"),										  last_top, &last_child, page_index++,										  settings_page_dcc_filetransfer, sess);	/* since they all fit in the window, why not expand them all */	gtk_ctree_expand_recursive ((GtkCTree *) ctree, 0);	gtk_clist_select_row (GTK_CLIST (ctree), 0, 0);	gtk_widget_show (book);	gtk_widget_show (sess->setup->settings_window);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -