Diff of /trunk/src/main.c

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

revision 5 by harbaum, Tue Jun 23 12:53:07 2009 UTC revision 7 by harbaum, Thu Jun 25 15:24:24 2009 UTC
# Line 1415  cb_menu_paste(GtkWidget *widget, gpointe Line 1415  cb_menu_paste(GtkWidget *widget, gpointe
1415  }  }
1416  #endif  #endif
1417    
1418  #ifdef USE_STACKABLE_WINDOW  static void
1419  typedef struct {  cb_menu_export_log(GtkWidget *widget, gpointer data) {
1420    appdata_t *appdata;    appdata_t *appdata = (appdata_t*)data;
1421    GtkWidget *dialog;    notes_log_export(appdata);
1422  } appmenu_context_t;  }
   
 void on_export_mmpoi_clicked(appmenu_context_t *context) {  
   gtk_widget_destroy(context->dialog);  
   while(gtk_events_pending())  
     gtk_main_iteration();  
1423    
1424    mmpoi_export(context->appdata);  #ifdef USE_MAEMO
1425    static void
1426    cb_menu_export_mmpoi(GtkWidget *widget, gpointer data) {
1427      appdata_t *appdata = (appdata_t*)data;
1428      mmpoi_export(appdata);
1429  }  }
1430    #endif
1431    
1432  void on_export_garmin_clicked(appmenu_context_t *context) {  static void
1433    gtk_widget_destroy(context->dialog);  cb_menu_export_garmin(GtkWidget *widget, gpointer data) {
1434    while(gtk_events_pending())    appdata_t *appdata = (appdata_t*)data;
1435      gtk_main_iteration();    garmin_export(appdata);
1436    }
1437    
1438    garmin_export(context->appdata);  static void
1439    cb_menu_geomath(GtkWidget *window, gpointer data) {
1440      geomath_dialog((appdata_t *)data);
1441  }  }
1442    
1443  void on_export_notes_log_clicked(appmenu_context_t *context) {  static void
1444    gtk_widget_destroy(context->dialog);  cb_menu_geotext(GtkWidget *window, gpointer data) {
1445    while(gtk_events_pending())    geotext_dialog((appdata_t *)data);
1446      gtk_main_iteration();  }
1447    
1448    notes_log_export(context->appdata);  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) {  void on_export_clicked(GtkButton *button, appdata_t *appdata) {
1456      HildonStackableWindow *view_window;
1457    GtkWidget *but;    GtkWidget *but;
   appmenu_context_t context;  
1458    
1459    context.appdata = appdata;    view_window = HILDON_STACKABLE_WINDOW (hildon_stackable_window_new ());
1460    context.dialog = gtk_dialog_new();    gtk_window_set_title (GTK_WINDOW (view_window), "Export");
1461    
1462    gtk_window_set_decorated(GTK_WINDOW(context.dialog), FALSE);    GtkVBox *contents = GTK_VBOX(gtk_vbox_new (12, FALSE));
1463    
1464    but = hildon_button_new_with_text(HILDON_SIZE_AUTO,    but = hildon_button_new_with_text(
1465                                      HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1466                                      _("Export to Maemo Mapper"),              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1467                                      _("Save a Maemo Mapper POI file"));              _("Export to Maemo Mapper"),
1468    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(context.dialog)->vbox), but);              _("Save a Maemo Mapper POI file"));
1469    g_signal_connect_swapped(but, "clicked",    g_signal_connect(but, "clicked",
1470                             G_CALLBACK(on_export_mmpoi_clicked), &context);                     G_CALLBACK(cb_menu_export_mmpoi), appdata);
1471      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1472    but = hildon_button_new_with_text(HILDON_SIZE_AUTO,  
1473                                      HILDON_BUTTON_ARRANGEMENT_VERTICAL,  
1474                                      _("Export Field Notes"),    but = hildon_button_new_with_text(
1475                                      _("Save a Garmin Field Notes file"));              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1476    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(context.dialog)->vbox), but);              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1477    g_signal_connect_swapped(but, "clicked",              _("Export Field Notes"),
1478                     G_CALLBACK(on_export_notes_log_clicked), &context);              _("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(HILDON_SIZE_AUTO,    but = hildon_button_new_with_text(
1485                                      HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1486                                      _("Export Garmin GPX"),              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1487                                      _("Save a GPX file of modified points"));              _("Export Garmin GPX"),
1488    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(context.dialog)->vbox), but);              _("Save a GPX file containing modified waypoints"));
1489    g_signal_connect_swapped(but, "clicked",    g_signal_connect(but, "clicked",
1490                             G_CALLBACK(on_export_garmin_clicked), &context);                     G_CALLBACK(cb_menu_export_garmin), appdata);
1491      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
    gtk_widget_show_all(context.dialog);  
    gint result = gtk_dialog_run(GTK_DIALOG(context.dialog));  
   
    /* user clicked outside dialog */  
    if(result == GTK_RESPONSE_DELETE_EVENT)  
      gtk_widget_destroy(context.dialog);  
 }  
   
 void on_tools_geomath_clicked(appmenu_context_t *context) {  
   gtk_widget_destroy(context->dialog);  
   while(gtk_events_pending())  
     gtk_main_iteration();  
1492    
1493    geomath_dialog(context->appdata);    gtk_container_add (GTK_CONTAINER (view_window), GTK_WIDGET (contents));
1494  }    gtk_widget_show_all (GTK_WIDGET (view_window));
   
 void on_tools_geotext_clicked(appmenu_context_t *context) {  
   gtk_widget_destroy(context->dialog);  
   while(gtk_events_pending())  
     gtk_main_iteration();  
   
   geotext_dialog(context->appdata);  
 }  
   
 void on_tools_precpos_clicked(appmenu_context_t *context) {  
   gtk_widget_destroy(context->dialog);  
   while(gtk_events_pending())  
     gtk_main_iteration();  
   
   precise_position(context->appdata);  
1495  }  }
1496    
1497  void on_tools_clicked(GtkButton *button, appdata_t *appdata) {  void on_tools_clicked(GtkButton *button, appdata_t *appdata) {
1498      HildonStackableWindow *view_window;
1499    GtkWidget *but;    GtkWidget *but;
   appmenu_context_t context;  
1500    
1501    context.appdata = appdata;    view_window = HILDON_STACKABLE_WINDOW (hildon_stackable_window_new ());
1502    context.dialog = gtk_dialog_new();    gtk_window_set_title (GTK_WINDOW (view_window), "Export");
1503    
1504    gtk_window_set_decorated(GTK_WINDOW(context.dialog), FALSE);    GtkVBox *contents = GTK_VBOX(gtk_vbox_new (12, FALSE));
1505    
1506    but = hildon_button_new_with_text(HILDON_SIZE_AUTO,    but = hildon_button_new_with_text(
1507                                      HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1508                                      _("Geomath"),              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1509                                      _("Geocoordinate calculation"));              _("Geomath"),
1510    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(context.dialog)->vbox), but);              _("Geocoordinate calculation"));
1511    g_signal_connect_swapped(but, "clicked",    g_signal_connect(but, "clicked",
1512                             G_CALLBACK(on_tools_geomath_clicked), &context);                     G_CALLBACK(cb_menu_geomath), appdata);
1513      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1514    but = hildon_button_new_with_text(HILDON_SIZE_AUTO,  
1515                                      HILDON_BUTTON_ARRANGEMENT_VERTICAL,  
1516                                      _("Geotext"),    but = hildon_button_new_with_text(
1517                                      _("Text analysis, letter counting etc"));              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1518    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(context.dialog)->vbox), but);              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1519    g_signal_connect_swapped(but, "clicked",              _("Geotext"),
1520                     G_CALLBACK(on_tools_geotext_clicked), &context);              _("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(HILDON_SIZE_AUTO,    but = hildon_button_new_with_text(
1527                                      HILDON_BUTTON_ARRANGEMENT_VERTICAL,              HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
1528                                      _("Precise Position"),              HILDON_BUTTON_ARRANGEMENT_VERTICAL,
1529                                      _("Calculate a very precise GPS posotions"));              _("Precise Position"),
1530    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(context.dialog)->vbox), but);              _("Calculate a very precise GPS position"));
1531    g_signal_connect_swapped(but, "clicked",    g_signal_connect(but, "clicked",
1532                             G_CALLBACK(on_tools_precpos_clicked), &context);                     G_CALLBACK(cb_menu_precpos), appdata);
1533      gtk_box_pack_start(GTK_BOX(contents), but, FALSE, FALSE, 0);
1534     gtk_widget_show_all(context.dialog);  
1535     gint result = gtk_dialog_run(GTK_DIALOG(context.dialog));    gtk_container_add (GTK_CONTAINER (view_window), GTK_WIDGET (contents));
1536      gtk_widget_show_all (GTK_WIDGET (view_window));
    /* user clicked outside dialog */  
    if(result == GTK_RESPONSE_DELETE_EVENT)  
      gtk_widget_destroy(context.dialog);  
