00001 /* 00002 * Copyright (C) 2008 Kamil Dudka <xdudka00@stud.fit.vutbr.cz> 00003 * 00004 * This file is part of rob08 00005 * 00006 * rob08 is free software: you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation, either version 3 of the License, or 00009 * any later version. 00010 * 00011 * rob08 is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with rob08. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 #ifndef VISWND_H 00021 #define VISWND_H 00022 00023 #include "config.h" 00024 00025 #ifndef BUILDING_DOX 00026 # include <QDockWidget> 00027 # include <QMainWindow> 00028 # include <QScrollArea> 00029 # include <QStatusBar> 00030 #endif 00031 00032 class ICore; 00033 class CoreSync; 00034 class VisWnd: public QMainWindow { 00035 Q_OBJECT 00036 public: 00037 static VisWnd* showMainWindow(CoreSync *); 00038 ~VisWnd(); 00039 public slots: 00040 void syncThreadFinished(); 00041 private slots: 00042 void scrollToView(QPoint); 00043 private: 00044 VisWnd(CoreSync *); 00045 00046 struct Private; 00047 Private *d; 00048 }; 00049 00050 class ScrollArea: public QScrollArea { 00051 Q_OBJECT 00052 public: 00053 ScrollArea(QWidget *parent=0); 00054 ~ScrollArea(); 00055 signals: 00056 void zoomIn(); 00057 void zoomOut(); 00058 protected: 00059 void wheelEvent(QWheelEvent *); 00060 }; 00061 00062 class Bar: public QDockWidget { 00063 Q_OBJECT 00064 public: 00065 Bar(QSize floatingSize); 00066 protected: 00067 QSize floatingSize_; 00068 protected slots: 00069 void topLevelChanged(bool); 00070 }; 00071 00072 class NavigationBar: public Bar { 00073 Q_OBJECT 00074 public: 00075 NavigationBar(); 00076 ~NavigationBar(); 00077 public slots: 00078 void zoom(qreal); 00079 void zoomIn(); 00080 void zoomOut(); 00081 signals: 00082 void setShrinkPathEnabled(bool); 00083 void setDrawSurfaceEnabled(bool); 00084 void zoomChanged(qreal); 00085 private slots: 00086 void shrinkPathChanged(int); 00087 void drawSurfaceChanged(int); 00088 void zoomChanged(int); 00089 private: 00090 struct Private; 00091 Private *d; 00092 }; 00093 00094 class ICoreInfoSource; 00095 class MetersBar: public Bar { 00096 Q_OBJECT 00097 public: 00098 MetersBar(ICoreInfoSource *); 00099 ~MetersBar(); 00100 public slots: 00101 void coreInfoChanged(); 00102 private slots: 00103 void refresh(); 00104 private: 00105 struct Private; 00106 Private *d; 00107 }; 00108 00109 #endif /* VISWND_H */
1.5.4