276
static void auto_locate_cb(const gchar *loc_name, const gchar *loc_code, gpointer user_data)
278
xfceweather_dialog *dialog = (xfceweather_dialog *) user_data;
280
if (loc_code && loc_name) {
281
gtk_entry_set_text (GTK_ENTRY (dialog->txt_loc_code), loc_code);
282
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name), loc_name);
283
gtk_widget_set_sensitive(dialog->txt_loc_name, TRUE);
284
#if GTK_CHECK_VERSION(2,12,0)
285
gtk_widget_set_tooltip_text(dialog->txt_loc_name,loc_name);
288
gtk_entry_set_text (GTK_ENTRY (dialog->txt_loc_code), "");
289
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name), _("Unset"));
290
gtk_widget_set_sensitive(dialog->txt_loc_name, TRUE);
294
static void start_auto_locate(xfceweather_dialog *dialog)
296
gtk_widget_set_sensitive(dialog->txt_loc_name, FALSE);
297
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name), _("Detecting..."));
298
weather_search_by_ip(dialog->wd->proxy_host, dialog->wd->proxy_port,
299
auto_locate_cb, dialog);
267
303
cb_findlocation (GtkButton *button,
274
310
dialog->wd->proxy_host,
275
311
dialog->wd->proxy_port);
277
if (run_search_dialog (sdialog))
313
if (run_search_dialog (sdialog)) {
278
314
gtk_entry_set_text (GTK_ENTRY (dialog->txt_loc_code), sdialog->result);
315
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name), sdialog->result_name);
316
gtk_widget_set_sensitive(dialog->txt_loc_name, TRUE);
317
#if GTK_CHECK_VERSION(2,12,0)
318
gtk_widget_set_tooltip_text(dialog->txt_loc_name,sdialog->result_name);
280
321
free_search_dialog (sdialog);
329
370
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
332
label = gtk_label_new (_("Location code:"));
373
label = gtk_label_new (_("Location:"));
333
374
dialog->txt_loc_code = gtk_entry_new ();
375
dialog->txt_loc_name = gtk_label_new ("");
335
377
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
378
gtk_misc_set_alignment (GTK_MISC (dialog->txt_loc_name), 0, 0.5);
380
#if GTK_CHECK_VERSION(2,12,0)
381
gtk_label_set_ellipsize (GTK_LABEL(dialog->txt_loc_name), PANGO_ELLIPSIZE_END);
337
383
if (dialog->wd->location_code != NULL)
338
384
gtk_entry_set_text (GTK_ENTRY (dialog->txt_loc_code),
339
385
dialog->wd->location_code);
387
if (dialog->wd->location_name != NULL)
388
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name),
389
dialog->wd->location_name);
390
else if (dialog->wd->weatherdata &&
391
get_data (dialog->wd->weatherdata, DNAM) != NULL &&
392
strlen (get_data (dialog->wd->weatherdata, DNAM)) > 1)
393
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name),
394
get_data (dialog->wd->weatherdata, DNAM));
396
gtk_label_set_text (GTK_LABEL (dialog->txt_loc_name),
397
dialog->wd->location_code);
399
#if GTK_CHECK_VERSION(2,12,0)
400
gtk_widget_set_tooltip_text(dialog->txt_loc_name,
401
gtk_label_get_text(GTK_LABEL(dialog->txt_loc_name)));
404
if (dialog->wd->location_code == NULL) {
405
start_auto_locate(dialog);
340
407
gtk_size_group_add_widget (sg, label);
342
button = gtk_button_new ();
409
button = gtk_button_new_with_label(_("Change..."));
343
410
image = gtk_image_new_from_stock (GTK_STOCK_FIND, GTK_ICON_SIZE_BUTTON);
344
gtk_container_add (GTK_CONTAINER (button), image);
411
gtk_button_set_image (GTK_BUTTON (button), image);
345
412
g_signal_connect (G_OBJECT (button), "clicked",
346
413
G_CALLBACK (cb_findlocation), dialog);
348
415
hbox = gtk_hbox_new (FALSE, BORDER);
349
416
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
350
gtk_box_pack_start (GTK_BOX (hbox), dialog->txt_loc_code, TRUE, TRUE, 0);
417
gtk_box_pack_start (GTK_BOX (hbox), dialog->txt_loc_name, TRUE, TRUE, 0);
351
418
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
352
419
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
475
542
g_signal_connect (G_OBJECT (button_del), "clicked",
476
543
G_CALLBACK (cb_deloption), dialog);
547
dialog->chk_animate_transition =
548
gtk_check_button_new_with_label (_("Animate transitions between labels"));
549
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
550
(dialog->chk_animate_transition), dialog->wd->animation_transitions);
551
gtk_box_pack_start (GTK_BOX (vbox), dialog->chk_animate_transition, FALSE, FALSE, 0);
478
553
gtk_widget_show_all (vbox);