src/gui/qgisinterface.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           qgisinterface.h
00003  Interface class for exposing functions in QgisApp for use by plugins
00004                              -------------------
00005   begin                : 2004-02-11
00006   copyright            : (C) 2004 by Gary E.Sherman
00007   email                : sherman at mrcc.com
00008  ***************************************************************************/
00009 
00010 /***************************************************************************
00011  *                                                                         *
00012  *   This program is free software; you can redistribute it and/or modify  *
00013  *   it under the terms of the GNU General Public License as published by  *
00014  *   the Free Software Foundation; either version 2 of the License, or     *
00015  *   (at your option) any later version.                                   *
00016  *                                                                         *
00017  ***************************************************************************/
00018 /* $Id: qgisinterface.h 9611 2008-11-09 10:34:03Z jef $ */
00019 #ifndef QGISINTERFACE_H
00020 #define QGISINTERFACE_H
00021 
00022 class QAction;
00023 class QMenu;
00024 class QToolBar;
00025 class QDockWidget;
00026 class QWidget;
00027 #include <QObject>
00028 
00029 #include <map>
00030 
00031 class QgisApp;
00032 class QgsMapLayer;
00033 class QgsMapCanvas;
00034 class QgsRasterLayer;
00035 class QgsVectorLayer;
00036 
00049 class GUI_EXPORT QgisInterface : public QObject
00050 {
00051     Q_OBJECT
00052 
00053   public:
00054 
00056     QgisInterface();
00057 
00059     virtual ~QgisInterface();
00060 
00061 
00062   public slots: // TODO: do these functions really need to be slots?
00063 
00065     virtual void zoomFull() = 0;
00066 
00068     virtual void zoomToPrevious() = 0;
00069 
00071     virtual void zoomToActiveLayer() = 0;
00072 
00074     virtual QgsVectorLayer* addVectorLayer( QString vectorLayerPath, QString baseName, QString providerKey ) = 0;
00075 
00077     virtual QgsRasterLayer* addRasterLayer( QString rasterLayerPath, QString baseName = QString() ) = 0;
00078 
00080     virtual QgsRasterLayer* addRasterLayer( const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers,
00081                                             const QStringList& styles, const QString& format, const QString& crs ) = 0;
00082 
00084     virtual bool addProject( QString theProject ) = 0;
00086     virtual void newProject( bool thePromptToSaveFlag = false ) = 0;
00087 
00089     virtual QgsMapLayer *activeLayer() = 0;
00090 
00092     virtual int addToolBarIcon( QAction *qAction ) = 0;
00093 
00095     virtual void removeToolBarIcon( QAction *qAction ) = 0;
00096 
00098     virtual QToolBar * addToolBar( QString name ) = 0;
00099 
00101     virtual QgsMapCanvas * mapCanvas() = 0;
00102 
00104     virtual QWidget * mainWindow() = 0;
00105 
00107     virtual void addPluginToMenu( QString name, QAction* action ) = 0;
00109     virtual void removePluginMenu( QString name, QAction* action ) = 0;
00110 
00112     virtual void addDockWidget( Qt::DockWidgetArea area, QDockWidget * dockwidget ) = 0;
00113 
00115     virtual void refreshLegend( QgsMapLayer *l ) = 0;
00116 
00119     virtual void addWindow( QAction *action ) = 0;
00120 
00123     virtual void removeWindow( QAction *action ) = 0;
00124 
00125     // TODO: is this deprecated in favour of QgsContextHelp?
00133     virtual void openURL( QString url, bool useQgisDocDirectory = true ) = 0;
00134 
00135 
00140 
00141     virtual QMenu *fileMenu() = 0;
00142     virtual QMenu *editMenu() = 0;
00143     virtual QMenu *viewMenu() = 0;
00144     virtual QMenu *layerMenu() = 0;
00145     virtual QMenu *settingsMenu() = 0;
00146     virtual QMenu *pluginMenu() = 0;
00147     virtual QMenu *firstRightStandardMenu() = 0;
00148     virtual QMenu *windowMenu() = 0;
00149     virtual QMenu *helpMenu() = 0;
00150 
00152     virtual QToolBar *fileToolBar() = 0;
00153     virtual QToolBar *layerToolBar() = 0;
00154     virtual QToolBar *mapNavToolToolBar() = 0;
00155     virtual QToolBar *digitizeToolBar() = 0;
00156     virtual QToolBar *attributesToolBar() = 0;
00157     virtual QToolBar *pluginToolBar() = 0;
00158     virtual QToolBar *helpToolBar() = 0;
00159 
00161     virtual QAction *actionNewProject() = 0;
00162     virtual QAction *actionOpenProject() = 0;
00163     virtual QAction *actionFileSeparator1() = 0;
00164     virtual QAction *actionSaveProject() = 0;
00165     virtual QAction *actionSaveProjectAs() = 0;
00166     virtual QAction *actionSaveMapAsImage() = 0;
00167     virtual QAction *actionFileSeparator2() = 0;
00168     virtual QAction *actionProjectProperties() = 0;
00169     virtual QAction *actionFileSeparator3() = 0;
00170     virtual QAction *actionPrintComposer() = 0;
00171     virtual QAction *actionFileSeparator4() = 0;
00172     virtual QAction *actionExit() = 0;
00173 
00175     virtual QAction *actionCutFeatures() = 0;
00176     virtual QAction *actionCopyFeatures() = 0;
00177     virtual QAction *actionPasteFeatures() = 0;
00178     virtual QAction *actionEditSeparator1() = 0;
00179     virtual QAction *actionCapturePoint() = 0;
00180     virtual QAction *actionCaptureLine() = 0;
00181     virtual QAction *actionCapturePologon() = 0;
00182     virtual QAction *actionDeleteSelected() = 0;
00183     virtual QAction *actionMoveFeature() = 0;
00184     virtual QAction *actionSplitFeatures() = 0;
00185     virtual QAction *actionAddVertex() = 0;
00186     virtual QAction *actionDelerteVertex() = 0;
00187     virtual QAction *actioMoveVertex() = 0;
00188     virtual QAction *actionAddRing() = 0;
00189     virtual QAction *actionAddIsland() = 0;
00190     virtual QAction *actionEditSeparator2() = 0;
00191 
00193     virtual QAction *actionPan() = 0;
00194     virtual QAction *actionZoomIn() = 0;
00195     virtual QAction *actionZoomOut() = 0;
00196     virtual QAction *actionSelect() = 0;
00197     virtual QAction *actionIdentify() = 0;
00198     virtual QAction *actionMeasure() = 0;
00199     virtual QAction *actionMeasureArea() = 0;
00200     virtual QAction *actionViewSeparator1() = 0;
00201     virtual QAction *actionZoomFullExtent() = 0;
00202     virtual QAction *actionZoomToLayer() = 0;
00203     virtual QAction *actionZoomToSelected() = 0;
00204     virtual QAction *actionZoomLast() = 0;
00205     virtual QAction *actionZoomActualSize() = 0;
00206     virtual QAction *actionViewSeparator2() = 0;
00207     virtual QAction *actionMapTips() = 0;
00208     virtual QAction *actionNewBookmark() = 0;
00209     virtual QAction *actionShowBookmarks() = 0;
00210     virtual QAction *actionDraw() = 0;
00211     virtual QAction *actionViewSeparator3() = 0;
00212 
00214     virtual QAction *actionNewVectorLayer() = 0;
00215     virtual QAction *actionAddOgrLayer() = 0;
00216     virtual QAction *actionAddRasterLayer() = 0;
00217     virtual QAction *actionAddPgLayer() = 0;
00218     virtual QAction *actionAddWmsLayer() = 0;
00219     virtual QAction *actionLayerSeparator1() = 0;
00220     virtual QAction *actionOpenTable() = 0;
00221     virtual QAction *actionToggleEditing() = 0;
00222     virtual QAction *actionLayerSaveAs() = 0;
00223     virtual QAction *actionLayerSelectionSaveAs() = 0;
00224     virtual QAction *actionRemoveLayer() = 0;
00225     virtual QAction *actionLayerProperties() = 0;
00226     virtual QAction *actionLayerSeparator2() = 0;
00227     virtual QAction *actionAddToOverview() = 0;
00228     virtual QAction *actionAddAllToOverview() = 0;
00229     virtual QAction *actionRemoveAllFromOverview() = 0;
00230     virtual QAction *actionLayerSeparator3() = 0;
00231     virtual QAction *actionHideAllLayers() = 0;
00232     virtual QAction *actionShowAllLayers() = 0;
00233 
00235     virtual QAction *actionManagePlugins() = 0;
00236     virtual QAction *actionPluginSeparator1() = 0;
00237     virtual QAction *actionPluginListSeparator() = 0;
00238     virtual QAction *actionPluginSeparator2() = 0;
00239     virtual QAction *actionPluginPythonSeparator() = 0;
00240     virtual QAction *actionShowPythonDialog() = 0;
00241 
00243     virtual QAction *actionToggleFullScreen() = 0;
00244     virtual QAction *actionSettingsSeparator1() = 0;
00245     virtual QAction *actionOptions() = 0;
00246     virtual QAction *actionCustomProjection() = 0;
00247 
00249     virtual QAction *actionHelpContents() = 0;
00250     virtual QAction *actionHelpSeparator1() = 0;
00251     virtual QAction *actionQgisHomePage() = 0;
00252     virtual QAction *actionCheckQgisVersion() = 0;
00253     virtual QAction *actionHelpSeparator2() = 0;
00254     virtual QAction *actionAbout() = 0;
00255 
00256   signals:
00260     void currentLayerChanged( QgsMapLayer * layer );
00261 
00262 };
00263 
00264 // FIXME: also in core/qgis.h
00265 #ifndef QGISEXTERN
00266 #ifdef WIN32
00267 #  define QGISEXTERN extern "C" __declspec( dllexport )
00268 #  ifdef _MSC_VER
00269 // do not warn about C bindings returning QString
00270 #    pragma warning(disable:4190)
00271 #  endif
00272 #else
00273 #  define QGISEXTERN extern "C"
00274 #endif
00275 #endif
00276 
00277 #endif //#ifndef QGISINTERFACE_H

Generated on Sat Feb 7 12:56:43 2009 for Quantum GIS API Documentation by  doxygen 1.5.1