1537  }  }
1538    
1539  HildonAppMenu *menu_create(appdata_t *appdata, int mode) {  HildonAppMenu *menu_create(appdata_t *appdata, int mode) {
# Line 1558  HildonAppMenu *menu_create(appdata_t *ap Line 1541  HildonAppMenu *menu_create(appdata_t *ap
1541    HildonAppMenu *menu = HILDON_APP_MENU(hildon_app_menu_new());    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"));    button = gtk_button_new_with_label(_("Settings"));
1550    g_signal_connect_after(button, "clicked", G_CALLBACK(cb_menu_settings),    g_signal_connect_after(button, "clicked", G_CALLBACK(cb_menu_settings),
1551                           appdata);                           appdata);
# Line 1569  HildonAppMenu *menu_create(appdata_t *ap Line 1557  HildonAppMenu *menu_create(appdata_t *ap
1557                             G_CALLBACK(cb_menu_add), appdata);                             G_CALLBACK(cb_menu_add), appdata);
1558      hildon_app_menu_append(menu, GTK_BUTTON(button));      hildon_app_menu_append(menu, GTK_BUTTON(button));
1559    
1560      button = gtk_button_new_with_label(_("Import dir"));      button = gtk_button_new_with_label(_("Import directory"));
1561      g_signal_connect_after(button, "clicked",      g_signal_connect_after(button, "clicked",
1562                             G_CALLBACK(cb_menu_adddir), appdata);                             G_CALLBACK(cb_menu_adddir), appdata);
1563      hildon_app_menu_append(menu, GTK_BUTTON(button));      hildon_app_menu_append(menu, GTK_BUTTON(button));
# Line 1592  HildonAppMenu *menu_create(appdata_t *ap Line 1580  HildonAppMenu *menu_create(appdata_t *ap
1580                           G_CALLBACK(on_tools_clicked), appdata);                           G_CALLBACK(on_tools_clicked), appdata);
1581    hildon_app_menu_append(menu, GTK_BUTTON(button));    hildon_app_menu_append(menu, GTK_BUTTON(button));
1582    
   button = gtk_button_new_with_label(_("About"));  
   g_signal_connect_after(button, "clicked",  
                          G_CALLBACK(cb_menu_about), appdata);  
   hildon_app_menu_append(menu, GTK_BUTTON(button));  
   
