culturered_client/TouchScreen/DetailedTown.h
2024-09-07 11:34:44 +08:00

61 lines
1.3 KiB
C++

#ifndef DETAILEDTOWN_H
#define DETAILEDTOWN_H
#include <QMap>
#include "PageBaseWidget.h"
#include "DetailedBaseWidget.h"
#include "SequenceFrame.h"
namespace Ui {
class DetailedTown;
}
class DetailedTown : public PageBaseWidget
{
Q_OBJECT
public:
explicit DetailedTown(MainWindow* parent = nullptr);
~DetailedTown();
PageType GetPageType() const override { return PageBaseWidget::PageType::PT_DetailedTown; }
void SetCurrent(DetailedType dt);
void SetSequencePos(const QPoint& pos);
void SetMediaInfo(MediaInfo* mediaInfo) {
currentMediaInfo_ = mediaInfo;
}
protected:
void keyPressEvent(QKeyEvent* event) override;
void keyReleaseEvent(QKeyEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
private:
void OnShowLast();
void OnShowNext();
void OnEnterHome();
void InitDetailedWidget();
void InitLastNextButton();
void InitSequenceFrame();
bool ShowIndex(DetailedType dt);
void AddDetailedWidget(DetailedBaseWidget* widget);
private:
Ui::DetailedTown *ui;
int m_current{ 0 };
QMap<DetailedType, DetailedBaseWidget*> m_detailedBaseWidgets;
SequenceFrame* sequenceFrame_{ nullptr };
MediaInfo* currentMediaInfo_{ nullptr };
bool keyYPressed{ false };
};
#endif // DETAILEDTOWN_H