geopro/src/app/Glyphs.hpp

55 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
// 程序绘制的扁平线性图标(无需图片资源):用于面板表头与表头操作按钮,
// 风格对齐原型(细线、圆角端点、单色随主题)。仅外观,无交互逻辑。
#include <QColor>
#include <QIcon>
#include <QString>
class QLabel;
class QAbstractButton;
namespace geopro::app {
enum class Glyph {
// 面板表头图标
Tree, // 对象显示栏(层级)
Dataset, // 数据真实显示栏(数据集/数据库)
Map, // 二维/三维视图(图层)
Detail, // 数据详情(图表)
Anomaly, // 异常列表(警示三角)
Property, // 属性(信息)
// 表头操作按钮图标
Plus, // 新建/添加
Filter, // 筛选(漏斗)
Upload, // 上传
Download, // 导出/下载
Collapse, // 折叠(双箭头)
// 顶部应用栏图标
Workspace, // 工作空间2x2 宫格)
Folder, // 项目(文件夹)
Help, // 帮助(?
Bell, // 通知(铃铛)
Gear, // 设置(齿轮)
};
// 生成指定颜色、像素尺寸的图标(默认 16px内部按 2x 绘制保证清晰)。
QIcon makeGlyph(Glyph type, const QColor& color, int px = 16);
// 随 ElaTheme 明暗自动着色的 glyph取主题文本色暗色用浅色、亮色用深色主题切换时自动重绘。
// 用于面板表头/页签等 chrome 图标,避免固定色在暗色下看不清。
void setThemedGlyph(QLabel* label, Glyph type, int px);
void setThemedGlyph(QAbstractButton* button, Glyph type, int px);
// 生成树展开/折叠箭头 PNG 到临时目录,返回文件路径(供树的 QSS `image: url(...)` 引用)。
// 配合 QTreeView::branch 背景使用,可让选中高亮不覆盖左侧缩进/箭头列且不丢箭头。
QString writeChevronIcon(bool open, const QColor& color);
// 生成清晰复选框 PNG供 QTreeView::indicator 的 QSS `image:url(...)`
// 未选=明显边框空心方框;选中=填充色方框 + 白色对勾。明暗各传一套色tag 区分文件名。
QString writeCheckboxIcon(bool checked, const QColor& border, const QColor& fill, const QColor& check,
const QString& tag);
} // namespace geopro::app