116 lines
2.8 KiB
C++
116 lines
2.8 KiB
C++
|
/* This file is part of Mapnik (c++ mapping toolkit)
|
||
|
* Copyright (C) 2006 Artem Pavlenko
|
||
|
*
|
||
|
* Mapnik is free software; you can redistribute it and/or
|
||
|
* modify it under the terms of the GNU General Public License
|
||
|
* as published by the Free Software Foundation; either version 2
|
||
|
* of the License, or any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with this program; if not, write to the Free Software
|
||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
|
*/
|
||
|
|
||
|
//$Id$
|
||
|
|
||
|
#ifndef MAINWINDOW_HPP
|
||
|
#define MAINWINDOW_HPP
|
||
|
|
||
|
#include <QMainWindow>
|
||
|
#include <QPrinter>
|
||
|
#include <QList>
|
||
|
#include <QActionGroup>
|
||
|
#include <QStatusBar>
|
||
|
#include <QAbstractItemModel>
|
||
|
|
||
|
#include "mapwidget.hpp"
|
||
|
|
||
|
//using namespace mapnik;
|
||
|
|
||
|
class LayerTab;
|
||
|
class StyleTab;
|
||
|
class QSlider;
|
||
|
|
||
|
class MainWindow : public QMainWindow
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
MainWindow();
|
||
|
virtual ~MainWindow();
|
||
|
inline void set_default_extent(double x0,double y0,double x1, double y1)
|
||
|
{
|
||
|
default_extent_=mapnik::Envelope<double>(x0,y0,x1,y1);
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
void closeEvent(QCloseEvent* event);
|
||
|
public slots:
|
||
|
void zoom_all();
|
||
|
void zoom_to_box();
|
||
|
void pan();
|
||
|
void info();
|
||
|
void export_as();
|
||
|
void open(QString const& path = QString());
|
||
|
void reload();
|
||
|
void save();
|
||
|
void print();
|
||
|
void about();
|
||
|
void pan_left();
|
||
|
void pan_right();
|
||
|
void pan_up();
|
||
|
void pan_down();
|
||
|
private:
|
||
|
void createActions();
|
||
|
void createMenus();
|
||
|
void createToolBars();
|
||
|
void createContextMenu();
|
||
|
void load_map_file(QString const& filename);
|
||
|
|
||
|
|
||
|
QString currentPath;
|
||
|
QString filename_;
|
||
|
QAbstractItemModel *model;
|
||
|
LayerTab *layerTab_;
|
||
|
StyleTab * styleTab_;
|
||
|
MapWidget * mapWidget_;
|
||
|
QPrinter printer;
|
||
|
//actions
|
||
|
QList<QAction *> exportAsActs;
|
||
|
QActionGroup *toolsGroup;
|
||
|
|
||
|
QAction *zoomAllAct;
|
||
|
QAction *zoomBoxAct;
|
||
|
QAction *panAct;
|
||
|
QAction *infoAct;
|
||
|
QAction *openAct;
|
||
|
QAction *saveAct;
|
||
|
QAction *printAct;
|
||
|
QAction *exitAct;
|
||
|
QAction *aboutAct;
|
||
|
QAction *panLeftAct;
|
||
|
QAction *panRightAct;
|
||
|
QAction *panUpAct;
|
||
|
QAction *panDownAct;
|
||
|
QAction *reloadAct;
|
||
|
//toolbars
|
||
|
QToolBar *fileToolBar;
|
||
|
QToolBar *editToolBar;
|
||
|
//menus
|
||
|
QMenu *exportMenu;
|
||
|
QMenu *fileMenu;
|
||
|
QMenu *helpMenu;
|
||
|
//status bar
|
||
|
QStatusBar *status;
|
||
|
QSlider * slider_;
|
||
|
|
||
|
mapnik::Envelope<double> default_extent_;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif //MAINWINDOW_HPP
|