Diff of /trunk/src/main.c

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

revision 1 by harbaum, Sat Jun 20 11:08:47 2009 UTC revision 7 by harbaum, Thu Jun 25 15:24:24 2009 UTC
# Line 551  void cachelist_dialog(appdata_t *appdata Line 551  void cachelist_dialog(appdata_t *appdata
551    gtk_container_add(GTK_CONTAINER(window),    gtk_container_add(GTK_CONTAINER(window),
552                      cachelist_create(appdata, gpx, NULL));                      cachelist_create(appdata, gpx, NULL));
553    
554      hildon_window_set_app_menu(HILDON_WINDOW(window),
555                                 menu_create(appdata, MENU_CACHELIST));
556    
557    gtk_widget_show_all(window);    gtk_widget_show_all(window);
558  }  }
559  #endif  #endif
# Line 1007  cb_menu_adddir(GtkWidget *window, gpoint Line 1010  cb_menu_adddir(GtkWidget *window, gpoint
1010    if(new) gpxlist_add(appdata, new);    if(new) gpxlist_add(appdata, new);
1011  }  }
1012    
 static void  
 cb_menu_geomath(GtkWidget *window, gpointer data) {  
   geomath_dialog((appdata_t *)data);  
 }  
   
 static void  
 cb_menu_geotext(GtkWidget *window, gpointer data) {  
   geotext_dialog((appdata_t *)data);  
 }  
   
 static void  
 cb_menu_precpos(GtkWidget *window, gpointer data) {  
   precise_position((appdata_t *)data);  
 }  
   
