Diff of /trunk/src/main.c

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

revision 19 by harbaum, Mon Jun 29 12:44:57 2009 UTC revision 20 by harbaum, Sat Jul 4 19:42:28 2009 UTC
# Line 1035  cb_menu_about(GtkWidget *window, gpointe Line 1035  cb_menu_about(GtkWidget *window, gpointe
1035    char *str = g_strdup_printf("%s\n\n(%s)",    char *str = g_strdup_printf("%s\n\n(%s)",
1036                        _("GPXView (c) 2008-2009 by\n"                        _("GPXView (c) 2008-2009 by\n"
1037                          "Till Harbaum <till@harbaum.org>\n"                          "Till Harbaum <till@harbaum.org>\n"
1038                          "Mailing list: gpxview-users@garage.maemo.org"                          "Mailing list: gpxview-users@garage.maemo.org"),
1039                        _(uses)                        _(uses)
1040                        );                        );
1041    
# Line 1493  static void Line 1493  static void
1493  cb_menu_export_log(GtkWidget *widget, gpointer data) {  cb_menu_export_log(GtkWidget *widget, gpointer data) {
1494    appdata_t *appdata = (appdata_t*)data;    appdata_t *appdata = (appdata_t*)data;
1495    notes_log_export(appdata);    notes_log_export(appdata);
1496    #ifdef USE_STACKABLE_WINDOW
1497      hildon_window_stack_pop_1 (hildon_window_stack_get_default());
1498    #endif
1499  }  }
1500    
1501  #ifdef USE_MAEMO  #ifdef USE_MAEMO
# Line 1500  static void Line 1503  static void
1503  cb_menu_export_mmpoi(GtkWidget *widget, gpointer data) {  cb_menu_export_mmpoi(GtkWidget *widget, gpointer data) {
1504    appdata_t *appdata = (appdata_t*)data;    appdata_t *appdata = (appdata_t*)data;
1505    mmpoi_export(appdata);    mmpoi_export(appdata);
1506    #ifdef USE_STACKABLE_WINDOW
1507      hildon_window_stack_pop_1 (hildon_window_stack_get_default());
1508    #endif
1509  }  }
1510  #endif  #endif
1511    
# Line 1507  static void Line 1513  static void
1513  cb_menu_export_garmin(GtkWidget *widget, gpointer data) {  cb_menu_export_garmin(GtkWidget *widget, gpointer data) {
1514    appdata_t *appdata = (appdata_t*)data;    appdata_t *appdata = (appdata_t*)data;
1515    garmin_export(appdata);    garmin_export(appdata);
1516    #ifdef USE_STACKABLE_WINDOW
1517      hildon_window_stack_pop_1 (hildon_window_stack_get_default());
1518    #endif
1519  }  }
1520    
1521  static void  static void
1522  cb_menu_geomath(GtkWidget *window, gpointer data) {  cb_menu_geomath(GtkWidget *window, gpointer data) {
1523    geomath_dialog((appdata_t *)data);    geomath_dialog((appdata_t *)data);
1524    #ifdef USE_STACKABLE_WINDOW
1525      hildon_window_stack_pop_1 (hildon_window_stack_get_default());
1526    #endif
1527  }  }
1528    
1529  static void  static void
1530  cb_menu_geotext(GtkWidget *window, gpointer data) {  cb_menu_geotext(GtkWidget *window, gpointer data) {
1531    geotext_dialog((appdata_t *)data);    geotext_dialog((appdata_t *)data);
1532    #ifdef USE_STACKABLE_WINDOW
1533      hildon_window_stack_pop_1 (hildon_window_stack_get_default());
1534    #endif
1535  }  }
1536    
1537  static void  static void
1538  cb_menu_precpos(GtkWidget *window, gpointer data) {  cb_menu_precpos(GtkWidget *window, gpointer data) {
1539    precise_position((appdata_t *)data);    precise_position((appdata_t *)data);
 }  
   
1540  #ifdef USE_STACKABLE_WINDOW  #ifdef USE_STACKABLE_WINDOW
1541  static void on_export_destroy(GtkWidget *widget, appdata_t *appdata) {    hildon_window_stack_pop_1 (hildon_window_stack_get_default());
1542    appdata->cur_view = g_object_get_data(G_OBJECT(widget), "cur_view");  #endif
1543  }  }
1544    
1545  void on_export_clicked(GtkButton *button, appdata_t *appdata) {  #ifdef USE_STACKABLE_WINDOW
1546    HildonStackableWindow *view_window;  static GtkWidget *export_menu_create(appdata_t *appdata) {
1547    GtkWidget *but;    GtkWidget *button;
1548      HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new());
   view_window = HILDON_STACKABLE_WINDOW (hildon_stackable_window_new ());  
   gtk_window_set_title (GTK_WINDOW (view_window), "GPXView - Export");  
   
    /* store last "cur_view" in window */  
   g_object_set_data(G_OBJECT(view_window), "cur_view", appdata->cur_view);  
   appdata->cur_view = NULL;  
   
   g_signal_connect(G_OBJECT(view_window), "destroy",  
                    G_CALLBACK(on_export_destroy), appdata);  
   
   GtkVBox *contents = GTK_VBOX(gtk_vbox_new (12, FALSE));  
1549    
1550    but = hildon_button_new_with_text(    button = hildon_button_new_with_text(
1551              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1552              HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1553              _("Export to Maemo Mapper"),              _("Export to Maemo Mapper"),
1554              _("Save a Maemo Mapper POI file"));              _("Save a Maemo Mapper POI file"));
1555    g_signal_connect(but, "clicked",    g_signal_connect(button, "clicked",
1556                     G_CALLBACK(cb_menu_export_mmpoi), appdata);                     G_CALLBACK(cb_menu_export_mmpoi), appdata);
1557    gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);    hildon_app_menu_append(menu, GTK_BUTTON(button));
   
1558    
1559    but = hildon_button_new_with_text(    button = hildon_button_new_with_text(
1560              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1561              HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1562              _("Export Field Notes"),              _("Export Field Notes"),
1563              _("Save a Garmin Field Notes file"));              _("Save a Garmin Field Notes file"));
1564    g_signal_connect(but, "clicked",    g_signal_connect(button, "clicked",
1565                     G_CALLBACK(cb_menu_export_log), appdata);                     G_CALLBACK(cb_menu_export_log), appdata);
1566    gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);    hildon_app_menu_append(menu, GTK_BUTTON(button));
   
