xmainwidget.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef XMAINWIDGET_H
  2. #define XMAINWIDGET_H
  3. #define BORDER_WIDTH 2
  4. #include <QWidget>
  5. #include <QtCore>
  6. #include <QtGui>
  7. #include "CustomUI_global.h"
  8. #include "xtitlebar.h"
  9. #include "xtoolbar.h"
  10. class CUSTOMUISHARED_EXPORT XMainWidget : public QWidget
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit XMainWidget(QWidget *parent = 0);
  15. ~XMainWidget();
  16. enum enum_Direction
  17. {
  18. eNone,
  19. eTop = 1,
  20. eRight =2 ,
  21. eBottom =4,
  22. eLeft = 8,
  23. eTopRight = eTop + eRight,
  24. eRightBottom = eRight + eBottom,
  25. eBottomLeft = eBottom + eLeft,
  26. eLeftTop = eLeft + eTop
  27. };
  28. protected:
  29. void paintEvent(QPaintEvent *e);
  30. void mouseDoubleClickEvent(QMouseEvent *e);
  31. void mouseMoveEvent(QMouseEvent *e);
  32. void mousePressEvent(QMouseEvent *e);
  33. void mouseReleaseEvent(QMouseEvent *e);
  34. signals:
  35. public slots:
  36. void slotOnMaxRestore();
  37. void slotOnMin();
  38. void slotOnClose();
  39. private:
  40. void initVariable();
  41. void initUI();
  42. enum_Direction getMousePos(int nXRelative,int nYRelative);
  43. void setCursorStyle(enum_Direction direction);
  44. void setDragSize(QPoint destPos,enum_Direction direction);
  45. private:
  46. bool m_mouseMoveWindowFlag;
  47. bool m_mouseResizeWindowFlag;
  48. QPoint m_mouseSrcPos;
  49. enum_Direction m_eDirection;
  50. QRect m_rectRestoreWindow;
  51. bool m_isWindowMax;
  52. XTitleBar *m_pTitleBar;
  53. XToolBar *m_pToolBar;
  54. QVBoxLayout *m_pLayout;
  55. QString m_skin;
  56. };
  57. #endif // XMAINWIDGET_H