1013  #ifndef USE_PANNABLE_AREA  #ifndef USE_PANNABLE_AREA
1014  static void  static void
1015  cb_menu_close(GtkWidget *window, gpointer data) {  cb_menu_close(GtkWidget *window, gpointer data) {
# Line 1380  cb_menu_quit(GtkWidget *window, gpointer Line 1368  cb_menu_quit(GtkWidget *window, gpointer
1368  }  }
1369  #endif  #endif
1370    
1371    #ifndef NO_COPY_N_PASTE
1372  static void  static void
1373  cb_menu_cut(GtkWidget *widget, gpointer data) {  cb_menu_cut(GtkWidget *widget, gpointer data) {
1374    appdata_t *appdata = (appdata_t*)data;    appdata_t *appdata = (appdata_t*)data;
# Line 1424  cb_menu_paste(GtkWidget *widget, gpointe Line 1413  cb_menu_paste(GtkWidget *widget, gpointe
1413    } else    } else
1414      printf("paste: ERROR, no active buffer\n");      printf("paste: ERROR, no active buffer\n");
1415  }  }
1416    #endif
1417    
1418  static void  static void
1419  cb_menu_export_log(GtkWidget *widget, gpointer data) {  cb_menu_export_log(GtkWidget *widget, gpointer data) {
# Line 1445  cb_menu_export_garmin(GtkWidget *widget, Line 1435  cb_menu_export_garmin(GtkWidget *widget,
1435    garmin_export(appdata);    garmin_export(appdata);
1436  }  }
1437    
1438    static void
1439    cb_menu_geomath(GtkWidget *window, gpointer data) {
1440      geomath_dialog((appdata_t *)data);
1441    }
1442    
1443    static void
1444    cb_menu_geotext(GtkWidget *window, gpointer data) {
1445      geotext_dialog((appdata_t *)data);
1446    }
1447    
1448    static void
1449    cb_menu_precpos(GtkWidget *window, gpointer data) {
1450      precise_position((appdata_t *)data);
1451    }
1452    
1453    #ifdef USE_STACKABLE_WINDOW
1454    
1455    void on_export_clicked(GtkButton *button, appdata_t *appdata) {
1456      HildonStackableWindow *view_window;
1457      GtkWidget *but;
1458    
1459      view_window = HILDON_STACKABLE_WINDOW (hildon_stackable_window_new ());
1460      gtk_window_set_title (GTK_WINDOW (view_window), "Export");
1461    
1462      GtkVBox *contents = GTK_VBOX(gtk_vbox_new (12, FALSE));
1463    
1464      but = hildon_button_new_with_text(
1465                HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1466                HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1467                _("Export to Maemo Mapper"),
1468                _("Save a Maemo Mapper POI file"));
1469      g_signal_connect(but, "clicked",
1470                       G_CALLBACK(cb_menu_export_mmpoi), appdata);
1471      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1472    
1473    
1474      but = hildon_button_new_with_text(
1475                HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1476                HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1477                _("Export Field Notes"),
1478                _("Save a Garmin Field Notes file"));
1479      g_signal_connect(but, "clicked",
1480                       G_CALLBACK(cb_menu_export_log), appdata);
1481      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1482    
1483    
1484      but = hildon_button_new_with_text(
1485                HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1486                HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1487                _("Export Garmin GPX"),
1488                _("Save a GPX file containing modified waypoints"));
1489      g_signal_connect(but, "clicked",
1490                       G_CALLBACK(cb_menu_export_garmin), appdata);
1491      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1492    
1493      gtk_container_add (GTK_CONTAINER (view_window), GTK_WIDGET (contents));
1494      gtk_widget_show_all (GTK_WIDGET (view_window));
1495    }
1496    
1497    void on_tools_clicked(GtkButton *button, appdata_t *appdata) {
1498      HildonStackableWindow *view_window;
1499      GtkWidget *but;
1500    
1501      view_window = HILDON_STACKABLE_WINDOW (hildon_stackable_window_new ());
1502      gtk_window_set_title (GTK_WINDOW (view_window), "Export");
1503    
1504      GtkVBox *contents = GTK_VBOX(gtk_vbox_new (12, FALSE));
1505    
1506      but = hildon_button_new_with_text(
1507                HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1508                HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1509                _("Geomath"),
1510                _("Geocoordinate calculation"));
1511      g_signal_connect(but, "clicked",
1512                       G_CALLBACK(cb_menu_geomath), appdata);
1513      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1514    
1515    
1516      but = hildon_button_new_with_text(
1517                HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1518                HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1519                _("Geotext"),
1520                _("Text analysis, letter counting etc"));
1521      g_signal_connect(but, "clicked",
1522                       G_CALLBACK(cb_menu_geotext), appdata);
1523      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1524    
1525    
1526      but = hildon_button_new_with_text(
1527                HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1528                HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1529                _("Precise Position"),
1530                _("Calculate a very precise GPS position"));
1531      g_signal_connect(but, "clicked",
1532                       G_CALLBACK(cb_menu_precpos), appdata);
1533      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1534    
1535      gtk_container_add (GTK_CONTAINER (view_window), GTK_WIDGET (contents));
1536      gtk_widget_show_all (GTK_WIDGET (view_window));
1537    }
1538    
1539    HildonAppMenu *menu_create(appdata_t *appdata, int mode) {
1540      GtkWidget *button;
1541      HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new());
1542    
1543      /* ------- */
1544      button = gtk_button_new_with_label(_("About"));
1545      g_signal_connect_after(button, "clicked",
1546                             G_CALLBACK(cb_menu_about), appdata);
1547      hildon_app_menu_append(menu, GTK_BUTTON(button));
1548    
1549      button = gtk_button_new_with_label(_("Settings"));
1550      g_signal_connect_after(button, "clicked", G_CALLBACK(cb_menu_settings),
1551                             appdata);
1552      hildon_app_menu_append(menu, GTK_BUTTON(button));
1553    
1554      if(mode == MENU_GPXLIST) {
1555        button = gtk_button_new_with_label(_("Import file"));
1556        g_signal_connect_after(button, "clicked",
1557                               G_CALLBACK(cb_menu_add), appdata);
1558        hildon_app_menu_append(menu, GTK_BUTTON(button));
1559    
1560        button = gtk_button_new_with_label(_("Import directory"));
1561        g_signal_connect_after(button, "clicked",
1562                               G_CALLBACK(cb_menu_adddir), appdata);
1563        hildon_app_menu_append(menu, GTK_BUTTON(button));
1564      }
1565    
1566      if(mode == MENU_GPXLIST) {
1567        button = gtk_button_new_with_label(_("Export"));
1568        g_signal_connect_after(button, "clicked",
1569                               G_CALLBACK(on_export_clicked), appdata);
1570        hildon_app_menu_append(menu, GTK_BUTTON(button));
1571    
1572        button = gtk_button_new_with_label(_("Search"));
1573        g_signal_connect_after(button, "clicked",
1574                               G_CALLBACK(cb_menu_search), appdata);
1575        hildon_app_menu_append(menu, GTK_BUTTON(button));
1576      }
1577    
1578      button = gtk_button_new_with_label(_("Tools"));
1579      g_signal_connect_after(button, "clicked",
1580                             G_CALLBACK(on_tools_clicked), appdata);
1581      hildon_app_menu_append(menu, GTK_BUTTON(button));
1582    
1583      gtk_widget_show(GTK_WIDGET(menu));
1584    
1585      return menu;
1586    }
1587    #else
1588    
1589  void menu_create(appdata_t *appdata) {  void menu_create(appdata_t *appdata) {
1590    GtkWidget *menu, *item;    GtkWidget *menu, *item;
1591    menu = gtk_menu_new();    menu = gtk_menu_new();
1592    
1593  #ifdef USE_MAEMO  #ifdef USE_BREAD_CRUMB_TRAIL
1594    appdata->menu_import =    appdata->menu_import =
1595  #endif  #endif
1596    item = gtk_menu_item_new_with_label(_("Import"));    item = gtk_menu_item_new_with_label(_("Import"));
# Line 1457  void menu_create(appdata_t *appdata) { Line 1598  void menu_create(appdata_t *appdata) {
1598    GtkWidget *submenu = gtk_menu_new();    GtkWidget *submenu = gtk_menu_new();
1599    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
1600    
1601    item = gtk_menu_item_new_with_label( _("File...") );    item = gtk_menu_item_new_with_label( _("File") );
1602    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1603    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_add), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_add), appdata);
1604    
1605    item = gtk_menu_item_new_with_label( _("Directory...") );    item = gtk_menu_item_new_with_label( _("Directory") );
1606    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1607    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_adddir), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_adddir), appdata);
1608    
# Line 1479  void menu_create(appdata_t *appdata) { Line 1620  void menu_create(appdata_t *appdata) {
1620    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_remove), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_remove), appdata);
1621  #endif  #endif
1622    
1623  #ifdef USE_MAEMO  #ifdef USE_BREAD_CRUMB_TRAIL
1624    appdata->menu_export =    appdata->menu_export =
1625  #endif  #endif
1626      item = gtk_menu_item_new_with_label(_("Export"));      item = gtk_menu_item_new_with_label(_("Export"));
# Line 1488  void menu_create(appdata_t *appdata) { Line 1629  void menu_create(appdata_t *appdata) {
1629    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
1630    
1631  #ifdef USE_MAEMO  #ifdef USE_MAEMO
1632    item = gtk_menu_item_new_with_label( _("Maemo Mapper POI...") );    item = gtk_menu_item_new_with_label( _("Maemo Mapper POI") );
1633    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1634    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
1635                     GTK_SIGNAL_FUNC(cb_menu_export_mmpoi), appdata);                     GTK_SIGNAL_FUNC(cb_menu_export_mmpoi), appdata);
1636  #endif  #endif
1637    
1638    item = gtk_menu_item_new_with_label( _("Garmin Field Notes...") );    item = gtk_menu_item_new_with_label( _("Garmin Field Notes") );
1639    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1640    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
1641                     GTK_SIGNAL_FUNC(cb_menu_export_log), appdata);                     GTK_SIGNAL_FUNC(cb_menu_export_log), appdata);
1642    
1643    item = gtk_menu_item_new_with_label( _("Garmin GPX...") );    item = gtk_menu_item_new_with_label( _("Garmin GPX") );
1644    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1645    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
1646                     GTK_SIGNAL_FUNC(cb_menu_export_garmin), appdata);                     GTK_SIGNAL_FUNC(cb_menu_export_garmin), appdata);
1647    
1648  #ifdef USE_MAEMO  #ifdef USE_BREAD_CRUMB_TRAIL
1649    appdata->menu_search =    appdata->menu_search =
1650  #endif  #endif
1651    item = gtk_menu_item_new_with_label( _("Search...") );    item = gtk_menu_item_new_with_label( _("Search") );
1652    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_append(GTK_MENU_SHELL(menu), item);
1653    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_search), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_search), appdata);
1654    
1655    gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());    gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());
1656    
1657    #ifndef NO_COPY_N_PASTE
1658    /* ----------- copy'n paste submenu ----------------- */    /* ----------- copy'n paste submenu ----------------- */
1659    appdata->clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);    appdata->clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
1660    gtk_clipboard_set_can_store(appdata->clipboard, NULL, 0);    gtk_clipboard_set_can_store(appdata->clipboard, NULL, 0);
# Line 1534  void menu_create(appdata_t *appdata) { Line 1676  void menu_create(appdata_t *appdata) {
1676    gtk_widget_set_sensitive(item, FALSE);    gtk_widget_set_sensitive(item, FALSE);
1677    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1678    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_paste), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_paste), appdata);
1679    #endif
1680    
1681    item = gtk_menu_item_new_with_label( _("Settings...") );    item = gtk_menu_item_new_with_label( _("Settings") );
1682    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_append(GTK_MENU_SHELL(menu), item);
1683    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_settings),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_settings),
1684                     appdata);                     appdata);
# Line 1547  void menu_create(appdata_t *appdata) { Line 1690  void menu_create(appdata_t *appdata) {
1690    submenu = gtk_menu_new();    submenu = gtk_menu_new();
1691    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
1692    
1693    item = gtk_menu_item_new_with_label( _("Geomath...") );    item = gtk_menu_item_new_with_label( _("Geomath") );
1694    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1695    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
1696                     GTK_SIGNAL_FUNC(cb_menu_geomath), appdata);                     GTK_SIGNAL_FUNC(cb_menu_geomath), appdata);
1697    
1698    item = gtk_menu_item_new_with_label( _("Geotext...") );    item = gtk_menu_item_new_with_label( _("Geotext") );
1699    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1700    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
1701                     GTK_SIGNAL_FUNC(cb_menu_geotext), appdata);                     GTK_SIGNAL_FUNC(cb_menu_geotext), appdata);
1702    
1703    item = gtk_menu_item_new_with_label( _("Precise Position...") );    item = gtk_menu_item_new_with_label( _("Precise Position") );
1704    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
1705    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
1706                     GTK_SIGNAL_FUNC(cb_menu_precpos), appdata);                     GTK_SIGNAL_FUNC(cb_menu_precpos), appdata);
# Line 1565  void menu_create(appdata_t *appdata) { Line 1708  void menu_create(appdata_t *appdata) {
1708    gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());    gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());
1709    
1710  #if defined(USE_MAEMO) && defined(HILDON_HELP)  #if defined(USE_MAEMO) && defined(HILDON_HELP)
1711    item = gtk_menu_item_new_with_label( _("Help...") );    item = gtk_menu_item_new_with_label( _("Help") );
1712    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_append(GTK_MENU_SHELL(menu), item);
1713    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_help), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_help), appdata);
1714  #endif  #endif
1715    
1716    item = gtk_menu_item_new_with_label( _("About...") );    item = gtk_menu_item_new_with_label( _("About") );
1717    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_append(GTK_MENU_SHELL(menu), item);
1718    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_about), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_about), appdata);
1719    
# Line 1596  void menu_create(appdata_t *appdata) { Line 1739  void menu_create(appdata_t *appdata) {
1739    gtk_box_pack_start(GTK_BOX(appdata->vbox), menu_bar, 0, 0, 0);    gtk_box_pack_start(GTK_BOX(appdata->vbox), menu_bar, 0, 0, 0);
1740  #endif  #endif
1741  }  }
1742    #endif
1743    
1744  /********************* end of menu **********************/  /********************* end of menu **********************/
1745    
# Line 1964  int main(int argc, char *argv[]) { Line 2108  int main(int argc, char *argv[]) {
2108    appdata.vbox = gtk_vbox_new(FALSE, 2);    appdata.vbox = gtk_vbox_new(FALSE, 2);
2109    gtk_container_add(GTK_CONTAINER(appdata.window), appdata.vbox);    gtk_container_add(GTK_CONTAINER(appdata.window), appdata.vbox);
2110    
2111    #ifndef USE_STACKABLE_WINDOW
2112    menu_create(&appdata);    menu_create(&appdata);
2113    #else
2114      hildon_window_set_app_menu(HILDON_WINDOW(appdata.window),
2115                                 menu_create(&appdata, MENU_GPXLIST));
2116    #endif
2117    
2118  #ifdef USE_BREAD_CRUMB_TRAIL  #ifdef USE_BREAD_CRUMB_TRAIL
2119    appdata.bct = hildon_bread_crumb_trail_new();    appdata.bct = hildon_bread_crumb_trail_new();

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