55 lines
2.2 KiB
C++
55 lines
2.2 KiB
C++
#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
|