1583    gtk_widget_show(GTK_WIDGET(menu));    gtk_widget_show(GTK_WIDGET(menu));
1584    
1585    return menu;    return menu;
1586  }  }
1587  #else  #else
 static void  
 cb_menu_export_log(GtkWidget *widget, gpointer data) {  
   appdata_t *appdata = (appdata_t*)data;  
   notes_log_export(appdata);  
 }  
   
 #ifdef USE_MAEMO  
 static void  
 cb_menu_export_mmpoi(GtkWidget *widget, gpointer data) {  
   appdata_t *appdata = (appdata_t*)data;  
   mmpoi_export(appdata);  
 }  
 #endif  
   
 static void  
 cb_menu_export_garmin(GtkWidget *widget, gpointer data) {  
   appdata_t *appdata = (appdata_t*)data;  
   garmin_export(appdata);  
 }  
   
 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);  
 }  
1588    
1589  void menu_create(appdata_t *appdata) {  void menu_create(appdata_t *appdata) {
1590    GtkWidget *menu, *item;    GtkWidget *menu, *item;
# Line 1649  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 1680  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);
# Line 1699  void menu_create(appdata_t *appdata) { Line 1648  void menu_create(appdata_t *appdata) {
1648  #ifdef USE_BREAD_CRUMB_TRAIL  #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    
# Line 1741  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 1759  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    

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