void gaim_gtk_debug_init(void) { /* Debug window preferences. */ /* * NOTE: This must be set before prefs are loaded, and the callbacks * set after they are loaded, since prefs sets the enabled * preference here and that loads the window, which calls the * configure event, which overrides the width and height! :P */ gaim_prefs_add_none("/gaim/gtk/debug"); gaim_prefs_add_bool("/gaim/gtk/debug/enabled", FALSE); gaim_prefs_add_bool("/gaim/gtk/debug/timestamps", FALSE); gaim_prefs_add_bool("/gaim/gtk/debug/toolbar", TRUE); gaim_prefs_add_int("/gaim/gtk/debug/width", 450); gaim_prefs_add_int("/gaim/gtk/debug/height", 250); gaim_prefs_connect_callback("/gaim/gtk/debug/enabled", debug_enabled_cb, NULL); #define REGISTER_G_LOG_HANDLER(name) \ g_log_set_handler((name), G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL \ | G_LOG_FLAG_RECURSION, \ gaim_glib_log_handler, NULL) /* Register the glib/gtk log handlers. */ REGISTER_G_LOG_HANDLER(NULL); REGISTER_G_LOG_HANDLER("Gdk"); REGISTER_G_LOG_HANDLER("Gtk"); REGISTER_G_LOG_HANDLER("GdkPixbuf"); REGISTER_G_LOG_HANDLER("GLib"); REGISTER_G_LOG_HANDLER("GModule"); REGISTER_G_LOG_HANDLER("GLib-GObject"); REGISTER_G_LOG_HANDLER("GThread"); #ifdef _WIN32 if (!opt_debug) g_set_print_handler(gaim_glib_dummy_print_handler); #endif }
void gaim_log_init(void) { gaim_prefs_add_none("/core/logging"); gaim_prefs_add_bool("/core/logging/log_ims", FALSE); gaim_prefs_add_bool("/core/logging/log_chats", FALSE); gaim_prefs_add_bool("/core/logging/log_system", FALSE); gaim_prefs_add_bool("/core/logging/log_signon_signoff", FALSE); gaim_prefs_add_bool("/core/logging/log_idle_state", FALSE); gaim_prefs_add_bool("/core/logging/log_away_state", FALSE); gaim_prefs_add_bool("/core/logging/log_own_states", FALSE); gaim_prefs_add_string("/core/logging/format", "txt"); gaim_log_logger_add(&html_logger); gaim_log_logger_add(&txt_logger); gaim_log_logger_add(&old_logger); gaim_prefs_connect_callback("/core/logging/format", logger_pref_cb, NULL); gaim_prefs_trigger_callback("/core/logging/format"); logsize_users = g_hash_table_new_full((GHashFunc)_gaim_logsize_user_hash, (GEqualFunc)_gaim_logsize_user_equal, (GDestroyNotify)_gaim_logsize_user_free_key, NULL); }
void gaim_status_init(void) { void *handle = gaim_status_get_handle; gaim_prefs_add_none("/core/status"); gaim_prefs_add_none("/core/status/scores"); gaim_prefs_add_int("/core/status/scores/offline", primitive_scores[GAIM_STATUS_OFFLINE]); gaim_prefs_add_int("/core/status/scores/available", primitive_scores[GAIM_STATUS_AVAILABLE]); gaim_prefs_add_int("/core/status/scores/invisible", primitive_scores[GAIM_STATUS_INVISIBLE]); gaim_prefs_add_int("/core/status/scores/away", primitive_scores[GAIM_STATUS_AWAY]); gaim_prefs_add_int("/core/status/scores/extended_away", primitive_scores[GAIM_STATUS_EXTENDED_AWAY]); gaim_prefs_add_int("/core/status/scores/idle", primitive_scores[SCORE_IDLE]); gaim_prefs_connect_callback(handle, "/core/status/scores/offline", score_pref_changed_cb, GINT_TO_POINTER(GAIM_STATUS_OFFLINE)); gaim_prefs_connect_callback(handle, "/core/status/scores/available", score_pref_changed_cb, GINT_TO_POINTER(GAIM_STATUS_AVAILABLE)); gaim_prefs_connect_callback(handle, "/core/status/scores/invisible", score_pref_changed_cb, GINT_TO_POINTER(GAIM_STATUS_INVISIBLE)); gaim_prefs_connect_callback(handle, "/core/status/scores/away", score_pref_changed_cb, GINT_TO_POINTER(GAIM_STATUS_AWAY)); gaim_prefs_connect_callback(handle, "/core/status/scores/extended_away", score_pref_changed_cb, GINT_TO_POINTER(GAIM_STATUS_EXTENDED_AWAY)); gaim_prefs_connect_callback(handle, "/core/status/scores/idle", score_pref_changed_cb, GINT_TO_POINTER(SCORE_IDLE)); buddy_presences = g_hash_table_new_full(gaim_buddy_presences_hash, gaim_buddy_presences_equal, gaim_buddy_presences_key_free, NULL); }
static void _init_plugin(GaimPlugin * plugin) { GaimAccountOption *option; option = gaim_account_option_string_new(_("Bio Line"), "bioline", ""); prpl_info.protocol_options = g_list_prepend(prpl_info.protocol_options, option); option = gaim_account_option_int_new(_("Port"), "port", IRC_DEFAULT_PORT); prpl_info.protocol_options = g_list_prepend(prpl_info.protocol_options, option); option = gaim_account_option_string_new(_("Server"), "server", IRC_DEFAULT_SERVER); prpl_info.protocol_options = g_list_prepend(prpl_info.protocol_options, option); /** * We have to pull thumbnails, since they aren't pushed like with * other protocols. */ gaim_signal_connect(gaim_conversations_get_handle(), "conversation-created", plugin, GAIM_CALLBACK(gaym_get_photo_info), NULL); gaim_signal_connect(gaim_conversations_get_handle(), "deleting-conversation", plugin, GAIM_CALLBACK(gaym_clean_channel_members), NULL); gaim_signal_register(gaim_accounts_get_handle(), "info-updated", gaim_marshal_VOID__POINTER_POINTER, NULL, 2, gaim_value_new(GAIM_TYPE_SUBTYPE, GAIM_SUBTYPE_ACCOUNT), gaim_value_new(GAIM_TYPE_POINTER, GAIM_TYPE_CHAR)); gaim_prefs_add_none("/plugins/prpl/gaym"); gaim_prefs_add_int("/plugins/prpl/gaym/chat_room_instances", 4); gaim_prefs_add_bool("/plugins/prpl/gaym/show_join", TRUE); gaim_prefs_add_bool("/plugins/prpl/gaym/show_part", TRUE); gaim_prefs_add_bool("/plugins/prpl/gaym/show_bio_with_join", TRUE); gaim_prefs_add_bool("/plugins/prpl/gaym/botfilter_enable", FALSE); gaim_prefs_add_bool("/plugins/prpl/gaym/botfilter_ignore_null", FALSE); gaim_prefs_add_string("/plugins/prpl/gaym/botfilter_sep", "|"); gaim_prefs_add_string("/plugins/prpl/gaym/botfilter_patterns", "NULL|MODE * -i|*dantcamboy*|*Free preview*|*epowerchat*|*Live gay sex cam show*|*camboiz*"); gaim_prefs_add_string("/plugins/prpl/gaym/botfilter_url", GAYBOI_SPAM_URL); gaim_prefs_connect_callback("/plugins/prpl/gaym/botfilter_url", botfilter_url_changed_cb, NULL); gaim_prefs_add_string("/plugins/prpl/gaym/botfilter_url_result", ""); gaim_prefs_add_int("/plugins/prpl/gaym/botfilter_url_last_check", 0); _gaym_plugin = plugin; gaym_register_commands(); }
static DebugWindow * debug_window_new(void) { DebugWindow *win; GtkWidget *vbox; GtkWidget *toolbar; GtkWidget *sw; GtkWidget *button; GtkWidget *image; int width, height; win = g_new0(DebugWindow, 1); width = gaim_prefs_get_int("/gaim/gtk/debug/width"); height = gaim_prefs_get_int("/gaim/gtk/debug/height"); GAIM_DIALOG(win->window); gaim_debug(GAIM_DEBUG_INFO, "gtkdebug", "Setting dimensions to %d, %d\n", width, height); gtk_window_set_default_size(GTK_WINDOW(win->window), width, height); gtk_window_set_role(GTK_WINDOW(win->window), "debug"); gtk_window_set_title(GTK_WINDOW(win->window), _("Debug Window")); g_signal_connect(G_OBJECT(win->window), "delete_event", G_CALLBACK(debug_window_destroy), NULL); g_signal_connect(G_OBJECT(win->window), "configure_event", G_CALLBACK(configure_cb), win); /* Setup the vbox */ vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(win->window), vbox); if (gaim_prefs_get_bool("/gaim/gtk/debug/toolbar")) { /* Setup our top button bar thingie. */ toolbar = gtk_toolbar_new(); gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ); gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); /* Find button */ gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_FIND, NULL, NULL, G_CALLBACK(find_cb), win, -1); /* Save */ gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_SAVE, NULL, NULL, G_CALLBACK(save_cb), win, -1); /* Clear button */ gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), GTK_STOCK_CLEAR, NULL, NULL, G_CALLBACK(clear_cb), win, -1); gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), -1); /* Pause */ image = gtk_image_new_from_stock(GAIM_STOCK_PAUSE, GTK_ICON_SIZE_MENU); button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, _("Pause"), NULL, NULL, image, G_CALLBACK(pause_cb), win); /* Timestamps */ button = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, _("Timestamps"), NULL, NULL, NULL, G_CALLBACK(timestamps_cb), win); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), gaim_prefs_get_bool("/gaim/gtk/debug/timestamps")); win->timestamps_handle = gaim_prefs_connect_callback("/gaim/gtk/debug/timestamps", timestamps_pref_cb, button); } /* Now our scrolled window... */ sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); /* ... which has a gtkimhtml in it. */ win->text = gtk_imhtml_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(sw), win->text); /* Pack it in... Not like that, sicko. */ gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); gtk_widget_show_all(win->window); return win; }