You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iBase/iPlugin/MdiAreaEx.h

62 lines
1.6 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include <QMdiArea>
#include "Defines.h"
#include "iPlugin_global.h"
// 主要重载其信号响应
class I_PLUGIN_EXPORT MdiAreaEx :
public QMdiArea
{
Q_OBJECT
public:
MdiAreaEx(QWidget* parent = 0);
~MdiAreaEx();
// 布局
// bFilterMode二次布局时如果bFilterMode为true则过滤掉Hide的窗体
void layoutSubWnds(WndLayoutMode o, bool bFilterMode = false);
WndLayoutMode getLayoutMode();
void relayoutSubWnds();
void setLastAutoSpan(bool b);
void setColCount(int n);
private:
// 布局实现
void _layoutOne(QList<QMdiSubWindow*> listSubWnds);
void _layoutVert(QList<QMdiSubWindow*> listSubWnds);
void _layoutHori(QList<QMdiSubWindow*> listSubWnds);
void _layoutCell(QList<QMdiSubWindow*> listSubWnds);
void _layoutCascade(QList<QMdiSubWindow*> listSubWnds);
protected:
bool eventFilter(QObject *object, QEvent *event);
void childEvent(QChildEvent *childEvent);
void resizeEvent(QResizeEvent *resizeEvent);
void timerEvent(QTimerEvent *timerEvent);
void showEvent(QShowEvent *showEvent);
signals:
// Mdi大小发生了切换
void sigMdiSizeChanged();
// 在布局前允许用户对窗体顺序进行调整
void sigAdjustSubWnds(QList<QMdiSubWindow*>&);
// nMode = 0: added 1:removed 2:polished
// void sigChildActioned(QObject* pChild, int nMode);
protected:
WndLayoutMode m_oMode;
bool m_bFilterMode;
bool m_bLastSpan; //最后一个是否对齐如果不够的话默认为true
int m_nColCount; //默认为2
};