tahoma2d/toonz/sources/include/tw/panel.h

55 lines
1.1 KiB
C
Raw Normal View History

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