feat: 添加ElaWidgetTool库
This commit is contained in:
98
ElaWidgetTools/ElaDrawerArea.cpp
Normal file
98
ElaWidgetTools/ElaDrawerArea.cpp
Normal file
@@ -0,0 +1,98 @@
|
||||
#include "ElaDrawerArea.h"
|
||||
#include "ElaDrawerAreaPrivate.h"
|
||||
#include "ElaTheme.h"
|
||||
ElaDrawerArea::ElaDrawerArea(QWidget* parent)
|
||||
: QWidget(parent), d_ptr(new ElaDrawerAreaPrivate())
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->q_ptr = this;
|
||||
setObjectName("ElaDrawerArea");
|
||||
setStyleSheet("#ElaDrawerArea{background-color:transparent;}");
|
||||
|
||||
d->_drawerHeader = new ElaDrawerHeader(this);
|
||||
d->_drawerContainer = new ElaDrawerContainer(this);
|
||||
connect(d->_drawerHeader, &ElaDrawerHeader::drawerHeaderClicked, d, &ElaDrawerAreaPrivate::onDrawerHeaderClicked);
|
||||
|
||||
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
||||
mainLayout->setContentsMargins(0, 0, 0, 0);
|
||||
mainLayout->setSpacing(0);
|
||||
mainLayout->addWidget(d->_drawerHeader);
|
||||
mainLayout->addWidget(d->_drawerContainer);
|
||||
|
||||
d->_themeMode = eTheme->getThemeMode();
|
||||
connect(eTheme, &ElaTheme::themeModeChanged, this, [=](ElaThemeType::ThemeMode themeMode) {
|
||||
d->_themeMode = themeMode;
|
||||
});
|
||||
}
|
||||
|
||||
ElaDrawerArea::~ElaDrawerArea()
|
||||
{
|
||||
}
|
||||
|
||||
void ElaDrawerArea::setBorderRadius(int borderRadius)
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerHeader->setBorderRadius(borderRadius);
|
||||
d->_drawerContainer->setBorderRadius(borderRadius);
|
||||
Q_EMIT pBorderRadiusChanged();
|
||||
}
|
||||
|
||||
int ElaDrawerArea::getBorderRadius() const
|
||||
{
|
||||
Q_D(const ElaDrawerArea);
|
||||
return d->_drawerHeader->getBorderRadius();
|
||||
}
|
||||
|
||||
void ElaDrawerArea::setHeaderHeight(int headerHeight)
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerHeader->setFixedHeight(headerHeight);
|
||||
}
|
||||
|
||||
int ElaDrawerArea::getHeaderHeight() const
|
||||
{
|
||||
Q_D(const ElaDrawerArea);
|
||||
return d->_drawerHeader->height();
|
||||
}
|
||||
|
||||
void ElaDrawerArea::setDrawerHeader(QWidget* widget)
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerHeader->setHeaderWidget(widget);
|
||||
}
|
||||
|
||||
void ElaDrawerArea::addDrawer(QWidget* widget)
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerContainer->addWidget(widget);
|
||||
}
|
||||
|
||||
void ElaDrawerArea::removeDrawer(QWidget* widget)
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerContainer->removeWidget(widget);
|
||||
}
|
||||
|
||||
void ElaDrawerArea::expand()
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerHeader->setIsExpand(true);
|
||||
d->_drawerHeader->doExpandOrCollpaseAnimation();
|
||||
d->_drawerContainer->doDrawerAnimation(true);
|
||||
Q_EMIT expandStateChanged(true);
|
||||
}
|
||||
|
||||
void ElaDrawerArea::collpase()
|
||||
{
|
||||
Q_D(ElaDrawerArea);
|
||||
d->_drawerHeader->setIsExpand(false);
|
||||
d->_drawerHeader->doExpandOrCollpaseAnimation();
|
||||
d->_drawerContainer->doDrawerAnimation(false);
|
||||
Q_EMIT expandStateChanged(false);
|
||||
}
|
||||
|
||||
bool ElaDrawerArea::getIsExpand() const
|
||||
{
|
||||
Q_D(const ElaDrawerArea);
|
||||
return d->_drawerHeader->getIsExpand();
|
||||
}
|
||||
Reference in New Issue
Block a user