00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef QGISINTERFACE_H
00020 #define QGISINTERFACE_H
00021
00022 class QAction;
00023 class QMenu;
00024 class QToolBar;
00025 class QDockWidget;
00026 class QMainWindow;
00027 class QWidget;
00028 #include <QObject>
00029 #include <QPair>
00030
00031 #include <map>
00032
00033
00034 class QgsComposerView;
00035 class QgsMapLayer;
00036 class QgsMapCanvas;
00037 class QgsRasterLayer;
00038 class QgsVectorLayer;
00039 class QgsLegendInterface;
00040 class QgsFeature;
00041
00054 class GUI_EXPORT QgisInterface : public QObject
00055 {
00056 Q_OBJECT
00057
00058 public:
00059
00061 QgisInterface();
00062
00064 virtual ~QgisInterface();
00065
00069 virtual QgsLegendInterface* legendInterface() = 0;
00070
00071
00072 public slots:
00073
00075 virtual void zoomFull() = 0;
00076
00078 virtual void zoomToPrevious() = 0;
00079
00081 virtual void zoomToNext() = 0;
00082
00084 virtual void zoomToActiveLayer() = 0;
00085
00087 virtual QgsVectorLayer* addVectorLayer( QString vectorLayerPath, QString baseName, QString providerKey ) = 0;
00088
00090 virtual QgsRasterLayer* addRasterLayer( QString rasterLayerPath, QString baseName = QString() ) = 0;
00091
00093 virtual QgsRasterLayer* addRasterLayer( const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers,
00094 const QStringList& styles, const QString& format, const QString& crs ) = 0;
00095
00097 virtual bool addProject( QString theProject ) = 0;
00099 virtual void newProject( bool thePromptToSaveFlag = false ) = 0;
00100
00102 virtual QgsMapLayer *activeLayer() = 0;
00103
00107 virtual bool setActiveLayer( QgsMapLayer * ) = 0;
00108
00110 virtual int addToolBarIcon( QAction *qAction ) = 0;
00111
00113 virtual void removeToolBarIcon( QAction *qAction ) = 0;
00114
00116 virtual QToolBar * addToolBar( QString name ) = 0;
00117
00119 virtual QgsMapCanvas * mapCanvas() = 0;
00120
00122 virtual QWidget * mainWindow() = 0;
00123
00125 virtual QList<QgsComposerView*> activeComposers() = 0;
00126
00128 virtual void addPluginToMenu( QString name, QAction* action ) = 0;
00130 virtual void removePluginMenu( QString name, QAction* action ) = 0;
00131
00133 virtual void addDockWidget( Qt::DockWidgetArea area, QDockWidget * dockwidget ) = 0;
00134
00136 virtual void removeDockWidget( QDockWidget * dockwidget ) = 0;
00137
00141 virtual void refreshLegend( QgsMapLayer *l ) = 0;
00142
00146 virtual void showLayerProperties( QgsMapLayer *l ) = 0;
00147
00150 virtual void addWindow( QAction *action ) = 0;
00151
00154 virtual void removeWindow( QAction *action ) = 0;
00155
00159 virtual bool registerMainWindowAction( QAction* action, QString defaultShortcut ) = 0;
00160
00164 virtual bool unregisterMainWindowAction( QAction* action ) = 0;
00165
00166
00174 virtual void openURL( QString url, bool useQgisDocDirectory = true ) = 0;
00175
00176
00181
00182 virtual QMenu *fileMenu() = 0;
00183 virtual QMenu *editMenu() = 0;
00184 virtual QMenu *viewMenu() = 0;
00185 virtual QMenu *layerMenu() = 0;
00186 virtual QMenu *settingsMenu() = 0;
00187 virtual QMenu *pluginMenu() = 0;
00188 virtual QMenu *firstRightStandardMenu() = 0;
00189 virtual QMenu *windowMenu() = 0;
00190 virtual QMenu *helpMenu() = 0;
00191
00193 virtual QToolBar *fileToolBar() = 0;
00194 virtual QToolBar *layerToolBar() = 0;
00195 virtual QToolBar *mapNavToolToolBar() = 0;
00196 virtual QToolBar *digitizeToolBar() = 0;
00197 virtual QToolBar *advancedDigitizeToolBar() = 0;
00198 virtual QToolBar *attributesToolBar() = 0;
00199 virtual QToolBar *pluginToolBar() = 0;
00200 virtual QToolBar *helpToolBar() = 0;
00201
00203 virtual QAction *actionNewProject() = 0;
00204 virtual QAction *actionOpenProject() = 0;
00205 virtual QAction *actionFileSeparator1() = 0;
00206 virtual QAction *actionSaveProject() = 0;
00207 virtual QAction *actionSaveProjectAs() = 0;
00208 virtual QAction *actionSaveMapAsImage() = 0;
00209 virtual QAction *actionFileSeparator2() = 0;
00210 virtual QAction *actionProjectProperties() = 0;
00211 virtual QAction *actionFileSeparator3() = 0;
00212 virtual QAction *actionPrintComposer() = 0;
00213 virtual QAction *actionFileSeparator4() = 0;
00214 virtual QAction *actionExit() = 0;
00215
00217 virtual QAction *actionCutFeatures() = 0;
00218 virtual QAction *actionCopyFeatures() = 0;
00219 virtual QAction *actionPasteFeatures() = 0;
00220 virtual QAction *actionEditSeparator1() = 0;
00221 virtual QAction *actionCapturePoint() = 0;
00222 virtual QAction *actionCaptureLine() = 0;
00223 virtual QAction *actionCapturePolygon() = 0;
00224 virtual QAction *actionDeleteSelected() = 0;
00225 virtual QAction *actionMoveFeature() = 0;
00226 virtual QAction *actionSplitFeatures() = 0;
00227 virtual QAction *actionAddVertex() = 0;
00228 virtual QAction *actionDeleteVertex() = 0;
00229 virtual QAction *actionMoveVertex() = 0;
00230 virtual QAction *actionAddRing() = 0;
00231 virtual QAction *actionAddIsland() = 0;
00232 virtual QAction *actionSimplifyFeature() = 0;
00233 virtual QAction *actionDeleteRing() = 0;
00234 virtual QAction *actionDeletePart() = 0;
00235 virtual QAction *actionNodeTool() = 0;
00236 virtual QAction *actionEditSeparator2() = 0;
00237
00239 virtual QAction *actionPan() = 0;
00240 virtual QAction *actionZoomIn() = 0;
00241 virtual QAction *actionZoomOut() = 0;
00242 virtual QAction *actionSelect() = 0;
00243 virtual QAction *actionSelectRectangle() = 0;
00244 virtual QAction *actionSelectPolygon() = 0;
00245 virtual QAction *actionSelectFreehand() = 0;
00246 virtual QAction *actionSelectRadius() = 0;
00247 virtual QAction *actionIdentify() = 0;
00248 virtual QAction *actionMeasure() = 0;
00249 virtual QAction *actionMeasureArea() = 0;
00250 virtual QAction *actionViewSeparator1() = 0;
00251 virtual QAction *actionZoomFullExtent() = 0;
00252 virtual QAction *actionZoomToLayer() = 0;
00253 virtual QAction *actionZoomToSelected() = 0;
00254 virtual QAction *actionZoomLast() = 0;
00255 virtual QAction *actionZoomActualSize() = 0;
00256 virtual QAction *actionViewSeparator2() = 0;
00257 virtual QAction *actionMapTips() = 0;
00258 virtual QAction *actionNewBookmark() = 0;
00259 virtual QAction *actionShowBookmarks() = 0;
00260 virtual QAction *actionDraw() = 0;
00261 virtual QAction *actionViewSeparator3() = 0;
00262
00264 virtual QAction *actionNewVectorLayer() = 0;
00265 virtual QAction *actionAddOgrLayer() = 0;
00266 virtual QAction *actionAddRasterLayer() = 0;
00267 virtual QAction *actionAddPgLayer() = 0;
00268 virtual QAction *actionAddWmsLayer() = 0;
00269 virtual QAction *actionLayerSeparator1() = 0;
00270 virtual QAction *actionOpenTable() = 0;
00271 virtual QAction *actionToggleEditing() = 0;
00272 virtual QAction *actionLayerSaveAs() = 0;
00273 virtual QAction *actionLayerSelectionSaveAs() = 0;
00274 virtual QAction *actionRemoveLayer() = 0;
00275 virtual QAction *actionLayerProperties() = 0;
00276 virtual QAction *actionLayerSeparator2() = 0;
00277 virtual QAction *actionAddToOverview() = 0;
00278 virtual QAction *actionAddAllToOverview() = 0;
00279 virtual QAction *actionRemoveAllFromOverview() = 0;
00280 virtual QAction *actionLayerSeparator3() = 0;
00281 virtual QAction *actionHideAllLayers() = 0;
00282 virtual QAction *actionShowAllLayers() = 0;
00283
00285 virtual QAction *actionManagePlugins() = 0;
00286 virtual QAction *actionPluginSeparator1() = 0;
00287 virtual QAction *actionPluginListSeparator() = 0;
00288 virtual QAction *actionPluginSeparator2() = 0;
00289 virtual QAction *actionPluginPythonSeparator() = 0;
00290 virtual QAction *actionShowPythonDialog() = 0;
00291
00293 virtual QAction *actionToggleFullScreen() = 0;
00294 virtual QAction *actionSettingsSeparator1() = 0;
00295 virtual QAction *actionOptions() = 0;
00296 virtual QAction *actionCustomProjection() = 0;
00297
00299 virtual QAction *actionHelpContents() = 0;
00300 virtual QAction *actionHelpSeparator1() = 0;
00301 virtual QAction *actionQgisHomePage() = 0;
00302 virtual QAction *actionCheckQgisVersion() = 0;
00303 virtual QAction *actionHelpSeparator2() = 0;
00304 virtual QAction *actionAbout() = 0;
00305
00307
00308
00309 virtual bool openFeatureForm( QgsVectorLayer *vlayer, QgsFeature &f, bool updateFeatureOnly = false ) = 0;
00310
00311 signals:
00315 void currentLayerChanged( QgsMapLayer * layer );
00318 void composerAdded( QgsComposerView* v );
00321 void composerWillBeRemoved( QgsComposerView* v );
00324 void initializationCompleted();
00333 void projectRead();
00344 void newProjectCreated();
00345
00346 };
00347
00348
00349 #ifndef QGISEXTERN
00350 #ifdef WIN32
00351 # define QGISEXTERN extern "C" __declspec( dllexport )
00352 # ifdef _MSC_VER
00353
00354 # pragma warning(disable:4190)
00355 # endif
00356 #else
00357 # define QGISEXTERN extern "C"
00358 #endif
00359 #endif
00360
00361 #endif //#ifndef QGISINTERFACE_H