comparison src/gtkconn.c @ 10159:952fb08c60b0

[gaim-migrate @ 11240] Here's the deal: I got tired of inconsistency with respect to signon v. login, so I picked one. I picked "Log In" and "Login." I think they're more common and make more sense. "Log In" is the verb form, and should be used on things like a button that causes you to log in, places that say "You're logging in, please wait." "Login" is the nounish form, and should be used in places like, "Login name:" "Login Window" "login time" Sound good? committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 05 Nov 2004 05:55:48 +0000
parents 006410d0ae0c
children bce48f8324b3
comparison
equal deleted inserted replaced
10158:5dd9c1df6459 10159:952fb08c60b0
34 #include "gtkutils.h" 34 #include "gtkutils.h"
35 35
36 /* 36 /*
37 * The next couple of functions deal with the connection dialog 37 * The next couple of functions deal with the connection dialog
38 */ 38 */
39 struct signon_meter { 39 struct login_meter {
40 GaimAccount *account; 40 GaimAccount *account;
41 GtkWidget *button; 41 GtkWidget *button;
42 GtkWidget *progress; 42 GtkWidget *progress;
43 GtkWidget *status; 43 GtkWidget *status;
44 }; 44 };
50 gint active_count; 50 gint active_count;
51 GSList *meters; 51 GSList *meters;
52 }; 52 };
53 struct meter_window *meter_win = NULL; 53 struct meter_window *meter_win = NULL;
54 54
55 static void kill_meter(struct signon_meter *meter, const char *text) 55 static void kill_meter(struct login_meter *meter, const char *text)
56 { 56 {
57 if(gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(meter->progress)) == 1) 57 if(gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(meter->progress)) == 1)
58 return; 58 return;
59 59
60 gtk_widget_set_sensitive(meter->button, FALSE); 60 gtk_widget_set_sensitive(meter->button, FALSE);
67 g_free(meter_win); 67 g_free(meter_win);
68 meter_win = NULL; 68 meter_win = NULL;
69 } 69 }
70 } 70 }
71 71
72 static void cancel_signon(GtkWidget *button, struct signon_meter *meter) 72 static void cancel_login(GtkWidget *button, struct login_meter *meter)
73 { 73 {
74 if (meter->account->gc != NULL) { 74 if (meter->account->gc != NULL) {
75 meter->account->gc->wants_to_die = TRUE; 75 meter->account->gc->wants_to_die = TRUE;
76 gaim_connection_destroy(meter->account->gc); 76 gaim_connection_destroy(meter->account->gc);
77 } else { 77 } else {
88 } 88 }
89 89
90 static void cancel_all () 90 static void cancel_all ()
91 { 91 {
92 GSList *m = meter_win ? meter_win->meters : NULL; 92 GSList *m = meter_win ? meter_win->meters : NULL;
93 struct signon_meter *meter; 93 struct login_meter *meter;
94 94
95 while (m) { 95 while (m) {
96 meter = m->data; 96 meter = m->data;
97 if (gaim_connection_get_state(meter->account->gc) != GAIM_CONNECTED) 97 if (gaim_connection_get_state(meter->account->gc) != GAIM_CONNECTED)
98 cancel_signon(NULL, meter); 98 cancel_login(NULL, meter);
99 m = m->next; 99 m = m->next;
100 } 100 }
101 } 101 }
102 102
103 static gint meter_destroy(GtkWidget *window, GdkEvent *evt, struct signon_meter *meter) 103 static gint meter_destroy(GtkWidget *window, GdkEvent *evt, struct login_meter *meter)
104 { 104 {
105 return TRUE; 105 return TRUE;
106 } 106 }
107 107
108 static struct signon_meter *find_signon_meter(GaimConnection *gc) 108 static struct login_meter *find_login_meter(GaimConnection *gc)
109 { 109 {
110 GSList *m = meter_win ? meter_win->meters : NULL; 110 GSList *m = meter_win ? meter_win->meters : NULL;
111 struct signon_meter *meter; 111 struct login_meter *meter;
112 112
113 while (m) { 113 while (m) {
114 meter = m->data; 114 meter = m->data;
115 if (meter->account == gaim_connection_get_account(gc)) 115 if (meter->account == gaim_connection_get_account(gc))
116 return m->data; 116 return m->data;
129 g_object_unref(G_OBJECT(pb)); 129 g_object_unref(G_OBJECT(pb));
130 g_object_unref(G_OBJECT(scale)); 130 g_object_unref(G_OBJECT(scale));
131 return image; 131 return image;
132 } 132 }
133 133
134 static struct signon_meter * 134 static struct login_meter *
135 new_meter(GaimConnection *gc, GtkWidget *widget, 135 new_meter(GaimConnection *gc, GtkWidget *widget,
136 GtkWidget *table, gint *rows) 136 GtkWidget *table, gint *rows)
137 { 137 {
138 GtkWidget *graphic; 138 GtkWidget *graphic;
139 GtkWidget *label; 139 GtkWidget *label;
140 GtkWidget *nest_vbox; 140 GtkWidget *nest_vbox;
141 GString *name_to_print; 141 GString *name_to_print;
142 struct signon_meter *meter; 142 struct login_meter *meter;
143 143
144 144
145 meter = g_new0(struct signon_meter, 1); 145 meter = g_new0(struct login_meter, 1);
146 146
147 meter->account = gaim_connection_get_account(gc); 147 meter->account = gaim_connection_get_account(gc);
148 name_to_print = g_string_new(gaim_account_get_username(meter->account)); 148 name_to_print = g_string_new(gaim_account_get_username(meter->account));
149 149
150 (*rows)++; 150 (*rows)++;
152 152
153 graphic = create_meter_pixmap(gc); 153 graphic = create_meter_pixmap(gc);
154 154
155 nest_vbox = gtk_vbox_new (FALSE, 0); 155 nest_vbox = gtk_vbox_new (FALSE, 0);
156 156
157 g_string_prepend(name_to_print, _("Signon: ")); 157 g_string_prepend(name_to_print, _("Logging in: "));
158 label = gtk_label_new (name_to_print->str); 158 label = gtk_label_new (name_to_print->str);
159 g_string_free(name_to_print, TRUE); 159 g_string_free(name_to_print, TRUE);
160 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); 160 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
161 161
162 meter->status = gtk_label_new(""); 162 meter->status = gtk_label_new("");
165 165
166 meter->progress = gtk_progress_bar_new (); 166 meter->progress = gtk_progress_bar_new ();
167 167
168 meter->button = gaim_pixbuf_button_from_stock (_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); 168 meter->button = gaim_pixbuf_button_from_stock (_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL);
169 g_signal_connect(G_OBJECT (meter->button), "clicked", 169 g_signal_connect(G_OBJECT (meter->button), "clicked",
170 G_CALLBACK (cancel_signon), meter); 170 G_CALLBACK (cancel_login), meter);
171 171
172 gtk_table_attach (GTK_TABLE (table), graphic, 0, 1, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); 172 gtk_table_attach (GTK_TABLE (table), graphic, 0, 1, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
173 gtk_table_attach (GTK_TABLE (table), nest_vbox, 1, 2, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); 173 gtk_table_attach (GTK_TABLE (table), nest_vbox, 1, 2, *rows, *rows+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
174 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (label), FALSE, FALSE, 0); 174 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (label), FALSE, FALSE, 0);
175 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (meter->status), FALSE, FALSE, 0); 175 gtk_box_pack_start (GTK_BOX (nest_vbox), GTK_WIDGET (meter->status), FALSE, FALSE, 0);
184 } 184 }
185 185
186 static void gaim_gtk_connection_connect_progress(GaimConnection *gc, 186 static void gaim_gtk_connection_connect_progress(GaimConnection *gc,
187 const char *text, size_t step, size_t step_count) 187 const char *text, size_t step, size_t step_count)
188 { 188 {
189 struct signon_meter *meter; 189 struct login_meter *meter;
190 190
191 if(!meter_win) { 191 if(!meter_win) {
192 GtkWidget *vbox; 192 GtkWidget *vbox;
193 GtkWidget *cancel_button; 193 GtkWidget *cancel_button;
194 194
196 gtk_widget_hide(mainwindow); 196 gtk_widget_hide(mainwindow);
197 197
198 meter_win = g_new0(struct meter_window, 1); 198 meter_win = g_new0(struct meter_window, 1);
199 meter_win->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 199 meter_win->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
200 gtk_window_set_resizable(GTK_WINDOW(meter_win->window), FALSE); 200 gtk_window_set_resizable(GTK_WINDOW(meter_win->window), FALSE);
201 gtk_window_set_role(GTK_WINDOW(meter_win->window), "signon"); 201 gtk_window_set_role(GTK_WINDOW(meter_win->window), "logging_in");
202 gtk_container_set_border_width(GTK_CONTAINER(meter_win->window), 5); 202 gtk_container_set_border_width(GTK_CONTAINER(meter_win->window), 5);
203 gtk_window_set_title(GTK_WINDOW(meter_win->window), _("Signon")); 203 gtk_window_set_title(GTK_WINDOW(meter_win->window), _("Logging In"));
204 204
205 vbox = gtk_vbox_new (FALSE, 0); 205 vbox = gtk_vbox_new (FALSE, 0);
206 gtk_container_add(GTK_CONTAINER(meter_win->window), vbox); 206 gtk_container_add(GTK_CONTAINER(meter_win->window), vbox);
207 207
208 meter_win->table = gtk_table_new(1, 4, FALSE); 208 meter_win->table = gtk_table_new(1, 4, FALSE);
221 221
222 g_signal_connect(G_OBJECT(meter_win->window), "delete_event", 222 g_signal_connect(G_OBJECT(meter_win->window), "delete_event",
223 G_CALLBACK(meter_destroy), NULL); 223 G_CALLBACK(meter_destroy), NULL);
224 } 224 }
225 225
226 meter = find_signon_meter(gc); 226 meter = find_login_meter(gc);
227 if(!meter) { 227 if(!meter) {
228 meter = new_meter(gc, meter_win->window, meter_win->table, 228 meter = new_meter(gc, meter_win->window, meter_win->table,
229 &meter_win->rows); 229 &meter_win->rows);
230 230
231 meter_win->meters = g_slist_append(meter_win->meters, meter); 231 meter_win->meters = g_slist_append(meter_win->meters, meter);
236 gtk_label_set_text(GTK_LABEL(meter->status), text); 236 gtk_label_set_text(GTK_LABEL(meter->status), text);
237 } 237 }
238 238
239 static void gaim_gtk_connection_connected(GaimConnection *gc) 239 static void gaim_gtk_connection_connected(GaimConnection *gc)
240 { 240 {
241 struct signon_meter *meter = find_signon_meter(gc); 241 struct login_meter *meter = find_login_meter(gc);
242 242
243 gaim_setup(gc); 243 gaim_setup(gc);
244 244
245 #if 0 /* XXX CORE/UI */ 245 #if 0 /* XXX CORE/UI */
246 do_away_menu(); 246 do_away_menu();
251 kill_meter(meter, _("Done.")); 251 kill_meter(meter, _("Done."));
252 } 252 }
253 253
254 static void gaim_gtk_connection_disconnected(GaimConnection *gc) 254 static void gaim_gtk_connection_disconnected(GaimConnection *gc)
255 { 255 {
256 struct signon_meter *meter = find_signon_meter(gc); 256 struct login_meter *meter = find_login_meter(gc);
257 257
258 #if 0 /* XXX CORE/UI */ 258 #if 0 /* XXX CORE/UI */
259 do_away_menu(); 259 do_away_menu();
260 #endif 260 #endif
261 gaim_gtk_blist_update_protocol_actions(); 261 gaim_gtk_blist_update_protocol_actions();
392 l_del = g_list_append(l_del, del_row); 392 l_del = g_list_append(l_del, del_row);
393 gtk_tree_path_free(path); 393 gtk_tree_path_free(path);
394 394
395 gtk_tree_model_get(model, &iter, 4, &account, -1); 395 gtk_tree_model_get(model, &iter, 4, &account, -1);
396 if (!gaim_account_is_connected(account) && g_list_find(l_accts, account) == NULL) 396 if (!gaim_account_is_connected(account) && g_list_find(l_accts, account) == NULL)
397 l_accts = g_list_append(l_accts, account); 397 l_accts = g_list_append(l_accts, account);
398 } while (gtk_tree_model_iter_next(model, &iter)); 398 } while (gtk_tree_model_iter_next(model, &iter));
399 399
400 /* remove all rows */ 400 /* remove all rows */
401 /* We could just do the following, but we only want to remove accounts 401 /* We could just do the following, but we only want to remove accounts
402 * that are going to be reconnected, not accounts that have already 402 * that are going to be reconnected, not accounts that have already
490 } 490 }
491 491
492 /* 492 /*
493 * Called whenever a different account is selected in the GtkListWhatever. 493 * Called whenever a different account is selected in the GtkListWhatever.
494 */ 494 */
495 static void disconnect_tree_cb(GtkTreeSelection *sel, GtkTreeModel *model) 495 static void disconnect_tree_cb(GtkTreeSelection *sel, GtkTreeModel *model)
496 { 496 {
497 disconnect_window_update_buttons(model); 497 disconnect_window_update_buttons(model);
498 } 498 }
499 499
500 /* 500 /*
501 * Update the icon next to the account in the disconnect dialog, and 501 * Update the icon next to the account in the disconnect dialog, and
502 * gray the Reconnect All button if there is only 1 disconnected account. 502 * gray the Reconnect All button if there is only 1 disconnected account.
503 */ 503 */
504 static void disconnect_connection_change_cb(GaimConnection *gc, void *data) { 504 static void disconnect_connection_change_cb(GaimConnection *gc, void *data) {
505 GaimAccount *account = gaim_connection_get_account(gc); 505 GaimAccount *account = gaim_connection_get_account(gc);
506 GtkTreeIter iter; 506 GtkTreeIter iter;
507 GtkTreeModel *model; 507 GtkTreeModel *model;
508 GdkPixbuf *icon; 508 GdkPixbuf *icon;
509 GdkPixbuf *scale; 509 GdkPixbuf *scale;
510 GList *l_disc_accts = NULL; 510 GList *l_disc_accts = NULL;
529 gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, scale, -1); 529 gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, scale, -1);
530 530
531 /* Add */ 531 /* Add */
532 if (!gaim_account_is_connected(account2) 532 if (!gaim_account_is_connected(account2)
533 && g_list_find(l_disc_accts, account2) == NULL) 533 && g_list_find(l_disc_accts, account2) == NULL)
534 l_disc_accts = g_list_append(l_disc_accts, account2); 534 l_disc_accts = g_list_append(l_disc_accts, account2);
535 } while (gtk_tree_model_iter_next(model, &iter)); 535 } while (gtk_tree_model_iter_next(model, &iter));
536 536
537 gtk_dialog_set_response_sensitive( 537 gtk_dialog_set_response_sensitive(
538 GTK_DIALOG(disconnect_window->window), 538 GTK_DIALOG(disconnect_window->window),
539 GTK_RESPONSE_APPLY, 539 GTK_RESPONSE_APPLY,