| #pragma once |
| |
| #ifndef TNZ_PANEL_INCLUDED |
| #define TNZ_PANEL_INCLUDED |
| |
| #include "tw/tw.h" |
| #include "tw/button.h" |
| |
| class TPanel : public TWidget { |
| int m_border, m_resizeHandleWidth; |
| TWidget *m_dockWidget; |
| TButton *m_maximizeButton; |
| bool m_maximized; |
| int m_status; |
| |
| public: |
| enum Side { Center, Top, Right, Bottom, Left }; |
| |
| public: |
| TPanel(TWidget *parent, string name); |
| |
| void draw(); |
| void keyDown(int key, TUINT32 flags, const TPoint &p); |
| void close(); |
| |
| void dockToggle(); |
| void maximizeToggle(); |
| |
| void configureNotify(const TDimension &d); |
| void mouseMove(const TPoint &p); |
| void leftButtonDown(const TMouseEvent &e); |
| void leftButtonUp(const TMouseEvent &e); |
| |
| void leave(const TPoint &p); |
| void enter(const TPoint &p); |
| |
| Side findSide(const TPoint &p); |
| bool canMoveSide(Side side); |
| |
| static TPanel *createPanel(TWidget *parent, string name); |
| void setParent(TWidget *p) { |
| TWidget::setParent(p); |
| m_dockWidget = p; |
| }; |
| }; |
| |
| class TPanelResizer { |
| public: |
| TPanelResizer(){}; |
| virtual bool canMoveSide(TPanel *panel, TPanel::Side side) = 0; |
| virtual void moveSide(TPanel *panel, TPanel::Side side) = 0; |
| }; |
| |
| #endif |