64 lines
1.1 KiB
C
64 lines
1.1 KiB
C
|
|
||
|
|
||
|
#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
|