Mercurial > audlegacy-plugins
diff src/icecast/icecast.c @ 2945:f390f4a68a2d
add password prompt to icecast too
author | Andrew O. Shadoura <bugzilla@tut.by> |
---|---|
date | Sun, 28 Sep 2008 19:57:46 +0300 |
parents | c634799dd0bd |
children | 947ac5c18ad3 |
line wrap: on
line diff
--- a/src/icecast/icecast.c Sun Sep 28 19:27:45 2008 +0300 +++ b/src/icecast/icecast.c Sun Sep 28 19:57:46 2008 +0300 @@ -34,6 +34,7 @@ static GtkWidget *user_entry, *password_entry, *mount_entry; static GtkWidget *public_check, *name_entry, *url_entry, *genre_entry, *description_entry; static GtkWidget *configure_bbox, *configure_ok, *configure_cancel; +static GdkColor disabled_color; static guint ice_tid = 0; static gint ice_close_timeout; @@ -501,6 +502,22 @@ return ice_get_written_time(); } +void entry_focus_in(GtkWidget *widget, gpointer data) +{ + gtk_entry_set_text(GTK_ENTRY(password_entry), ""); + gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE); + gtk_widget_modify_text(password_entry, GTK_STATE_NORMAL, NULL); +} + +void entry_focus_out(GtkWidget *widget, gpointer data) +{ + g_free(server_password); + server_password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry))); + gtk_entry_set_text(GTK_ENTRY(password_entry), _("Change password")); + gtk_widget_modify_text(password_entry, GTK_STATE_NORMAL, &disabled_color); + gtk_entry_set_visibility(GTK_ENTRY(password_entry), TRUE); +} + static void configure_ok_cb(gpointer data) { ConfigDb *db; @@ -513,9 +530,6 @@ g_free(server_user); server_user = g_strdup(gtk_entry_get_text(GTK_ENTRY(user_entry))); - g_free(server_password); - server_password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry))); - server_port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(port_spin)); ice_close_timeout = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(timeout_spin)); @@ -587,6 +601,7 @@ { GtkWidget * hbox; GtkWidget * label; + GtkStyle * style; plugin_new = plugin; @@ -688,10 +703,19 @@ password_entry = gtk_entry_new(); - gtk_entry_set_text(GTK_ENTRY(password_entry), server_password); gtk_widget_set_tooltip_text(password_entry, _("Icecast source user password")); - gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE); + style = gtk_widget_get_style(password_entry); + memcpy(&disabled_color, &(style->text[GTK_STATE_INSENSITIVE]), sizeof(GdkColor)); + gtk_widget_modify_text(password_entry, GTK_STATE_NORMAL, &disabled_color); + + gtk_entry_set_text(GTK_ENTRY(password_entry), _("Change password")); + g_signal_connect(G_OBJECT(password_entry), "focus-in-event", + G_CALLBACK(entry_focus_in), + NULL); + g_signal_connect(G_OBJECT(password_entry), "focus-out-event", + G_CALLBACK(entry_focus_out), + NULL); gtk_box_pack_start(GTK_BOX(hbox), password_entry, TRUE, TRUE, 0);