Mercurial > pidgin-twitter
diff pidgin-twitter.c @ 153:07cedffb1c63
implemented UI for configuring icon update.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Fri, 25 Jul 2008 16:53:43 +0900 |
parents | 588da540685a |
children | d6ecbdee0afa |
line wrap: on
line diff
--- a/pidgin-twitter.c Fri Jul 25 07:05:04 2008 +0900 +++ b/pidgin-twitter.c Fri Jul 25 16:53:43 2008 +0900 @@ -1809,7 +1809,7 @@ size = purple_prefs_get_int(OPT_ICON_SIZE); if(size == 0) - size = 48; /* twitter icon size */ + size = DEFAULT_ICON_SIZE; dest = gdk_pixbuf_scale_simple(src, size, size, GDK_INTERP_HYPER); gdk_pixbuf_unref (src); @@ -2562,6 +2562,9 @@ gchar *filename; GtkWidget *window, *notebook, *e; const gchar *text; + GtkSpinButton *spin; + GtkObject *adjust; + gint value; builder = gtk_builder_new(); @@ -2587,11 +2590,13 @@ gtk_container_remove(GTK_CONTAINER(window), notebook); - g_signal_connect(notebook, "destroy", - G_CALLBACK(gtk_widget_destroyed), ¬ebook); +// g_signal_connect(notebook, "destroy", +// G_CALLBACK(gtk_widget_destroyed), ¬ebook); + /* connect to signals */ + /* account page */ e = GTK_WIDGET(gtk_builder_get_object (builder, "account_twitter")); g_object_set_data(G_OBJECT(e), "pref", OPT_SCREEN_NAME_TWITTER); @@ -2658,8 +2663,11 @@ g_signal_connect(e, "toggled", G_CALLBACK(bool_toggled_cb), &e); - /* utility page */ - e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_show_icon")); + + + + /* icon page */ + e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_show_icon")); g_object_set_data(G_OBJECT(e), "pref", OPT_SHOW_ICON); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), purple_prefs_get_bool(OPT_SHOW_ICON)); @@ -2667,15 +2675,15 @@ G_CALLBACK(bool_toggled_cb), &e); /* setup spin */ - e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_icon_size_spin")); + e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_icon_size_spin")); g_object_set_data(G_OBJECT(e), "pref", OPT_ICON_SIZE); - GtkSpinButton *spin = GTK_SPIN_BUTTON(e); - - int value = purple_prefs_get_int(OPT_ICON_SIZE); + spin = GTK_SPIN_BUTTON(e); + + value = purple_prefs_get_int(OPT_ICON_SIZE); twitter_debug("spin value = %d\n", value); - GtkObject *adjust = gtk_adjustment_new(value, 16, 128, 4, 1, 1); + adjust = gtk_adjustment_new(value, 16, 128, 4, 1, 1); gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); @@ -2689,37 +2697,58 @@ purple_prefs_connect_callback(plugin, OPT_ICON_SIZE, icon_size_prefs_cb, NULL); - - - e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_counter")); - g_object_set_data(G_OBJECT(e), "pref", OPT_COUNTER); + /* enable update */ + e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_enable_update")); + g_object_set_data(G_OBJECT(e), "pref", OPT_UPDATE_ICON); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), - purple_prefs_get_bool(OPT_COUNTER)); + purple_prefs_get_bool(OPT_UPDATE_ICON)); g_signal_connect(e, "toggled", G_CALLBACK(bool_toggled_cb), &e); - purple_prefs_connect_callback(plugin, OPT_COUNTER, /* xxx */ - counter_prefs_cb, NULL); - - e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_pseudo")); - g_object_set_data(G_OBJECT(e), "pref", OPT_ESCAPE_PSEUDO); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), - purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)); - g_signal_connect(e, "toggled", - G_CALLBACK(bool_toggled_cb), &e); - - e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_oops")); - g_object_set_data(G_OBJECT(e), "pref", OPT_SUPPRESS_OOPS); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), - purple_prefs_get_bool(OPT_SUPPRESS_OOPS)); - g_signal_connect(e, "toggled", - G_CALLBACK(bool_toggled_cb), &e); - - e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_notify")); - g_object_set_data(G_OBJECT(e), "pref", OPT_PREVENT_NOTIFICATION); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), - purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION)); - g_signal_connect(e, "toggled", - G_CALLBACK(bool_toggled_cb), &e); + + /* setup count spin */ + e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_max_count_spin")); + g_object_set_data(G_OBJECT(e), "pref", OPT_ICON_MAX_COUNT); + + spin = GTK_SPIN_BUTTON(e); + + value = purple_prefs_get_int(OPT_ICON_MAX_COUNT); + twitter_debug("spin value = %d\n", value); + + adjust = gtk_adjustment_new(value, 2, 10000, 1, 10, 10); + gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); + gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); + + if(value == 0) { + value = DEFAULT_ICON_MAX_COUNT; + purple_prefs_set_int(OPT_ICON_MAX_COUNT, value); + } + gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), (gdouble)value); + g_signal_connect(e, "value-changed", + G_CALLBACK(spin_changed_cb), &e); + + + /* setup days spin */ + e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_max_days_spin")); + g_object_set_data(G_OBJECT(e), "pref", OPT_ICON_MAX_DAYS); + + spin = GTK_SPIN_BUTTON(e); + + value = purple_prefs_get_int(OPT_ICON_MAX_DAYS); + twitter_debug("spin value = %d\n", value); + + adjust = gtk_adjustment_new(value, 1, 180, 1, 10, 10); + gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); + gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); + + if(value == 0) { + value = DEFAULT_ICON_MAX_DAYS; + purple_prefs_set_int(OPT_ICON_MAX_DAYS, value); + } + gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), (gdouble)value); + g_signal_connect(e, "value-changed", + G_CALLBACK(spin_changed_cb), &e); + + /* sound page */ @@ -2770,6 +2799,43 @@ G_CALLBACK(combo_changed_cb), &e); + + + + /* utility page */ + e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_counter")); + g_object_set_data(G_OBJECT(e), "pref", OPT_COUNTER); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), + purple_prefs_get_bool(OPT_COUNTER)); + g_signal_connect(e, "toggled", + G_CALLBACK(bool_toggled_cb), &e); + purple_prefs_connect_callback(plugin, OPT_COUNTER, /* xxx */ + counter_prefs_cb, NULL); + + e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_pseudo")); + g_object_set_data(G_OBJECT(e), "pref", OPT_ESCAPE_PSEUDO); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), + purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)); + g_signal_connect(e, "toggled", + G_CALLBACK(bool_toggled_cb), &e); + + e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_oops")); + g_object_set_data(G_OBJECT(e), "pref", OPT_SUPPRESS_OOPS); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), + purple_prefs_get_bool(OPT_SUPPRESS_OOPS)); + g_signal_connect(e, "toggled", + G_CALLBACK(bool_toggled_cb), &e); + + e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_notify")); + g_object_set_data(G_OBJECT(e), "pref", OPT_PREVENT_NOTIFICATION); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), + purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION)); + g_signal_connect(e, "toggled", + G_CALLBACK(bool_toggled_cb), &e); + + + + gtk_widget_show_all(notebook); return notebook; } @@ -2836,20 +2902,19 @@ purple_prefs_add_bool(OPT_COUNTER, TRUE); purple_prefs_add_bool(OPT_SUPPRESS_OOPS, TRUE); purple_prefs_add_bool(OPT_PREVENT_NOTIFICATION, FALSE); - purple_prefs_add_bool(OPT_SHOW_ICON, TRUE); purple_prefs_add_bool(OPT_API_BASE_POST, FALSE); + purple_prefs_add_int(OPT_API_BASE_GET_INTERVAL, TWITTER_DEFAULT_INTERVAL); purple_prefs_add_string(OPT_SCREEN_NAME_TWITTER, EMPTY); purple_prefs_add_string(OPT_PASSWORD_TWITTER, EMPTY); - - purple_prefs_add_int(OPT_ICON_SIZE, DEFAULT_ICON_SIZE); purple_prefs_add_string(OPT_SCREEN_NAME_WASSR, EMPTY); purple_prefs_add_string(OPT_SCREEN_NAME_IDENTICA, EMPTY); - purple_prefs_add_int(OPT_API_BASE_GET_INTERVAL, TWITTER_DEFAULT_INTERVAL); - + + purple_prefs_add_bool(OPT_SHOW_ICON, TRUE); + purple_prefs_add_int(OPT_ICON_SIZE, DEFAULT_ICON_SIZE); + purple_prefs_add_bool(OPT_UPDATE_ICON, TRUE); purple_prefs_add_int(OPT_ICON_MAX_COUNT, DEFAULT_ICON_MAX_COUNT); purple_prefs_add_int(OPT_ICON_MAX_DAYS, DEFAULT_ICON_MAX_DAYS); - } PURPLE_INIT_PLUGIN(pidgin_twitter, init_plugin, info)