feat: 添加ElaWidgetTool库
This commit is contained in:
66
ElaWidgetTools/private/ElaAppBarPrivate.h
Normal file
66
ElaWidgetTools/private/ElaAppBarPrivate.h
Normal file
@@ -0,0 +1,66 @@
|
||||
#ifndef ELAAPPBARPRIVATE_H
|
||||
#define ELAAPPBARPRIVATE_H
|
||||
#include "ElaDef.h"
|
||||
|
||||
class QLabel;
|
||||
class QScreen;
|
||||
class QHBoxLayout;
|
||||
class QVBoxLayout;
|
||||
class ElaText;
|
||||
class ElaAppBar;
|
||||
class ElaIconButton;
|
||||
class ElaToolButton;
|
||||
class QMenu;
|
||||
class ElaAppBarPrivate : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_D_CREATE(ElaAppBar)
|
||||
Q_PROPERTY_CREATE_D(bool, IsStayTop)
|
||||
Q_PROPERTY_CREATE_D(bool, IsFixedSize)
|
||||
Q_PROPERTY_CREATE_D(bool, IsDefaultClosed)
|
||||
Q_PROPERTY_CREATE_D(bool, IsOnlyAllowMinAndClose)
|
||||
Q_PROPERTY_CREATE_D(int, AppBarHeight)
|
||||
Q_PRIVATE_CREATE_D(QWidget*, CustomWidget)
|
||||
Q_PROPERTY_CREATE_D(int, CustomWidgetMaximumWidth)
|
||||
Q_PRIVATE_CREATE_D(QMenu*, CustomMenu)
|
||||
public:
|
||||
explicit ElaAppBarPrivate(QObject* parent = nullptr);
|
||||
~ElaAppBarPrivate() override;
|
||||
Q_SLOT void onMinButtonClicked();
|
||||
Q_SLOT void onMaxButtonClicked();
|
||||
Q_SLOT void onCloseButtonClicked();
|
||||
Q_SLOT void onStayTopButtonClicked();
|
||||
|
||||
private:
|
||||
ElaThemeType::ThemeMode _themeMode;
|
||||
QHBoxLayout* _mainLayout{nullptr};
|
||||
QVBoxLayout* _iconLabelLayout{nullptr};
|
||||
QVBoxLayout* _titleLabelLayout{nullptr};
|
||||
ElaAppBarType::ButtonFlags _buttonFlags;
|
||||
ElaToolButton* _routeBackButton{nullptr};
|
||||
ElaToolButton* _navigationButton{nullptr};
|
||||
ElaToolButton* _themeChangeButton{nullptr};
|
||||
ElaToolButton* _stayTopButton{nullptr};
|
||||
ElaToolButton* _minButton{nullptr};
|
||||
ElaToolButton* _maxButton{nullptr};
|
||||
ElaIconButton* _closeButton{nullptr};
|
||||
QScreen* _lastScreen{nullptr};
|
||||
ElaText* _titleLabel{nullptr};
|
||||
QLabel* _iconLabel{nullptr};
|
||||
qint64 _currentWinID{0};
|
||||
int _lastMinTrackWidth{0};
|
||||
quint64 _clickTimer{0};
|
||||
int _edges{0};
|
||||
int _margins{8};
|
||||
bool _isHoverMaxButton{false};
|
||||
int _win7Margins{0};
|
||||
void _changeMaxButtonAwesome(bool isMaximized);
|
||||
void _showAppBarMenu(QPoint point);
|
||||
void _updateCursor(int edges);
|
||||
bool _containsCursorToItem(QWidget* item);
|
||||
void _onThemeModeChange(ElaThemeType::ThemeMode themeMode);
|
||||
int _calculateMinimumWidth();
|
||||
QVBoxLayout* _createVLayout(QWidget* widget);
|
||||
};
|
||||
|
||||
#endif // ELAAPPBARPRIVATE_H
|
||||
Reference in New Issue
Block a user