]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiWorkArea.h
Complete the removal of the embedding stuff. Maybe. It's hard to be sure we got every...
[lyx.git] / src / frontends / qt4 / GuiWorkArea.h
index 034bef285b6be7e0c6d5be56434214bacbb7da45..7120372341fa73ff3b4f7c063f13e017a00e3811 100644 (file)
@@ -26,6 +26,7 @@
 #include <QMouseEvent>
 #include <QPixmap>
 #include <QResizeEvent>
+#include <QTabBar>
 #include <QTabWidget>
 #include <QTimer>
 
@@ -147,6 +148,8 @@ private Q_SLOTS:
        /// close this work area.
        /// Slot for Buffer::closing signal.
        void close();
+       /// Slot to restore proper scrollbar behaviour.
+       void fixVerticalScrollBar();
 
 private:
        friend class GuiCompleter;
@@ -262,8 +265,6 @@ Q_SIGNALS:
        void lastWorkAreaRemoved();
 
 public Q_SLOTS:
-       ///
-       void on_currentTabChanged(int index);
        /// close current buffer, or the one given by \c clicked_tab_
        void closeCurrentBuffer();
        /// close current tab, or the one given by \c clicked_tab_
@@ -272,13 +273,51 @@ public Q_SLOTS:
        void updateTabText(GuiWorkArea *);
        
 private Q_SLOTS:
+       ///
+       void on_currentTabChanged(int index);
        ///
        void showContextMenu(const QPoint & pos);
+       ///
+       void moveTab(int fromIndex, int toIndex);
 
 private:
        int clicked_tab_;
 }; // TabWorkArea
 
+
+class DragTabBar : public QTabBar
+{
+       Q_OBJECT
+public:
+       ///
+       DragTabBar(QWidget * parent=0);
+
+#if QT_VERSION < 0x040300
+       ///
+       int tabAt(QPoint const & position) const;
+#endif
+
+protected:
+       ///
+       void mousePressEvent(QMouseEvent * event);
+       ///
+       void mouseMoveEvent(QMouseEvent * event);
+       ///
+       void dragEnterEvent(QDragEnterEvent * event);
+       ///
+       void dropEvent(QDropEvent * event);
+
+private:
+       ///
+       QPoint dragStartPos_;
+       ///
+       int dragCurrentIndex_;
+
+Q_SIGNALS:
+       ///
+       void tabMoveRequested(int fromIndex, int toIndex);
+};
+
 } // namespace frontend
 } // namespace lyx