1567    
1568    but = hildon_button_new_with_text(    button = hildon_button_new_with_text(
1569              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1570              HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1571              _("Export Garmin GPX"),              _("Export Garmin GPX"),
1572              _("Save a GPX file containing modified waypoints"));              _("Save modified waypoints in GPX file"));
1573    g_signal_connect(but, "clicked",    g_signal_connect(button, "clicked",
1574                     G_CALLBACK(cb_menu_export_garmin), appdata);                     G_CALLBACK(cb_menu_export_garmin), appdata);
1575    gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);    hildon_app_menu_append(menu, GTK_BUTTON(button));
1576    
1577    gtk_container_add (GTK_CONTAINER (view_window), GTK_WIDGET (contents));    gtk_widget_show_all(GTK_WIDGET(menu));
   gtk_widget_show_all (GTK_WIDGET (view_window));  
 }  
1578    
1579  static void on_tools_destroy(GtkWidget *widget, appdata_t *appdata) {    return GTK_WIDGET(menu);
   appdata->cur_view = g_object_get_data(G_OBJECT(widget), "cur_view");  
1580  }  }
1581    
1582  void on_tools_clicked(GtkButton *button, appdata_t *appdata) {  /* the export submenu */
1583    HildonStackableWindow *view_window;  void on_export_clicked(GtkButton *button, appdata_t *appdata) {
1584    GtkWidget *but;    if(!appdata->export_menu)
1585        appdata->export_menu = export_menu_create(appdata);
   view_window = HILDON_STACKABLE_WINDOW (hildon_stackable_window_new ());  
   gtk_window_set_title (GTK_WINDOW (view_window), "GPXView - Tools");  
   
    /* store last "cur_view" in window */  
   g_object_set_data(G_OBJECT(view_window), "cur_view", appdata->cur_view);  
   appdata->cur_view = NULL;  
1586    
1587    g_signal_connect(G_OBJECT(view_window), "destroy",    /* draw a popup menu */
1588                     G_CALLBACK(on_tools_destroy), appdata);    hildon_app_menu_popup(HILDON_APP_MENU(appdata->export_menu),
1589                            GTK_WINDOW(hildon_window_stack_peek(
1590                        hildon_window_stack_get_default())));
1591    }
1592    
1593    GtkVBox *contents = GTK_VBOX(gtk_vbox_new (12, FALSE));  static GtkWidget *tools_menu_create(appdata_t *appdata) {
1594      GtkWidget *button;
1595      HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new());
1596    
1597    but = hildon_button_new_with_text(    button = hildon_button_new_with_text(
1598              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1599              HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1600              _("Geomath"),              _("Geomath"),
1601              _("Geocoordinate calculation"));              _("Geocoordinate calculation"));
1602    g_signal_connect(but, "clicked",    g_signal_connect(button, "clicked",
1603                     G_CALLBACK(cb_menu_geomath), appdata);                     G_CALLBACK(cb_menu_geomath), appdata);
1604    gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);    hildon_app_menu_append(menu, GTK_BUTTON(button));
1605    
1606    
1607    but = hildon_button_new_with_text(    button = hildon_button_new_with_text(
1608              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1609              HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1610              _("Geotext"),              _("Geotext"),
1611              _("Text analysis, letter counting etc"));              _("Text analysis"));
1612    g_signal_connect(but, "clicked",    g_signal_connect(button, "clicked",
1613                     G_CALLBACK(cb_menu_geotext), appdata);                     G_CALLBACK(cb_menu_geotext), appdata);
1614    gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);    hildon_app_menu_append(menu, GTK_BUTTON(button));
1615    
1616    
1617    but = hildon_button_new_with_text(    button = hildon_button_new_with_text(
1618              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1619              HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1620              _("Precise Position"),              _("Precise Position"),
1621              _("Calculate a very precise GPS position"));              _("Calculate a precise GPS position"));
1622    g_signal_connect(but, "clicked",    g_signal_connect(button, "clicked",
1623                     G_CALLBACK(cb_menu_precpos), appdata);                     G_CALLBACK(cb_menu_precpos), appdata);
1624    gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);    hildon_app_menu_append(menu, GTK_BUTTON(button));
1625    
1626      gtk_widget_show_all(GTK_WIDGET(menu));
1627    
1628      return GTK_WIDGET(menu);
1629    }
1630    
1631    /* the tools submenu */
1632    void on_tools_clicked(GtkButton *button, appdata_t *appdata) {
1633      if(!appdata->tools_menu)
1634        appdata->tools_menu = tools_menu_create(appdata);
1635    
1636    gtk_container_add (GTK_CONTAINER (view_window), GTK_WIDGET (contents));    /* draw a popup menu */
1637    gtk_widget_show_all (GTK_WIDGET (view_window));    hildon_app_menu_popup(HILDON_APP_MENU(appdata->tools_menu),
1638                            GTK_WINDOW(hildon_window_stack_peek(
1639                        hildon_window_stack_get_default())));
1640  }  }
1641    
1642    
1643  HildonAppMenu *menu_create(appdata_t *appdata, int mode) {  HildonAppMenu *menu_create(appdata_t *appdata, int mode) {
1644    GtkWidget *button;    GtkWidget *button;
1645    HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new());    HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new());

Legend:
Removed from v.19  
changed lines
  Added in v.20