mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-07-11 01:25:07 +02:00
61 lines
1.8 KiB
C++
61 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include <string_view>
|
|
|
|
#include "Common/UI/View.h"
|
|
#include "Common/System/OSD.h"
|
|
|
|
#undef ERROR
|
|
|
|
enum class NoticeLevel {
|
|
SUCCESS,
|
|
INFO,
|
|
WARN,
|
|
ERROR,
|
|
};
|
|
|
|
class NoticeView : public UI::InertView {
|
|
public:
|
|
NoticeView(NoticeLevel level, std::string_view text, std::string_view detailsText, UI::LayoutParams *layoutParams = 0)
|
|
: InertView(layoutParams), level_(level), text_(text), detailsText_(detailsText) {}
|
|
|
|
void SetIconName(std::string_view name) {
|
|
iconName_ = name;
|
|
}
|
|
void SetText(std::string_view text) {
|
|
text_ = text;
|
|
}
|
|
void SetLevel(NoticeLevel level) {
|
|
level_ = level;
|
|
}
|
|
void SetLevelAndText(NoticeLevel level, std::string_view text) {
|
|
level_ = level;
|
|
text_ = text;
|
|
}
|
|
void SetWrapText(bool wrapText) {
|
|
wrapText_ = wrapText;
|
|
}
|
|
void SetDetailsText(std::string_view detailsText) {
|
|
detailsText_ = detailsText;
|
|
}
|
|
|
|
void GetContentDimensionsBySpec(const UIContext &dc, UI::MeasureSpec horiz, UI::MeasureSpec vert, float &w, float &h) const override;
|
|
void Draw(UIContext &dc) override;
|
|
|
|
private:
|
|
std::string text_;
|
|
std::string detailsText_;
|
|
std::string iconName_;
|
|
NoticeLevel level_;
|
|
mutable float height1_ = 0.0f;
|
|
bool wrapText_ = true;
|
|
};
|
|
|
|
ImageID GetOSDIcon(NoticeLevel level);
|
|
NoticeLevel GetNoticeLevel(OSDType type);
|
|
uint32_t GetNoticeBackgroundColor(NoticeLevel type);
|
|
void MeasureNotice(const UIContext &dc, NoticeLevel level, std::string_view text, std::string_view details, std::string_view iconName, int align, float maxWidth, float *width, float *height, float *height1);
|
|
void RenderNotice(UIContext &dc, Bounds bounds, float height1, NoticeLevel level, std::string_view text, std::string_view details, std::string_view iconName, int align, float alpha, OSDMessageFlags flags, float timeVal);
|