void statusbar_items_init(void) { settings_add_time("misc", "lag_min_show", "1sec"); settings_add_str("lookandfeel", "actlist_sort", "refnum"); settings_add_bool("lookandfeel", "actlist_names", FALSE); settings_add_bool("lookandfeel", "actlist_prefer_window_name", FALSE); statusbar_item_register("window", NULL, item_window_active); statusbar_item_register("window_empty", NULL, item_window_empty); statusbar_item_register("prompt", NULL, item_window_active); statusbar_item_register("prompt_empty", NULL, item_window_empty); statusbar_item_register("topic", NULL, item_window_active); statusbar_item_register("topic_empty", NULL, item_window_empty); statusbar_item_register("lag", NULL, item_lag); statusbar_item_register("act", NULL, item_act); statusbar_item_register("more", NULL, item_more); statusbar_item_register("input", NULL, item_input); /* activity */ activity_list = NULL; signal_add("window activity", (SIGNAL_FUNC) sig_statusbar_activity_hilight); signal_add("window destroyed", (SIGNAL_FUNC) sig_statusbar_activity_window_destroyed); signal_add("window refnum changed", (SIGNAL_FUNC) sig_statusbar_activity_updated); /* more */ more_visible = NULL; signal_add("gui page scrolled", (SIGNAL_FUNC) sig_statusbar_more_updated); signal_add("window changed", (SIGNAL_FUNC) sig_statusbar_more_updated); signal_add_last("gui print text finished", (SIGNAL_FUNC) sig_statusbar_more_updated); signal_add_last("command clear", (SIGNAL_FUNC) sig_statusbar_more_updated); signal_add_last("command scrollback", (SIGNAL_FUNC) sig_statusbar_more_updated); /* lag */ last_lag = 0; last_lag_unknown = FALSE; signal_add("server lag", (SIGNAL_FUNC) sig_server_lag_updated); signal_add("window changed", (SIGNAL_FUNC) lag_check_update); signal_add("window server changed", (SIGNAL_FUNC) lag_check_update); lag_timeout_tag = g_timeout_add(5000, (GSourceFunc) sig_lag_timeout, NULL); /* input */ input_entries = g_hash_table_new((GHashFunc) g_str_hash, (GCompareFunc) g_str_equal); read_settings(); signal_add_last("setup changed", (SIGNAL_FUNC) read_settings); }
static void statusbar_read_items(CONFIG_NODE *items) { GSList *tmp; tmp = config_node_first(items->value); for (; tmp != NULL; tmp = config_node_next(tmp)) { CONFIG_NODE *node = tmp->data; statusbar_item_register(node->key, node->value, NULL); } }
/* * irssi init() */ void otr_init(void) { int ret; module_register(MODULE_NAME, "core"); theme_register(otr_formats); ret = create_module_dir(); if (ret < 0) { return; } gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); otr_lib_init(); user_state_global = otr_init_user_state(); if (!user_state_global) { IRSSI_MSG("Unable to allocate user global state"); return; } signal_add_first("server sendmsg", (SIGNAL_FUNC) sig_server_sendmsg); signal_add_first("message private", (SIGNAL_FUNC) sig_message_private); signal_add("query destroyed", (SIGNAL_FUNC) sig_query_destroyed); command_bind("otr", NULL, (SIGNAL_FUNC) cmd_otr); command_bind_first("quit", NULL, (SIGNAL_FUNC) cmd_quit); command_bind_irc_first("me", NULL, (SIGNAL_FUNC) cmd_me); statusbar_item_register("otr", NULL, otr_statusbar); statusbar_items_redraw("window"); perl_signal_register("otr event", signal_args_otr_event); }