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 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:
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
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
00265 #ifndef QGISEXTERN
00266 #ifdef WIN32
00267 # define QGISEXTERN extern "C" __declspec( dllexport )
00268 # ifdef _MSC_VER
00269
00270 # pragma warning(disable:4190)
00271 # endif
00272 #else
00273 # define QGISEXTERN extern "C"
00274 #endif
00275 #endif
00276
00277 #endif //#ifndef QGISINTERFACE_H