57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware)
|
|
// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao)
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#ifndef WINDOWBARPRIVATE_H
|
|
#define WINDOWBARPRIVATE_H
|
|
|
|
#include <QBoxLayout>
|
|
|
|
#include "windowbar.h"
|
|
|
|
namespace QWK {
|
|
|
|
class WindowBarPrivate {
|
|
Q_DECLARE_PUBLIC(WindowBar)
|
|
public:
|
|
WindowBarPrivate();
|
|
virtual ~WindowBarPrivate();
|
|
|
|
void init();
|
|
|
|
WindowBar *q_ptr;
|
|
|
|
QWidget *w;
|
|
bool autoTitle;
|
|
bool autoIcon;
|
|
|
|
enum WindowBarItem {
|
|
IconButton,
|
|
MenuWidget,
|
|
TitleLabel,
|
|
MinimumButton,
|
|
MaximumButton,
|
|
CloseButton,
|
|
};
|
|
|
|
QHBoxLayout *layout;
|
|
|
|
inline QWidget *widgetAt(int index) const {
|
|
return layout->itemAt(index)->widget();
|
|
}
|
|
|
|
void setWidgetAt(int index, QWidget *widget);
|
|
|
|
QWidget *takeWidgetAt(int index);
|
|
|
|
inline void insertDefaultSpace(int index) {
|
|
layout->insertSpacerItem(index, new QSpacerItem(0, 0));
|
|
}
|
|
|
|
private:
|
|
Q_DISABLE_COPY(WindowBarPrivate)
|
|
};
|
|
|
|
}
|
|
|
|
#endif // WINDOWBARPRIVATE_H
|