QSplitterAdapter.h

00001 /*
00002  * @(#)QSplitterAdapter.h  0.2.0 / 2007-12-05
00003  *
00004  * Copyright (c) 2007, ETF and contributors. All rights reserved.
00005  *
00006  * This software is licensed under the LGPL, version 2.1, license.
00007  * A copy of the license is included in the file LICENSE-LGPL.txt.
00008  */
00009 #ifndef QSPLITTERADAPTER_H
00010 #define QSPLITTERADAPTER_H
00011 
00012 #include "JavaQxQSwing.h"
00013 
00014 /*^**************************************************************************^*/
00015 /*- QSplitterHandleAdapter Class.                                            -*/
00016 /*^**************************************************************************^*/
00017 
00024 class JAVAQX_EXPORT QSplitterHandleAdapter : public QSplitterHandle
00025 {
00026 public:
00027   QSplitterHandleAdapter(Qt::Orientation orientation, QSplitter *parent,
00028                          bool touchExpandable);
00029 public:
00030   void setTouchExpandable(bool touchExpandable);
00031 protected:
00032   virtual void resizeEvent(QResizeEvent *e);
00033   virtual void paintEvent(QPaintEvent *e);
00034   virtual void enterEvent(QEvent *e);
00035   virtual void leaveEvent(QEvent *e);
00036   virtual void mouseMoveEvent(QMouseEvent *e);
00037   virtual void mousePressEvent(QMouseEvent *e);
00038   virtual void mouseReleaseEvent(QMouseEvent *e);
00039 private:
00040   void calculateArrows();
00041 private:
00042   enum MousePosition { Outside, Over, OverFirst, OverSecond };
00043   MousePosition m_mousePosition;
00044   QPoint m_pressedPoint;
00045   QPoint m_firstArrow[3];
00046   QPoint m_secondArrow[3];
00047   QRect m_firstArrowRect;
00048   QRect m_secondArrowRect;
00049   bool m_touchExpandable;
00050 };
00051 
00052 /*^**************************************************************************^*/
00053 /*- QSplitterAdapter Class.                                                  -*/
00054 /*^**************************************************************************^*/
00055 
00062 class QSplitterAdapter : public QSplitter
00063 {
00064 public:
00065   QSplitterAdapter();
00066 public:
00067   void setHandlePosition(int position);
00068   void setOneTouchExpandable(bool oneTouchExpandable);
00069   void setResizeWeight(double resizeWeight);
00070   void collapseFirst();
00071   void collapseSecond();
00072 protected:
00073   QSplitterHandle *createHandle();
00074 private:
00075   bool m_oneTouchExpandable;
00076   double m_resizeWeight;
00077 };
00078 
00079 #endif // QSPLITTERADAPTER_H
00080 
00081 /*^*****************************************************************************
00082   File History:
00083 
00084  - 2007-12-05 22:04:32 Slobodan
00085    Initial version
00086 
00087 *****************************************************************************^*/

Copyright © 2007 ETF and contributors. All Rights Reserved.