~ubuntu-branches/ubuntu/trusty/mapnik/trusty-proposed

« back to all changes in this revision

Viewing changes to demo/viewer/main.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Christophe Sauthier
  • Date: 2009-08-27 00:28:37 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20090827002837-ztqzfg2rmclfh4i9
Tags: 0.6.1-0ubuntu1
* New upstream release.
* Change usr/lib to usr/lib* to enable build on 64 bits systems due to new
  configuration in SConstruct in :
  - debian/libmapnik-dev.install
  - debian/libmapnik0.6.install
  - debian/mapnik-plugin-base

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
//$Id$
20
20
 
21
 
 
 
21
// qt
22
22
#include <QApplication>
23
23
#include <QStringList>
24
24
#include <mapnik/datasource_cache.hpp>
25
25
#include <mapnik/font_engine_freetype.hpp>
26
26
#include "mainwindow.hpp"
 
27
// boost
 
28
#include <boost/algorithm/string.hpp>
 
29
#include <boost/filesystem/operations.hpp>
 
30
 
 
31
bool is_font_file (std::string const& filename)
 
32
{
 
33
    return boost::algorithm::ends_with(filename,std::string(".ttf"));
 
34
}
27
35
 
28
36
int main( int argc, char **argv )
29
37
{
30
 
   using mapnik::datasource_cache;
31
 
   using mapnik::freetype_engine;
32
 
  
33
 
   datasource_cache::instance()->register_datasources("/opt/mapnik/lib/mapnik/input");
34
 
   
35
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans-Bold.ttf");
36
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans-BoldOblique.ttf");
37
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans-ExtraLight.ttf");
38
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans-Oblique.ttf");
39
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSans.ttf");
40
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansCondensed-Bold.ttf");
41
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansCondensed-BoldOblique.ttf");
42
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansCondensed-Oblique.ttf");
43
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansCondensed.ttf");
44
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansMono-Bold.ttf");
45
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansMono-BoldOblique.ttf");
46
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansMono-Oblique.ttf");
47
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSansMono.ttf");
48
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerif-Bold.ttf");
49
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerif-BoldOblique.ttf");
50
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerif-Oblique.ttf");
51
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerif.ttf");
52
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerifCondensed-Bold.ttf");
53
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerifCondensed-BoldOblique.ttf");
54
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerifCondensed-Oblique.ttf");
55
 
   freetype_engine::register_font("/opt/mapnik/lib/mapnik/fonts/DejaVuSerifCondensed.ttf");
56
 
   
57
 
   QApplication app( argc, argv ); 
58
 
   MainWindow window;
59
 
   window.show();
60
 
   if (argc > 1) window.open(argv[1]);
61
 
   if (argc == 3)
62
 
   {
63
 
      QStringList list = QString(argv[2]).split(",");
64
 
      if (list.size()==4)
65
 
      {
66
 
         bool ok;
67
 
         double x0 = list[0].toDouble(&ok);
68
 
         double y0 = list[1].toDouble(&ok);
69
 
         double x1 = list[2].toDouble(&ok);
70
 
         double y1 = list[3].toDouble(&ok);
71
 
         if (ok) window.set_default_extent(x0,y0,x1,y1); 
72
 
      }
73
 
   }
74
 
   
75
 
   return app.exec(); 
 
38
        using mapnik::datasource_cache;
 
39
        using mapnik::freetype_engine;
 
40
        
 
41
        // modify this prefix based on your install location
 
42
        std::string mapnik_dir = "/opt/mapnik";
 
43
        
 
44
        datasource_cache::instance()->register_datasources(mapnik_dir + "/lib/mapnik/input");
 
45
        boost::filesystem::path path(mapnik_dir + "/lib/mapnik/fonts");
 
46
        boost::filesystem::directory_iterator end_itr;  
 
47
    
 
48
    
 
49
        if (boost::filesystem::exists(path) && boost::filesystem::is_directory(path))
 
50
        {
 
51
                for (boost::filesystem::directory_iterator itr(path);itr!=end_itr;++itr )
 
52
                {
 
53
                        if (!boost::filesystem::is_directory(*itr) && is_font_file(itr->path().leaf())) 
 
54
                        {
 
55
                                std::cout << "register font " << itr->string() << "\n";
 
56
                                freetype_engine::register_font(itr->string());
 
57
                        }
 
58
                }
 
59
    }
 
60
                
 
61
        QApplication app( argc, argv ); 
 
62
        MainWindow window;
 
63
        window.show();
 
64
        if (argc > 1) window.open(argv[1]);
 
65
        if (argc == 3)
 
66
        {
 
67
                QStringList list = QString(argv[2]).split(",");
 
68
                if (list.size()==4)
 
69
                {
 
70
                        bool ok;
 
71
                        double x0 = list[0].toDouble(&ok);
 
72
                        double y0 = list[1].toDouble(&ok);
 
73
                        double x1 = list[2].toDouble(&ok);
 
74
                        double y1 = list[3].toDouble(&ok);
 
75
                        if (ok) window.set_default_extent(x0,y0,x1,y1);
 
76
                }
 
77
        }
 
78
        
 
79
        return app.exec(); 
76
80
}