void window_add_item(WINDOW_REC *window, WI_ITEM_REC *item, int automatic) { g_return_if_fail(window != NULL); g_return_if_fail(item != NULL); MODULE_DATA_SET(item, window); if (window->items == NULL) { window->active = item; window->active_server = item->server; } signal_emit("gui window item init", 1, item); if (!automatic || settings_get_bool("window_auto_change")) { if (automatic) signal_emit("window changed automatic", 1, window); window_set_active(window); } window->items = g_slist_append(window->items, item); signal_emit("window item new", 2, window, item); if (!automatic || g_slist_length(window->items) == 1) { window->active = NULL; window_item_set_active(window, item); } }
/* Initialize flood protection */ static void flood_init_server(IRC_SERVER_REC *server) { MODULE_SERVER_REC *rec; g_return_if_fail(server != NULL); rec = g_new0(MODULE_SERVER_REC, 1); MODULE_DATA_SET(server, rec); rec->floodlist = g_hash_table_new((GHashFunc) g_istr_hash, (GCompareFunc) g_istr_equal); }
static void notifylist_init_server(IRC_SERVER_REC *server) { MODULE_SERVER_REC *rec; g_return_if_fail(server != NULL); rec = g_new0(MODULE_SERVER_REC,1 ); MODULE_DATA_SET(server, rec); server_redirect_init((SERVER_REC *) server, "command ison", 1, ISON_EVENT, NULL); }
static void notifylist_init_server(IRC_SERVER_REC *server) { MODULE_SERVER_REC *rec; g_return_if_fail(server != NULL); if (!IS_IRC_SERVER(server)) return; rec = g_new0(MODULE_SERVER_REC,1 ); MODULE_DATA_SET(server, rec); }
static void sig_channel_created(Channel *channel) { ChannelGui *gui; gui = g_new0(ChannelGui, 1); gui->channel = channel; gui->nicklist = gui_nicklist_new(channel); gui->get_title = _get_title; MODULE_DATA_SET(channel, gui); signal_emit("gui channel created", 1, gui); }
void window_remove_item(WINDOW_REC *window, WI_ITEM_REC *item) { g_return_if_fail(window != NULL); g_return_if_fail(item != NULL); if (g_slist_find(window->items, item) == NULL) return; MODULE_DATA_SET(item, NULL); window->items = g_slist_remove(window->items, item); if (window->active == item) { window_item_set_active(window, window->items == NULL ? NULL : window->items->data); } signal_emit("window item remove", 2, window, item); }
static void sig_connected(SERVER_REC *server) { MODULE_DATA_SET(server, g_new0(MODULE_SERVER_REC, 1)); }
static void sig_channel_created(CHANNEL_REC *channel) { MODULE_DATA_SET(channel, g_new0(MODULE_CHANNEL_REC, 1)); }