Diff of /trunk/src/main.c

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

revision 227 by harbaum, Tue Jul 14 19:07:25 2009 UTC revision 228 by harbaum, Wed Jul 15 20:32:39 2009 UTC
# Line 911  static gboolean follow_gps_get_toggle(ap Line 911  static gboolean follow_gps_get_toggle(ap
911    return appdata->settings->follow_gps;    return appdata->settings->follow_gps;
912  }  }
913    
914    static gboolean  on_delete_event(GtkWidget *widget, GdkEvent  *event,
915                                     gpointer   user_data) {
916      printf("delete-event\n");
917      return FALSE;
918    }
919    
920  /* create a HildonAppMenu */  /* create a HildonAppMenu */
921  static GtkWidget *app_menu_create(appdata_t *appdata,  static GtkWidget *app_menu_create(appdata_t *appdata,
922                                    const menu_entry_t *menu_entries) {                                    const menu_entry_t *menu_entries) {
# Line 947  static GtkWidget *app_menu_create(appdat Line 953  static GtkWidget *app_menu_create(appdat
953      menu_entries++;      menu_entries++;
954    }    }
955    
956      //  g_signal_connect(menu, "delete-event",
957      //               G_CALLBACK(gtk_widget_hide_on_delete), NULL);
958    
959      g_signal_connect(menu, "delete-event",
960                       G_CALLBACK(on_delete_event), NULL);
961    
962    gtk_widget_show_all(GTK_WIDGET(menu));    gtk_widget_show_all(GTK_WIDGET(menu));
963    return GTK_WIDGET(menu);    return GTK_WIDGET(menu);
964  }  }
965    
966    static void submenu_popup(GtkWidget *menu) {
967      GtkWidget *top = hildon_window_stack_peek(hildon_window_stack_get_default());
968    
969    #if 0
970      int start, end;
971      GTimeVal tv;
972      g_get_current_time(&tv);
973      start = tv.tv_sec * 1000 + tv.tv_usec / 1000;
974      do {
975        if(gtk_events_pending())
976          while(gtk_events_pending()) {
977            putchar('.'); fflush(stdout);
978            gtk_main_iteration();
979          }
980        else
981          usleep(100);
982    
983        g_get_current_time(&tv);
984        end = tv.tv_sec * 1000 + tv.tv_usec / 1000;
985      } while(end-start < 500);
986    #endif
987    
988    
989    
990      hildon_app_menu_popup(HILDON_APP_MENU(menu), GTK_WINDOW(top));
991    }
992    
993  /* the view submenu */  /* the view submenu */
994  void on_submenu_view_clicked(GtkButton *button, appdata_t *appdata) {  void on_submenu_view_clicked(GtkButton *button, appdata_t *appdata) {
995    hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_view),    submenu_popup(appdata->app_menu_view);
                         GTK_WINDOW(appdata->window));  
996  }  }
997    
998  void on_submenu_map_clicked(GtkButton *button, appdata_t *appdata) {  void on_submenu_map_clicked(GtkButton *button, appdata_t *appdata) {
999    hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_map),    submenu_popup(appdata->app_menu_map);
                         GTK_WINDOW(appdata->window));  
1000  }  }
1001    
1002  void on_submenu_wms_clicked(GtkButton *button, appdata_t *appdata) {  void on_submenu_wms_clicked(GtkButton *button, appdata_t *appdata) {
1003    hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_wms),    submenu_popup(appdata->app_menu_wms);
                         GTK_WINDOW(appdata->window));  
1004  }  }
1005    
1006  void on_submenu_track_clicked(GtkButton *button, appdata_t *appdata) {  void on_submenu_track_clicked(GtkButton *button, appdata_t *appdata) {
1007    hildon_app_menu_popup(HILDON_APP_MENU(appdata->app_menu_track),    submenu_popup(appdata->app_menu_track);
                         GTK_WINDOW(appdata->window));  
1008  }  }
1009    
1010  #define APP_OFFSET(a)  offsetof(appdata_t, a)  #define APP_OFFSET(a)  offsetof(appdata_t, a)
# Line 1057  void menu_create(appdata_t *appdata) { Line 1092  void menu_create(appdata_t *appdata) {
1092    /* build menu/submenus */    /* build menu/submenus */
1093    menu = HILDON_APP_MENU(app_menu_create(appdata, main_menu));    menu = HILDON_APP_MENU(app_menu_create(appdata, main_menu));
1094    appdata->app_menu_wms   = app_menu_create(appdata, submenu_wms);    appdata->app_menu_wms   = app_menu_create(appdata, submenu_wms);
1095      g_object_ref(appdata->app_menu_wms);
1096    appdata->app_menu_map   = app_menu_create(appdata, submenu_map);    appdata->app_menu_map   = app_menu_create(appdata, submenu_map);
1097      g_object_ref(appdata->app_menu_map);
1098    appdata->app_menu_view  = app_menu_create(appdata, submenu_view);    appdata->app_menu_view  = app_menu_create(appdata, submenu_view);
1099      g_object_ref(appdata->app_menu_view);
1100    appdata->app_menu_track = app_menu_create(appdata, submenu_track);    appdata->app_menu_track = app_menu_create(appdata, submenu_track);
1101      g_object_ref(appdata->app_menu_track);
1102    
1103    /* enable/disable some entries according to settings */    /* enable/disable some entries according to settings */
1104    if(appdata && appdata->settings)    if(appdata && appdata->settings)

Legend:
Removed from v.227  
changed lines
  Added in v.228