📄 settings.c
字号:
static voidsettings_throttlemeterset (GtkWidget * item, int num){ session *sess = gtk_object_get_user_data (GTK_OBJECT (item->parent)); sess->setup->prefs.throttlemeter = num;}static voidsettings_page_interface_layout (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tog, *tab; GtkWidget *left_box, *right_box; static char *tabmenutext[] = { N_("Bottom"), N_("Top"), N_("Left"), N_("Right"), N_("Hidden"), NULL }; static char *metermenutext[] = { N_("Off"), N_("Progress bar"), N_("Info text"), N_("Both"), NULL }; wid = settings_create_group (vbox, _("Buttons")); settings_create_tworows (wid, &left_box, &right_box); tog = settings_create_toggle (_("Channel Mode Buttons"), right_box, prefs.chanmodebuttons, settings_ptoggle_check, &(sess->setup->prefs.chanmodebuttons)); add_tip (tog, _("Show the TNSIPMLK buttons")); tog = settings_create_toggle (_("User List Buttons"), left_box, prefs.userlistbuttons, settings_ptoggle_check, &(sess->setup->prefs.userlistbuttons)); add_tip (tog, _("Show the buttons below the user list")); wid = settings_create_group (vbox, _("Meters")); settings_create_tworows (wid, &left_box, &right_box); tab = settings_create_table (left_box); settings_create_optmenu (tab, _("Lag meter:"), metermenutext, settings_lagmeterset, sess, 0, prefs.lagometer); tab = settings_create_table (right_box); settings_create_optmenu (tab, _("Throttle meter:"), metermenutext, settings_throttlemeterset, sess, 0, prefs.throttlemeter); wid = settings_create_group (vbox, _("Tabs")); tab = settings_create_table (wid); settings_create_optmenu (tab, _("Tabs Located at:"), tabmenutext, settings_tabsset, sess, 0, prefs.tabs_position); settings_create_tworows (wid, &left_box, &right_box); tog = settings_create_toggle (_("Channel Tabs"), right_box, prefs.tabchannels, settings_ptoggle_check, &(sess->setup->prefs.tabchannels)); add_tip (tog, _("Use tabs for channels instead of separate windows")); tog = settings_create_toggle (_("Limited Tab Highlighting"), left_box, prefs.limitedtabhighlight, settings_ptoggle_check, &(sess->setup->prefs.limitedtabhighlight)); add_tip (tog, _("Only highlight channel tabs for channel messages and actions")); tog = settings_create_toggle (_("New Tabs to front"), left_box, prefs.newtabstofront, settings_ptoggle_check, &(sess->setup->prefs.newtabstofront)); add_tip (tog, _("Bring new query/channel tabs to front")); tog = settings_create_toggle (_("Private Message Tabs"), right_box, prefs.privmsgtab, settings_ptoggle_check, &(sess->setup->prefs.privmsgtab)); add_tip (tog, _("Use tabs for /query instead of separate windows")); tog = settings_create_toggle (_ ("Use a separate tab/window for server messages"),wid, prefs.use_server_tab, settings_ptoggle_check,&(sess->setup->prefs.use_server_tab)); tog = settings_create_toggle (_("Use a separate tab/window for notices and server notices"), wid, prefs.notices_tabs, settings_ptoggle_check, &(sess->setup->prefs.notices_tabs)); tog = settings_create_toggle (_ ("Use tabs for DCC, Ignore, Notify etc windows."),wid, prefs.windows_as_tabs, settings_ptoggle_check,&(sess->setup->prefs.windows_as_tabs));}static voidsettings_page_interface_mainwindow (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tab; gint row_index; wid = settings_create_group (vbox, _("Window Position")); gtkutil_label_new (_("If Left and Top are set to zero, X-Chat will use\n" "your window manager defaults."), wid); tab = settings_create_table (wid); row_index = 0; sess->setup->entry_mainw_left = settings_create_numberentry (_("Left:"), 0, 40000, 1, tab, prefs.mainwindow_left, row_index++, 0); sess->setup->entry_mainw_top = settings_create_numberentry (_("Top:"), 0, 40000, 1, tab, prefs.mainwindow_top, row_index++, 0); wid = settings_create_group (vbox, _("Window Size")); tab = settings_create_table (wid); row_index = 0; sess->setup->entry_mainw_width = settings_create_numberentry (_("Width:"), 106, 40000, 1, tab, prefs.mainwindow_width, row_index++, 0); sess->setup->entry_mainw_height = settings_create_numberentry (_("Height:"), 138, 40000, 1, tab, prefs.mainwindow_height, row_index++, 0); settings_create_toggle (_("Show Session Tree View"), wid, prefs.treeview, settings_ptoggle_check, &(sess->setup->prefs.treeview));}static voidsettings_page_interface_channelwindow (struct session *sess, GtkWidget * vbox){ settings_create_window_page (vbox, &sess->setup->font_normal, prefs.font_normal, &sess->setup->background, prefs.background, prefs.transparent, settings_transparent_check, prefs.tint, &(sess->setup->prefs.tint), &(sess->setup->prefs.show_separator), &(sess->setup->prefs.indent_nicks), &sess->setup->prefs.wordwrap, &sess->setup->check_transparent, &sess->setup->check_tint, &sess->setup->prefs.tint_red, &sess->setup->prefs.tint_green, &sess->setup->prefs.tint_blue, &sess->setup->prefs.auto_indent, sess);}static voidsettings_page_interface_dialogwindow (struct session *sess, GtkWidget * vbox){ settings_create_window_page (vbox, &sess->setup->dialog_font_normal, prefs.dialog_font_normal, &sess->setup->background_dialog, prefs.background_dialog, prefs.dialog_transparent, settings_transparent_dialog_check, prefs.dialog_tint, &(sess->setup->prefs.dialog_tint), &(sess->setup->prefs.dialog_show_separator), &(sess->setup->prefs.dialog_indent_nicks), &sess->setup->prefs.dialog_wordwrap, &sess->setup->dialog_check_transparent, &sess->setup->dialog_check_tint, &sess->setup->prefs.dialog_tint_red, &sess->setup->prefs.dialog_tint_green, &sess->setup->prefs.dialog_tint_blue, &sess->setup->prefs.auto_indent, sess);}#ifdef USE_PANELstatic voidsettings_page_interface_panel (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tog; wid = settings_create_group (vbox, _("General")); tog = settings_create_toggle (_("Hide Session on Panelize"), wid, prefs.panelize_hide, settings_ptoggle_check, &(sess->setup->prefs.panelize_hide)); add_tip (tog, _("Hide X-Chat when window moved to the panel")); wid = settings_create_group (vbox, _("Panel Applet")); tog = settings_create_toggle (_("Layout For a Vertical Panel"), wid, prefs.panel_vbox, settings_ptoggle_check, &(sess->setup->prefs.panel_vbox)); add_tip (tog, _("Layout the X-Chat panel applet for a vertical panel"));}#endifstatic voidsettings_page_irc (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tab; GtkWidget *tog; GtkWidget *left_box, *right_box; gint row_index; wid = settings_create_group (vbox, _("General")); settings_create_tworows (wid, &left_box, &right_box); tog = settings_create_toggle (_("Raw Mode Display"), left_box, prefs.raw_modes, settings_ptoggle_check, &(sess->setup->prefs.raw_modes)); add_tip (tog, _("Display raw mode changes instead of interpretations")); tog = settings_create_toggle (_("Beep on Private Messages"), left_box, prefs.beepmsg, settings_ptoggle_check, &(sess->setup->prefs.beepmsg)); add_tip (tog, _("Beep when a private message for you is received")); tog = settings_create_toggle (_("Beep on Channel Messages"), left_box, prefs.beepchans, settings_ptoggle_check, &(sess->setup->prefs.beepchans)); add_tip (tog, _("Beep when a channel message is received")); tog = settings_create_toggle (_("Send /who #chan on join."), right_box, prefs.userhost, settings_ptoggle_check, &(sess->setup->prefs.userhost)); add_tip (tog, _("Find user information when joining a channel.")); tog = settings_create_toggle (_("Perform a periodic mail check."), right_box, prefs.mail_check, settings_ptoggle_check, &(sess->setup->prefs.mail_check)); wid = settings_create_group (vbox, _("Your irc settings")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("Quit Message:"), sizeof (prefs.quitreason) - 1, tab, prefs.quitreason, &sess->setup->entry_quit, 0, 0, row_index++); settings_create_entry (_("Part Message:"), sizeof (prefs.partreason) - 1, tab, prefs.partreason, &sess->setup->entry_part, 0, 0, row_index++); gtkutil_label_new (_("These can be a filename relative to ~/.xchat/ to be\n" "used as a list of random quit or part reasons."), wid); wid = settings_create_group (vbox, _("External Programs")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("DNS Lookup Program:"), sizeof (prefs.dnsprogram) - 1, tab, prefs.dnsprogram, &sess->setup->entry_dnsprogram, 0, 0, row_index++); wid = settings_create_group (vbox, _("Timing")); tab = settings_create_table (wid); sess->setup->entry_recon_delay = settings_create_numberentry (_("Auto ReConnect Delay:"), 0, 10000, 1, tab, prefs.recon_delay, 0, _("seconds."));}static voidsettings_page_irc_ipaddress (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tab; GtkWidget *tog; gint row_index; wid = settings_create_group (vbox, _("Address")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("Hostname / IP Number:"), sizeof (prefs.hostname) - 1, tab, prefs.hostname, &sess->setup->entry_hostname, 0, 0, row_index++); gtkutil_label_new (_("Most people should leave this blank, it's only\n" "usefull for machines with multiple addresses."), wid); wid = settings_create_group (vbox, _("Public IP Address")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("DCC IP Address:"), sizeof (prefs.hostname) - 1, tab, prefs.dcc_ip_str, &sess->setup->entry_dcc_ip_str, 0, 0, row_index++); gtkutil_label_new (_("You may need to set the DCC IP Address if\n" "you're behind a NAT router or proxy firewall."), wid); tog = sess->setup->check_ip = settings_create_toggle (_("Get my IP from Server (for use in DCC Send only)"), wid, prefs.ip_from_server, settings_ptoggle_check, &(sess->setup->prefs.ip_from_server)); add_tip (tog, _("For people using a 10.* or 192.168.* IP number."));}static voidsettings_proxytypeset (GtkWidget * item, int num){ session *sess = gtk_object_get_user_data (GTK_OBJECT (item->parent)); sess->setup->prefs.proxy_type = num;}static voidsettings_page_proxy (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tab; gint row_index; static char *proxymenutext[] = { N_("(Disabled)"), N_("Wingate"), N_("Socks4"), N_("Socks5"), N_("HTTP"), NULL }; wid = settings_create_group (vbox, _("General")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("Proxy Server Hostname:"), sizeof (prefs.proxy_host) - 1, tab, prefs.proxy_host, &sess->setup->entry_proxy_host, 0, 0, row_index++); sess->setup->entry_proxy_port = settings_create_numberentry (_("Proxy Server Port:"), 0, 65535, 1, tab, prefs.proxy_port, row_index++, 0); settings_create_optmenu (tab, _("Proxy Type:"), proxymenutext, settings_proxytypeset, sess, row_index, prefs.proxy_type);}static voidsettings_page_irc_away (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tab; GtkWidget *tog; gint row_index; wid = settings_create_group (vbox, _("General")); tog = settings_create_toggle (_("Show away once"), wid, prefs.show_away_once, settings_ptoggle_check, &(sess->setup->prefs.show_away_once)); add_tip (tog, _("Only show away messages the first time they're seen")); tog = settings_create_toggle (_("Announce away messsages"), wid, prefs.show_away_message, settings_ptoggle_check, &(sess->setup->prefs.show_away_message)); add_tip (tog, _("Announce your away message to the channel(s) you are in")); wid = settings_create_group (vbox, _("Your away settings")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("Away Reason:"), sizeof (prefs.awayreason) - 1, tab, prefs.awayreason, &sess->setup->entry_away, 0, 0, row_index++);}static voidsettings_page_irc_highlighting (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tab; gint row_index; wid = settings_create_group (vbox, _("General")); tab = settings_create_table (wid); row_index = 0; settings_create_entry (_("Words to Highlight:"), sizeof (prefs.bluestring) - 1, tab, prefs.bluestring, &sess->setup->entry_bluestring, _("(separate with commas)"), 0, row_index++);}static voidsettings_page_irc_logging (struct session *sess, GtkWidget * vbox){ GtkWidget *wid; GtkWidget *tog, *tab; gint row_index; wid = settings_create_group (vbox, _("General")); tab = settings_create_table (wid); tog = settings_create_toggle (_("Logging"), wid, prefs.logging, settings_ptoggle_check, &(sess->setup->prefs.logging)); add_tip (tog, _("Enable logging conversations to disk")); tog = settings_create_toggle (_("Always timestamp logs"), wid, prefs.timestamp_logs, settings_ptoggle_check, &(sess->setup->prefs.timestamp_logs)); add_tip (tog, _("Always apply timestamp to disk logs")); row_index = 0; settings_create_entry (_("Log name mask:"), sizeof (prefs.logmask) - 1, tab, prefs.logmask, &sess->setup->logmask_entry, NULL, NULL, row_index++); settings_create_entry (_("Log timestamp format:"), 63, tab, prefs.timestamp_log_format, &sess->setup->logtimestamp_entry, NULL, NULL, row_index++);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -