Diff of /trunk/src/settings.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 7 by harbaum, Thu Jun 25 15:24:24 2009 UTC revision 133 by harbaum, Mon Oct 12 20:27:55 2009 UTC
# Line 71  static void location_select(location_con Line 71  static void location_select(location_con
71      gtk_widget_set_sensitive(context->but_remove,  FALSE);      gtk_widget_set_sensitive(context->but_remove,  FALSE);
72  }  }
73    
74  #ifdef USE_MAEMO  #ifdef ENABLE_MAEMO_MAPPER
75  #include "dbus.h"  #include "dbus.h"
76    
77  typedef struct {  typedef struct {
# Line 140  static void on_location_edit(GtkWidget * Line 140  static void on_location_edit(GtkWidget *
140    } else    } else
141      printf("location edit for Home\n");      printf("location edit for Home\n");
142    
143  #ifdef USE_MAEMO  #ifdef ENABLE_MAEMO_MAPPER
144    mm_context_t mm_context;    mm_context_t mm_context;
145  #else  #else
146    GtkWidget *lat, *lon;    GtkWidget *lat, *lon;
# Line 159  static void on_location_edit(GtkWidget * Line 159  static void on_location_edit(GtkWidget *
159    if(loc) pos = loc->pos;    if(loc) pos = loc->pos;
160    else    pos = context->appdata->home;    else    pos = context->appdata->home;
161    
162      /* avoid to use "nan" as the user will then not be displayed a nice */
163      /* preset value to alter */
164      if(isnan(pos.lat)) pos.lat = 0;
165      if(isnan(pos.lon)) pos.lon = 0;
166    
167    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
168                     label = gtk_label_new(_("Latitude:")), 0, 1, 1, 2);                     label = gtk_label_new(_("Latitude:")), 0, 1, 1, 2);
169    gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);    gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
170  #ifdef USE_MAEMO  #ifdef ENABLE_MAEMO_MAPPER
171    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
172                      mm_context.lat = lat_entry_new(pos.lat), 1, 2, 1, 2);                      mm_context.lat = lat_entry_new(pos.lat), 1, 2, 1, 2);
173    g_signal_connect(G_OBJECT(mm_context.lat), "changed",    g_signal_connect(G_OBJECT(mm_context.lat), "changed",
# Line 176  static void on_location_edit(GtkWidget * Line 181  static void on_location_edit(GtkWidget *
181    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
182                      label = gtk_label_new(_("Longitude:")), 0, 1, 2, 3);                      label = gtk_label_new(_("Longitude:")), 0, 1, 2, 3);
183    gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);    gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
184  #ifdef USE_MAEMO  #ifdef ENABLE_MAEMO_MAPPER
185    gtk_table_attach_defaults(GTK_TABLE(table),    gtk_table_attach_defaults(GTK_TABLE(table),
186                     mm_context.lon = lon_entry_new(pos.lon), 1, 2, 2, 3);                     mm_context.lon = lon_entry_new(pos.lon), 1, 2, 2, 3);
187    g_signal_connect(G_OBJECT(mm_context.lon), "changed",    g_signal_connect(G_OBJECT(mm_context.lon), "changed",
# Line 193  static void on_location_edit(GtkWidget * Line 198  static void on_location_edit(GtkWidget *
198      gtk_widget_set_sensitive(GTK_WIDGET(name), FALSE);      gtk_widget_set_sensitive(GTK_WIDGET(name), FALSE);
199    }    }
200    
201  #ifdef USE_MAEMO  #ifdef ENABLE_MAEMO_MAPPER
202    mm_context.appdata = context->appdata;    mm_context.appdata = context->appdata;
203    if(loc) mm_context.pos = loc->pos;    if(loc) mm_context.pos = loc->pos;
204    else    mm_context.pos = context->appdata->home;    else    mm_context.pos = context->appdata->home;
# Line 225  static void on_location_edit(GtkWidget * Line 230  static void on_location_edit(GtkWidget *
230    if(GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(dialog))) {    if(GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(dialog))) {
231      pos_t pos;      pos_t pos;
232    
233  #ifdef USE_MAEMO  #ifdef ENABLE_MAEMO_MAPPER
234      pos.lat = lat_get(mm_context.lat);      pos.lat = lat_get(mm_context.lat);
235      pos.lon = lon_get(mm_context.lon);      pos.lon = lon_get(mm_context.lon);
236  #else  #else
# Line 376  view_selection_func(GtkTreeSelection *se Line 381  view_selection_func(GtkTreeSelection *se
381  static GtkWidget *location_widget(location_context_t *context) {  static GtkWidget *location_widget(location_context_t *context) {
382    
383    GtkWidget *vbox = gtk_vbox_new(FALSE,3);    GtkWidget *vbox = gtk_vbox_new(FALSE,3);
384    
385    #ifndef USE_PANNABLE_AREA
386    context->view = gtk_tree_view_new();    context->view = gtk_tree_view_new();
387    #else
388      context->view = hildon_gtk_tree_view_new(HILDON_UI_MODE_EDIT);
389    #endif
390    
391    gtk_tree_selection_set_select_function(    gtk_tree_selection_set_select_function(
392           gtk_tree_view_get_selection(GTK_TREE_VIEW(context->view)),           gtk_tree_view_get_selection(GTK_TREE_VIEW(context->view)),
# Line 446  static GtkWidget *location_widget(locati Line 456  static GtkWidget *location_widget(locati
456    
457    g_object_unref(context->store);    g_object_unref(context->store);
458    
 #if 0  
   /* make list react on clicks */  
   g_signal_connect(context->view, "row-activated",  
                    (GCallback)gpxlist_view_onRowActivated, appdata);  
 #endif  
   
459    /* select the "active" row */    /* select the "active" row */
460    location_select(context);    location_select(context);
461    
462    /* put it into a scrolled window */    /* put it into a scrolled window */
463    #ifndef USE_PANNABLE_AREA
464    GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);    GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
465    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
466                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);                                   GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
467    gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_window),    gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_window),
468                                        GTK_SHADOW_ETCHED_IN);                                        GTK_SHADOW_ETCHED_IN);
   //  gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 3);  
469    gtk_container_add(GTK_CONTAINER(scrolled_window), context->view);    gtk_container_add(GTK_CONTAINER(scrolled_window), context->view);
470    gtk_box_pack_start_defaults(GTK_BOX(vbox), scrolled_window);    gtk_box_pack_start_defaults(GTK_BOX(vbox), scrolled_window);
471    #else
472      GtkWidget *pannable_area = hildon_pannable_area_new();
473      gtk_container_add(GTK_CONTAINER(pannable_area), context->view);
474      gtk_box_pack_start_defaults(GTK_BOX(vbox), pannable_area);
475    #endif
476    
477    /* ------- button box ------------ */    /* ------- button box ------------ */
478    
479    GtkWidget *hbox = gtk_hbox_new(TRUE,3);    GtkWidget *hbox = gtk_hbox_new(TRUE,3);
480    context->but_add = gtk_button_new_with_label(_("Add"));    context->but_add = gtk_button_new_with_label(_("Add"));
481    #if defined(USE_MAEMO) && (MAEMO_VERSION_MAJOR >= 5)
482      hildon_gtk_widget_set_theme_size(context->but_add,
483                 (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH));
484    #endif
485    gtk_box_pack_start_defaults(GTK_BOX(hbox), context->but_add);    gtk_box_pack_start_defaults(GTK_BOX(hbox), context->but_add);
486    gtk_signal_connect(GTK_OBJECT(context->but_add), "clicked",    gtk_signal_connect(GTK_OBJECT(context->but_add), "clicked",
487                       GTK_SIGNAL_FUNC(on_location_add), context);                       GTK_SIGNAL_FUNC(on_location_add), context);
488    
489    context->but_edit = gtk_button_new_with_label(_("Edit"));    context->but_edit = gtk_button_new_with_label(_("Edit"));
490    #if defined(USE_MAEMO) && (MAEMO_VERSION_MAJOR >= 5)
491      hildon_gtk_widget_set_theme_size(context->but_edit,
492                 (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH));
493    #endif
494    gtk_box_pack_start_defaults(GTK_BOX(hbox), context->but_edit);    gtk_box_pack_start_defaults(GTK_BOX(hbox), context->but_edit);
495    gtk_signal_connect(GTK_OBJECT(context->but_edit), "clicked",    gtk_signal_connect(GTK_OBJECT(context->but_edit), "clicked",
496                       GTK_SIGNAL_FUNC(on_location_edit), context);                       GTK_SIGNAL_FUNC(on_location_edit), context);
497    
498    context->but_remove = gtk_button_new_with_label(_("Remove"));    context->but_remove = gtk_button_new_with_label(_("Remove"));
499    #if defined(USE_MAEMO) && (MAEMO_VERSION_MAJOR >= 5)
500      hildon_gtk_widget_set_theme_size(context->but_remove,
501                 (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH));
502    #endif
503    gtk_widget_set_sensitive(context->but_remove,    gtk_widget_set_sensitive(context->but_remove,
504                             context->appdata->active_location);                             context->appdata->active_location);
505    gtk_box_pack_start_defaults(GTK_BOX(hbox), context->but_remove);    gtk_box_pack_start_defaults(GTK_BOX(hbox), context->but_remove);
506    gtk_signal_connect(GTK_OBJECT(context->but_remove), "clicked",    gtk_signal_connect(GTK_OBJECT(context->but_remove), "clicked",
507        GTK_SIGNAL_FUNC(on_location_remove), context);        GTK_SIGNAL_FUNC(on_location_remove), context);
508    
509    gtk_box_pack_start_defaults(GTK_BOX(vbox), hbox);    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
510    return vbox;    return vbox;
511  }  }
512    
513  void cb_menu_settings(GtkWidget *window, gpointer data) {  void cb_menu_settings(GtkWidget *window, gpointer data) {
514    appdata_t *appdata = (appdata_t *)data;    appdata_t *appdata = (appdata_t *)data;
515    GtkWidget *table, *label, *hbox, *notebook;    GtkWidget *table, *label, *hbox, *notebook;
516    GtkWidget *cbox_imperial, *cbox_load_images;    GtkWidget *cbox_imperial;
517    settings_dialog_state_t hstate;    settings_dialog_state_t hstate;
518    
519    GtkWidget *dialog = gtk_dialog_new_with_buttons(_("Settings"),    GtkWidget *dialog = gtk_dialog_new_with_buttons(_("Settings"),
# Line 504  void cb_menu_settings(GtkWidget *window, Line 525  void cb_menu_settings(GtkWidget *window,
525  #if defined(USE_MAEMO) && defined(HILDON_HELP)  #if defined(USE_MAEMO) && defined(HILDON_HELP)
526    hildon_help_dialog_help_enable(GTK_DIALOG(dialog),    hildon_help_dialog_help_enable(GTK_DIALOG(dialog),
527                   HELP_ID_SETTINGS, appdata->osso_context);                   HELP_ID_SETTINGS, appdata->osso_context);
   gtk_window_set_default_size(GTK_WINDOW(dialog), 550, 100);  
528  #endif  #endif
529    
530    #if defined(USE_MAEMO) && (MAEMO_VERSION_MAJOR >= 5)
531      gtk_window_set_default_size(GTK_WINDOW(dialog), 550, 300);
532    #endif
533    
534    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),
535                       notebook = gtk_notebook_new(), TRUE, TRUE, 0);                       notebook = gtk_notebook_new(), TRUE, TRUE, 0);
536    
# Line 548  void cb_menu_settings(GtkWidget *window, Line 572  void cb_menu_settings(GtkWidget *window,
572                     cbox_imperial, 0, 2, 0, 1, GTK_FILL, 0, 2, 0);                     cbox_imperial, 0, 2, 0, 1, GTK_FILL, 0, 2, 0);
573    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cbox_imperial),    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cbox_imperial),
574                                 appdata->imperial);                                 appdata->imperial);
   cbox_load_images = gtk_check_button_new_with_label(  
                    _("Load images"));  
   gtk_table_attach(GTK_TABLE(table),  
                    cbox_load_images, 0, 2, 1, 2, GTK_FILL, 0, 2, 0);  
   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cbox_load_images),  
                                appdata->load_images);  
   
575    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,
576                             gtk_label_new(_("Misc")));                             gtk_label_new(_("Misc")));
577    
# Line 624  void cb_menu_settings(GtkWidget *window, Line 641  void cb_menu_settings(GtkWidget *window,
641                                 appdata->cachelist_disable_screensaver);                                 appdata->cachelist_disable_screensaver);
642    gtk_table_attach(GTK_TABLE(table), cbox_cachelist_dss,    gtk_table_attach(GTK_TABLE(table), cbox_cachelist_dss,
643                     0, 2, 2, 3, GTK_FILL, 0, 2, 0);                     0, 2, 2, 3, GTK_FILL, 0, 2, 0);
644    #endif
645    
646    GtkWidget *cbox_update =    GtkWidget *cbox_update =
647      gtk_check_button_new_with_label(_("Update every 30 sec"));      gtk_check_button_new_with_label(_("Update every 30 sec"));
# Line 631  void cb_menu_settings(GtkWidget *window, Line 649  void cb_menu_settings(GtkWidget *window,
649                                 appdata->cachelist_update);                                 appdata->cachelist_update);
650    gtk_table_attach(GTK_TABLE(table), cbox_update,    gtk_table_attach(GTK_TABLE(table), cbox_update,
651                     0, 2, 3, 4, GTK_FILL, 0, 2, 0);                     0, 2, 3, 4, GTK_FILL, 0, 2, 0);
 #endif  
652    
653    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table,
654                             gtk_label_new(_("Cache list")));                             gtk_label_new(_("Cache list")));
# Line 678  void cb_menu_settings(GtkWidget *window, Line 695  void cb_menu_settings(GtkWidget *window,
695                              GTK_TOGGLE_BUTTON(hstate.cbox_gps));                              GTK_TOGGLE_BUTTON(hstate.cbox_gps));
696      appdata->imperial = gtk_toggle_button_get_active(      appdata->imperial = gtk_toggle_button_get_active(
697                              GTK_TOGGLE_BUTTON(cbox_imperial));                              GTK_TOGGLE_BUTTON(cbox_imperial));
     appdata->load_images = gtk_toggle_button_get_active(  
                             GTK_TOGGLE_BUTTON(cbox_load_images));  
698    
699      appdata->compass_damping = 0.5 + gtk_range_get_value(GTK_RANGE(scale));      appdata->compass_damping = 0.5 + gtk_range_get_value(GTK_RANGE(scale));
700    
# Line 707  void cb_menu_settings(GtkWidget *window, Line 722  void cb_menu_settings(GtkWidget *window,
722                               GTK_TOGGLE_BUTTON(cbox_goto_dss));                               GTK_TOGGLE_BUTTON(cbox_goto_dss));
723      appdata->cachelist_disable_screensaver = gtk_toggle_button_get_active(      appdata->cachelist_disable_screensaver = gtk_toggle_button_get_active(
724                               GTK_TOGGLE_BUTTON(cbox_cachelist_dss));                               GTK_TOGGLE_BUTTON(cbox_cachelist_dss));
725    #endif
726      appdata->cachelist_update = gtk_toggle_button_get_active(      appdata->cachelist_update = gtk_toggle_button_get_active(
727                               GTK_TOGGLE_BUTTON(cbox_update));                               GTK_TOGGLE_BUTTON(cbox_update));
 #endif  
728    
729      /* build some additional flags that are used to decide whether a */      /* build some additional flags that are used to decide whether a */
730      /* redraw is necessary */      /* redraw is necessary */

Legend:
Removed from v.7  
changed lines
  Added in v.133